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 (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 (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. |
--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 (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 (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 (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 (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 | Requested server-side timeout for an asynchronous run, in seconds. An upper bound, not the effective timeout: the run uses the smaller of this value and the plan's execution timeout, so requesting more than the plan allows silently yields the plan timeout. Rejected with 400 unless async is true. |
--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 (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 (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. |
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 100. |
--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 (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 (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 (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 100. |
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 |