sim workflows is also spelled sim workflow.
Every command below also accepts the global options.
Activate workflow version
sim workflows activate create <workflowId> <version> [options]Activate Workflow Version (OAuth login or personal API key required)
Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
version | Yes | Numeric deployment version. |
Options
| Option | Required | Description |
|---|---|---|
-y, --yes | Yes | Confirm this operation. |
Apply workflow operations
sim workflows operations apply <workflowId> [options]Apply Workflow Operations (OAuth login or personal API key required)
Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
--dry-run | No | Validate and lint without persisting. The response is identical to the committed write of the same body, so a caller can inspect lint and then re-send the request for real. Nothing is written, no audit entry is recorded, and collaborators are not notified. |
--no-dry-run | No | Send --dry-run as false. |
--operations <json|@file> | Yes | Edits to apply, in a single batch, keyed by operation_type: [{"operation_type":"add","block_id":"my-fn","params":{"type":"function","name":"My Fn","inputs":{"code":"return {ok:true}"}}},{"operation_type":"edit","block_id":"<uuid>","params":{"name":"Renamed","connections":{"success":"my-fn"}}},{"operation_type":"delete","block_id":"<uuid>"}]. Also extract_from_subflow, whose params carry {"subflowId":"<loop-id>"}, and insert_into_subflow, which creates a block and so takes an add’s params plus that subflowId (JSON, or @path / @- to read a file or stdin). |
--atomic | No | Fail the whole batch when any operation is declined or any block input would be dropped. The default applies what it can and reports the rest in skipped and inputValidationErrors; true writes nothing and answers 409 instead. |
--no-atomic | No | Send --atomic as false. |
--layout <value> | No | Whether to reposition blocks the batch touched. targeted (default) nudges only the affected subgraph; none leaves every position exactly as supplied. Accepted values: targeted, none. |
--set-block-enabled <json|@file> | No | Blocks to enable or disable, applied after --operations: [{"block_id":"<uuid>","enabled":false}]. Disabling a loop or parallel cascades to its unlocked descendants; enabling a block whose container is disabled is declined (JSON, or @path / @- to read a file or stdin). |
-y, --yes | No | Confirm this operation (required unless --dry-run). |
Update workflow variables
sim workflows variables update <workflowId> [options]Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
--operations <json|@file> | Yes | Variable changes to apply in order, keyed by operation: [{"operation":"add","name":"my_var","type":"string","value":"hello"},{"operation":"edit","name":"my_var","value":"updated"},{"operation":"delete","name":"my_var"}] (JSON, or @path / @- to read a file or stdin). |
-y, --yes | Yes | Confirm this operation. |
Cancel a running workflow run
sim workflows runs cancel <runId> [options]Arguments
| Argument | Required | Description |
|---|---|---|
runId | Yes | Unique workflow run identifier. |
Options
| Option | Required | Description |
|---|---|---|
--workflow <workflowId> | Yes | Workflow ID. |
Show run status
sim workflows runs get <runId> [options]Show run status (requested outputs are included in JSON or YAML output)
Arguments
| Argument | Required | Description |
|---|---|---|
runId | Yes | Unique workflow run identifier. |
Options
| Option | Required | Description |
|---|---|---|
--workflow <workflowId> | Yes | Workflow ID. |
--include-output | No | Include the final output in JSON or YAML output. |
--select-output <value...> | No | Include blockId or blockId.path values in JSON or YAML output; block names are not resolved on a finished run (space-separated, or @path / @- with one value per line; @@value for a literal leading @). |
--include-file-base64 | No | Inline each produced file's bytes as base64. Requires includeOutput. A file above the inline ceiling answers 413 naming its download path; fetch large files from downloadPath instead. |
--no-include-file-base64 | No | Send --include-file-base64 as false. |
--base64-max-bytes <value> | No | Per-file inline ceiling, lowering but never raising the server limit of 16 MiB. |
List runs for a workflow
sim workflows runs list [options]Options
| Option | Required | Description |
|---|---|---|
--workflow <workflowId> | Yes | Workflow ID. |
--status <value> | No | Filter by run status. Accepted values: pending, running, completed, failed, cancelled, paused. |
--trigger <value> | No | Filter by trigger type. |
--start-date <value> | No | Only include runs started at or after this UTC ISO 8601 timestamp, e.g. 2026-08-06T00:00:00Z. A date without a time, or a timestamp carrying a UTC offset instead of Z, is rejected, as is year 0000, which names no storable instant. |
--end-date <value> | No | Only include runs started at or before this UTC ISO 8601 timestamp, e.g. 2026-08-06T00:00:00Z. A date without a time, or a timestamp carrying a UTC offset instead of Z, is rejected, as is year 0000, which names no storable instant. |
--limit <n> | No | Maximum items to return (0 for everything). Defaults to 100. |
--cursor <value> | No | Continue from nextCursor returned by a previous result. |
--order <value> | No | Sort direction by run start time. This list is sortable only by run start time, so it takes order in place of sortBy/sortOrder, which it rejects. Accepted values: asc, desc. |
Resume a paused run
sim workflows runs resume <runId> [options]Resume a paused run (output is included in JSON or YAML output)
Arguments
| Argument | Required | Description |
|---|---|---|
runId | Yes | Unique workflow run identifier. |
Options
| Option | Required | Description |
|---|---|---|
--workflow <workflowId> | Yes | Workflow ID. |
--context <value> | Yes | Pause context ID returned by run status. |
--input <json|@file> | No | Resume input as JSON (JSON, or @path / @- to read a file or stdin). |
Wait for a run to reach a terminal state, then show it
sim workflows runs wait <runId> [options]Arguments
| Argument | Required | Description |
|---|---|---|
runId | Yes | Unique workflow run identifier. |
Options
| Option | Required | Description |
|---|---|---|
--workflow <workflowId> | Yes | Workflow ID. |
--wait-timeout <seconds> | No | Give up after this many seconds, or 0 to wait indefinitely (default: 3600). Bounds the whole wait; SIM_TIMEOUT_SECONDS bounds one request. |
Create workflow
sim workflows create [options]Options
| Option | Required | Description |
|---|---|---|
--name <value> | Yes | Workflow name. |
--description <value> | No | Optional workflow description. |
--folder <value> | No | Folder path as shown in the app; the leading / is optional. |
Create a workflow folder at a path
sim workflows folders create <path>Arguments
| Argument | Required | Description |
|---|---|---|
path | Yes | Folder path as shown in the app; the leading / is optional |
Delete workflow folder
sim workflows folders delete <path> [options]Arguments
| Argument | Required | Description |
|---|---|---|
path | Yes | Folder path as shown in the app; the leading / is optional |
Options
| Option | Required | Description |
|---|---|---|
--recursive | No | Delete the folder and its descendants. |
-y, --yes | Yes | Confirm this operation. |
List workflow folders
sim workflows folders list [options]Also available as sim workflows folders ls.
Options
| Option | Required | Description |
|---|---|---|
--parent <value> | No | Direct parent folder path. |
--search <value> | No | Case-insensitive substring match against the folder name. |
--sort-by <value> | No | Field used to sort the result. Sorting by name is case-sensitive and follows the storage collation, so do not rely on a case-insensitive order. Accepted values: name, createdAt, updatedAt. |
--sort-order <value> | No | Sort direction. Accepted values: asc, desc. |
Rename or move a workflow folder
sim workflows folders move <path> <destination>Also available as sim workflows folders mv.
Arguments
| Argument | Required | Description |
|---|---|---|
path | Yes | Folder path as shown in the app; the leading / is optional |
destination | Yes | Folder path as shown in the app; the leading / is optional |
Delete workflow
sim workflows delete <workflowId> [options]Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
-y, --yes | Yes | Confirm this operation. |
Take a workflow’s chat deployment offline
sim workflows chat unpublish <workflowId> [options]Take a workflow’s chat deployment offline (OAuth login or personal API key required)
Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
-y, --yes | Yes | Confirm this operation. |
Show a workflow’s chat deployment
sim workflows chat status <workflowId>Show a workflow’s chat deployment (OAuth login or personal API key required)
Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Publish or replace a workflow’s chat deployment
sim workflows chat publish <workflowId> [options]Publish or replace a workflow’s chat deployment (OAuth login or personal API key required)
Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
--identifier <value> | Yes | URL slug the deployed chat answers on. Must be free across live deployments. |
--title <value> | Yes | Title shown to visitors. |
--description <value> | No | Description shown to visitors. Omitted clears it. |
--customizations <json|@file> | No | Presentation overrides. Omitted fields take platform defaults. (JSON, or @path / @- to read a file or stdin). |
--auth-type <value> | No | How visitors are gated. public leaves the chat open to anyone holding the URL. Accepted values: public, password, email, sso. |
--password <value> | No | Write-only password. Required whenever authType is password, and rejected otherwise. Never readable back. |
--allowed-emails <json|@file> | No | Email addresses or domains admitted under email and sso gating. At least one is required for those modes. (JSON, or @path / @- to read a file or stdin). |
--output-configs <json|@file> | No | Block outputs to surface to visitors. Omitted surfaces none. (JSON, or @path / @- to read a file or stdin). |
--include-thinking | No | Allow visitors to receive provider thinking events. |
--no-include-thinking | No | Send --include-thinking as false. |
--include-tool-calls | No | Allow visitors to receive tool lifecycle events. |
--no-include-tool-calls | No | Send --include-tool-calls as false. |
-y, --yes | Yes | Confirm this operation. |
Deploy workflow
sim workflows deploy <workflowId> [options]Deploy Workflow (OAuth login or personal API key required)
Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
--name <value> | No | Optional label for the deployment version. |
--description <value> | No | Optional release note for the deployment version. |
Duplicate workflow
sim workflows duplicate create <workflowId> [options]Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
--name <value> | No | Name for the copy. Defaults to the source name, deduplicated within the folder. |
--folder <value> | No | Folder path as shown in the app; the leading / is optional. |
Run a deployed workflow or execute saved state manually
sim workflows run <workflowId> [options]Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
--input <json|@file> | No | Trigger input as JSON (JSON, or @path / @- to read a file or stdin). |
--async | No | Queue the run and return immediately. |
--execution-timeout-seconds <value> | No | Maximum duration of an asynchronous run, in seconds, capped by the plan's execution timeout. Requires async: true; otherwise returns 400. |
--select-output <value...> | No | Return streamed outputs as blockName.path or childWorkflowId.blockName.path; selecting a child workflow applies to every invocation, requires --follow (space-separated, or @path / @- with one value per line; @@value for a literal leading @). |
--include-file-base64 | No | Inline eligible output files as base64 content. Rejected when async is true. |
--no-include-file-base64 | No | Send --include-file-base64 as false. |
--base64-max-bytes <value> | No | Maximum total bytes of file content to inline as base64, lowering but never raising the server limit of 16 MiB. Rejected when async is true. |
--run-id <value> | No | One-shot identifier for this run; NOT an idempotency key — reusing a claimed value fails with RUN_ID_CONFLICT instead of replaying the first result, and a fresh value starts another run. |
--manual | No | Run the current saved workflow state instead of the active deployment. |
--trigger <blockId> | No | Enter a manual run through this runnable trigger (requires --manual). |
--mock-payload | No | Use the selected trigger's server-derived mock payload (requires --manual). |
--from-block <blockId> | No | Run manually from this saved workflow block. |
--source-run <runId> | No | Prior run whose persisted state supplies upstream outputs (requires --from-block). |
--follow | No | Stream the run as it happens; progress on stderr, result on stdout. The stream reports only success and output, so the result omits the run id and timings a non-streaming run returns. |
--include-thinking | No | Show model reasoning while following (requires --follow). |
--include-tool-calls | No | Show tool calls while following (requires --follow). |
Print a workflow as a portable JSON document
sim workflows export <workflowId>Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Get workflow
sim workflows get <workflowId>Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Show a workflow’s current deployment
sim workflows deployment status <workflowId>Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Update workflow public API access
sim workflows deployment update <workflowId> [options]Update Workflow Public API Access (OAuth login or personal API key required)
Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
--is-public-api <true|false> | Yes | Whether the deployed workflow should accept unauthenticated public API execution. Accepted values: true, false. |
Get workflow state
sim workflows state get <workflowId>Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Replace workflow state
sim workflows state replace <workflowId> [options]Replace Workflow State (OAuth login or personal API key required)
Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
--dry-run | No | Validate and lint without persisting. The response is identical to the committed write of the same body, so a caller can inspect lint and then re-send the request for real. Nothing is written, no audit entry is recorded, and collaborators are not notified. |
--no-dry-run | No | Send --dry-run as false. |
--blocks <json|@file> | Yes | Blocks keyed by block id. (JSON, or @path / @- to read a file or stdin). |
--edges <json|@file> | Yes | Directed connections between blocks. (JSON, or @path / @- to read a file or stdin). |
--loops <json|@file> | No | Ignored on write: loop containers are recomputed from blocks. (JSON, or @path / @- to read a file or stdin). |
--parallels <json|@file> | No | Ignored on write: parallel containers are recomputed from blocks. (JSON, or @path / @- to read a file or stdin). |
--variables <json|@file> | No | Replacement variable set. Omit to leave the stored variables untouched. (JSON, or @path / @- to read a file or stdin). |
-y, --yes | No | Confirm this operation (required unless --dry-run). |
Get workflow version
sim workflows versions get <workflowId> <version>Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
version | Yes | Numeric deployment version. |
List workflow versions
sim workflows versions list <workflowId> [options]Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
--limit <n> | No | Maximum items to return (0 for everything). Defaults to 100. |
--cursor <value> | No | Continue from nextCursor returned by a previous result. |
Update workflow version
sim workflows versions update <workflowId> <version> [options]Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
version | Yes | Numeric deployment version. |
Options
| Option | Required | Description |
|---|---|---|
--name <value> | No | New label for the deployment version. |
--description <value> | No | New release note for the deployment version, or null to clear it. (--description null sends the word, not JSON null). |
Import workflow
sim workflows import [options]Options
| Option | Required | Description |
|---|---|---|
--workflow <json|@file> | Yes | Workflow export object, bare workflow state, or JSON string containing either form. (JSON, or @path / @- to read a file or stdin). |
--folder <value> | No | Folder path as shown in the app; the leading / is optional. |
--name <value> | No | Override for the imported workflow name. |
--description <value> | No | Override for the imported workflow description. |
List workflows
sim workflows list [options]Options
| Option | Required | Description |
|---|---|---|
--scope <value> | No | Which lifecycle set to list: active (default) for live workflows, archived for workflows a DELETE archived. The folder filter resolves against active folders only, so pairing it with archived returns an empty page when the containing folder was archived too. Accepted values: active, archived. |
--folder <value> | No | Folder path as shown in the app; the leading / is optional. |
--deployed-only | No | Return only workflows with an active deployment when true. |
--no-deployed-only | No | Send --deployed-only as false. |
--limit <n> | No | Maximum items to return (0 for everything). Defaults to 0. |
--search <value> | No | Case-insensitive substring match against the resource name. |
--sort-by <value> | No | Field used to sort the result. Sorting by name is case-sensitive and follows the storage collation, so do not rely on a case-insensitive order. Accepted values: position, name, createdAt, updatedAt, runCount. |
--sort-order <value> | No | Sort direction. Accepted values: asc, desc. |
Move workflows
sim workflows move [options]Options
| Option | Required | Description |
|---|---|---|
--workflow <value...> | Yes | Workflows to move. Duplicates are collapsed. (space-separated, or @path / @- with one value per line; @@value for a literal leading @). |
--to <value> | Yes | Destination folder path; / moves the workflows to the workspace root. |
Restore an archived workflow
sim workflows restore <workflowId>Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Revert workflow to version
sim workflows revert create <workflowId> <version> [options]Revert Workflow To Version (OAuth login or personal API key required)
Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
version | Yes | Numeric deployment version, or active for the currently live version. |
Options
| Option | Required | Description |
|---|---|---|
-y, --yes | Yes | Confirm this operation. |
Rollback workflow
sim workflows rollback <workflowId> [options]Rollback Workflow (OAuth login or personal API key required)
Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
--to-version <value> | No | Deployment version to reactivate. Omit to select the previous active version. |
-y, --yes | Yes | Confirm this operation. |
Take a workflow out of deployment
sim workflows undeploy <workflowId> [options]Take a workflow out of deployment (OAuth login or personal API key required)
Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
-y, --yes | Yes | Confirm this operation. |
Update workflow
sim workflows update <workflowId> [options]Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
Options
| Option | Required | Description |
|---|---|---|
--name <value> | No | Replacement workflow name. |
--description <value> | No | Replacement workflow description; null clears it. (--description null sends the word, not JSON null). |
--folder <value> | No | Folder path as shown in the app; the leading / is optional. |
Move a workflow to a folder
sim workflows mv <workflowId> <folder>Arguments
| Argument | Required | Description |
|---|---|---|
workflowId | Yes | Unique workflow identifier. |
folder | Yes | Folder path as shown in the app; the leading / is optional |
List workflow resources and child folders together
sim workflows ls [path] [options]Arguments
| Argument | Required | Description |
|---|---|---|
path | No | Folder path to list; defaults to the root folder |
Options
| Option | Required | Description |
|---|---|---|
--search <text> | No | Filter folders and resources by name. |
--limit <n> | No | Maximum combined items to return (0 for everything). Defaults to 0. |
Create a workflow directory at a path
sim workflows mkdir <path>Arguments
| Argument | Required | Description |
|---|---|---|
path | Yes | Folder path to create; the leading / is optional |