Stream KitDocs

Core

Built-in handlers and triggers — audio, delays, variables, collections, schedules, hotkeys, queues, HTTP requests, webhooks, and logging.

Core

Core is always enabled. It provides the building blocks every action uses: utility handlers (delay, if, log), variables, collections, schedules, hotkeys, queue control, audio playback, scripts, HTTP requests, webhooks, and process events.

Settings

Open Plugins → Core → Settings:

SettingDescription
Process WatcherWhen enabled, keeps background polling for process start/stop triggers. Process triggers also start the watcher automatically when needed.

Features

AreaWhat you get
InputGlobal hotkey triggers and Fire Hotkey handler
UtilityDelay, If/Else, Run script (Monaco + external editor), Play sound, Log
VariablesSet / get global, user, and action variables
CollectionsCreate and mutate key-value stores
QueuesPause, resume, toggle queues from handlers
ScheduleCron and one-shot scheduled triggers
ProcessProcess started / stopped triggers (optional watcher)
Queue statusTriggers when jobs enqueue, start, complete, or queue pauses
HTTPWebhooks page, Webhook trigger, HTTP request and Respond to webhook handlers

HTTP and webhooks

HTTP request

Calls any REST API: Home Assistant, n8n, vMix, ProPresenter, or your own server. Pick the method, enter the URL, and optionally add headers and a body. All fields accept {variables}.

The handler sets these variables for the handlers after it:

VariableValue
httpStatusStatus code, for example 200
httpOktrue for a 2xx status, otherwise false
httpBodyResponse body as text
httpHeadersResponse headers as JSON

An error status (such as 404 or 500) doesn't stop the action, so you can branch on {httpStatus} with If. A network error (host unreachable, timeout) shows a notification and stops the action.

Webhooks page

Webhooks let other apps and devices start actions by sending an HTTP request to Stream Kit. They use the API server, so enable it first under Settings → API Server.

Create webhooks under Core → Webhooks:

FieldDescription
NameShown in the trigger and handler selects
Pathscene/next listens on http://127.0.0.1:7892/webhook/scene/next. Filled in from the name until you change it
SecretGenerated for you. Callers send it as Authorization: Bearer <secret>, X-Webhook-Secret or ?secret=. Regenerate it if it leaks
ResponseRespond right away answers 202 Accepted and runs actions in the background. Wait for Respond to webhook keeps the caller waiting for your own answer
Response timeout (seconds)Only when waiting. After this the caller gets 504. Default 10, max 30

The page shows each webhook's full URL once the API server runs.

Webhook trigger

Runs an action when a request arrives on the selected webhook.

ConditionDescription
WebhookRequired. The webhook to listen on
MethodOnly run for this HTTP method. Empty means any method
JSON fieldOnly run when a field in the JSON body matches, for example data.event equals follow

Variables: webhookId, webhookName, webhookMethod, webhookPath, webhookQuery (JSON), webhookHeaders (JSON), webhookBody and webhookRemoteAddress.

Respond to webhook

Sends your own status, headers, and body to a caller of a webhook set to Wait for Respond to webhook, for example {httpBody} from an earlier HTTP request. Select the webhook to answer:

  • In an action started by that webhook, it answers the request that started the action.
  • In any other action, it answers the oldest request still waiting on that webhook. This way, for example, an OBS event can send the answer.

If no request is waiting, the handler does nothing.

Dashboard widgets

  • Collections — edit collection data
  • Log entries — view Log handler output

See Dashboard.

Triggers and handlers

Full lists with stable IDs:

Example IDs

ItemID
Hotkeycore:core:input:hotkey
Set variablecore:core:variable:set-variable
Queue pausedcore:core:queue:paused
Ifcore:core:utility:if
Webhookcore:core:http:webhook
HTTP requestcore:core:http:http-request

On this page