Which command, flag and result should an assistant use? This reference gives the supported CLI 0.2.24 command tree from the frozen snapshot, including required arguments, option defaults and corresponding MCP tools. Use the CLI guide for installation, workflow selection and interpreting a command that is still running.
For the Invoice intake example, first find the workflow and its Check invoice flow. In the app, open Workflows , choose the workflow, select its flow, then use Test current flow when you are ready to test it. With an assistant, start with cai workflow list --json; its data.items entries supply the workflow IDs and names. The example below selects the matching IDs from that inventory before reading the flow’s accepted inputs. It assumes you already built the first workflow .
Angle brackets mark values to replace; square brackets mark optional arguments in the syntax summaries. In option tables, Required means Commander requires the flag. Additional flag combinations appear beside the affected entries. A dash in the default column means the command definition supplies no explicit default. Examples here assume no pinned workflow and pass --workflow <workflowId> when needed. Keep the displayed units: run timeouts use milliseconds, while connection and conversation waits use seconds.
MCP links name typed tools, including commands that split into separate tools or share one tool. A hosted replacement runs in the MCP server with the inputs in its linked contract. Follow that contract when switching from a terminal to MCP.
List workflows and note the data.items entry named Invoice intake ; its id is <workflowId> below.
List that workflow’s flows, then note the data.items entry named Check invoice ; its id is <flowId>.
cai flow list --workflow <workflowId> --json
Read that flow’s accepted inputs before choosing values for a run.
cai run inputs <flowId> --flow --workflow <workflowId> --json
The MCP counterpart run_inputs takes workflowId, nodeIdOrFlowId: "<flowId>" and flow: true.
--json, --workflow and --api-url work before or after a subcommand.
Option Meaning -V, --versionoutput the version number --jsonmachine-readable output on stdout --workflow <id>workflow id (overrides cai use and CAI_WORKFLOW) --api-url <url>backend base URL (overrides CAI_API_URL) --id <value>positional id, for ids that begin with ”-” -h, --helpDisplay command help.
Workflow selection is --workflow → CAI_WORKFLOW → .cai.json in the current directory → the configured default. --id carries a positional ID that starts with a hyphen.
Normal JSON results contain ok, command and data; most failures contain ok: false and error, including its code and message. An invalid workflow validate --json exits 1 with ok: true and data.valid: false. Warnings also go to stderr.
Interactive authorization can emit newline-delimited JSON events before the final result; after those events, the final result occupies the last stdout line.
Exit code Meaning 0Successful CLI result, including acceptance of asynchronous work before it finishes. Help and version requests also use zero. 1Input, validation, action or unexpected local CLI error; inspect error.code. A dispatched run also exits 1 on pause, failure or timeout. 2State conflict. 3Authentication or authorization failure. 4Transport, server, protocol-response or approval-poll error.
An accepted message is not a completed reply: agent conversation send without --wait returns accepted. For run and approval waits, follow the CLI result guidance before repeating a write.
Input form Accepted content run node --inputs, run flow --inputsInline JSON, a JSON file path, or - for stdin. --js-file on expression-writing commandsUTF-8 file path or - for stdin; mutually exclusive with the inline expression flag. schema create/update --from-json, data collection create --from-jsonJSON file path or - for stdin. data create/update --fieldsInline JSON object, file path or - for stdin; keys are field IDs. data import --fileCSV file path; --mode dryRun validates and --mode commit writes. agent create/update --instructions-file, agent add-file --file, file share <path>Local file paths. These do not use - as a stdin shortcut.
Group Direct children caiauth , approval , signup , connect , skills , docs , upgrade , config , doctor , agent , use , workflow , file , flow , integration , node , expr , run , exec , connection , branch , data , deps , events , schema , trigger , template-setup , labelcai authlogin , password , token , key , logout , statuscai approvalresumecai signupemail , verifycai skillsinstall , update , statuscai configresetcai agentsetup , list , get , create , update , delete , visibility , add-workflow , add-action , update-tool , remove-tool , files , add-file , tools , publish-preflight , publish , present , versions , conversation , testcai agent conversationlist , create , status , history , approve , deny , sendcai workflowlist , create , get , rename , set-description , duplicate , delete , versions , releases , history , restore , save , document , state , outline , status , validate , publishcai filesharecai flowlist , get , create , rename , delete , outputs , duplicate , layout , reorder , output , for-each , inputcai flow outputadd , update , deletecai flow inputadd , update , deletecai integrationsearch , actions , actioncai nodeadd , duplicate , set-flow , get , declare-output , props , reload , status , set , set-connection , connect , disconnect , only-when , optional-props , enable-prop , disable-prop , options , continue-on-error , rename , deletecai exprcontext , validate , set , ops , decompilecai runnode , flow , inputs , discovercai execlist , get , flow , node , treecai connectionlist , update , delete , request , connectcai branchlist , add , update , delete , connect , reordercai datacollections , fields , query , get , create , update , delete , delete-many , import , copy-to-live , collectioncai data collectioncreatecai schemalist , get , resolve , create , update , deletecai triggerlist , audit , get , test-events , search , props , options , create , events , event , select-event , replay , set-enabled , rename , deletecai template-setupstatus , completecai labellist , set
Generated for CLI 0.2.24 from the frozen Commander snapshot rooted at buildProgram(). Generator checking compares this page with the frozen snapshot; it does not verify sibling repositories for newer code.
The catalog contains 164 supported operations and 25 command groups , counting the root cai group. cai signup is both an operation and a group.
cai run workflow is excluded: its handler always fails with NOT_IMPLEMENTED; use cai run flow with a chosen flow.
CLI source: all 26 command files plus shared command, argument, configuration and result code. Help comparison: marketing/docs/scripts/cli-help-0.2.24.txt. The export omits 14 third-level help sections; the captured Commander definitions supply them.
MCP counterparts come from the 149-tool typed registry, its operation dispositions and the generated command map. Catalog version: ac0cbaace014.
The MCP disposition column distinguishes direct tools, split tools, merged commands, hosted replacements and commands omitted from MCP. Local commands run on the assistant’s machine; build-chat presentation requires an in-product chat for its card.
Authenticate this machine with Controller AI.
Subcommands: login , password , token , key , logout , status .
Open a browser and authorize a revocable Controller AI CLI credential.
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Starts a local device-code login even though the MCP request is already OAuth-authorized.
Option Required Explicit default Meaning --no-openNo — headless/remote mode: print the URL without opening a browser --timeout <seconds>No — maximum time to wait for browser approval
The wait defaults to the device authorization expiry returned by the server. A supplied —timeout is capped at that expiry.
Development fallback: exchange explicit email/password flags for a JWT.
cai auth password [options]
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Accepts a development email/password credential on the local machine.
Option Required Explicit default Meaning --email <email>Yes — account email --password <password>Yes — account password
Persist a credential you already hold (cai_, caib_, JWT, or sk- API key).
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Writes a bearer token into local CLI configuration.
Option Required Explicit default Meaning --token <token>Yes — bearer credential
Migration/development only: mint a legacy API key using a browser JWT.
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Mints a long-lived local credential and is not an MCP account operation.
Option Required Explicit default Meaning --name <name>No "cai"label for the key
Remove the locally stored credential.
cai auth logout [options]
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Deletes local CLI credentials; it is not integration connection revocation.
Option Required Explicit default Meaning --revokeNo falserevoke the current CLI credential before removing it locally
Show the current account, backend, credential kind, and workflow.
cai auth status [options]
CLI surface MCP counterpart MCP disposition Local CLI account_statusHosted replacement. The host reports the authenticated grant and combines it with server health facts.
Resume polling a durable browser-approved operation.
Subcommands: resume .
Resume an existing approval by ID without dispatching its gated command again.
cai approval resume [options] <id>
CLI surface MCP counterpart MCP disposition CLI approval_resumeDirect. Typed counterpart; use its input schema.
Argument Required Meaning <id>Yes approval intent ID printed by the interrupted command
Create a Controller AI workspace without a browser account.
cai signup [options] [command]
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. The OAuth-authorized caller already has a provisioned account; root signup is local bootstrap.
Option Required Explicit default Meaning --name <name>No — display name for the agent-created account --forceNo falsereplace an existing valid credential after signup succeeds
Send a verification code to the account owner.
cai signup email [options] <address>
CLI surface MCP counterpart MCP disposition Local CLI account_claim_startHosted replacement. Uses the OAuth grant durable email-claim adapter instead of local CLI credential replacement.
Argument Required Meaning <address>Yes Owner’s email address to claim the current agent account.
Verify the account owner email with its 6-digit code.
cai signup verify [options] <code>
CLI surface MCP counterpart MCP disposition Local CLI account_claim_verifyHosted replacement. Uses the OAuth grant durable email verification adapter.
Argument Required Meaning <code>Yes Verification code sent to that email by cai signup email.
Install skills, authorize this machine, and verify the complete setup.
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Installs local skills, opens a browser, and verifies a local project.
Option Required Explicit default Meaning --target <target>No "auto"auto, agents, codex, claude, cursor, copilot, all, or project --project-dir <path>No — project root for the open-standard project target --forceNo falsereplace existing unmanaged Controller AI skill folders --no-openNo — headless/remote mode: print the URL without opening a browser --timeout <seconds>No — maximum time to wait for browser approval
Its browser-authorization wait defaults to the device authorization expiry returned by the server. A supplied —timeout is capped at that expiry.
Install and update Controller AI guidance for your agent.
Subcommands: install , update , status .
Install the verified skill set bundled with this CLI.
cai skills install [options]
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Writes guidance into a caller local project, which the hosted server cannot access.
Option Required Explicit default Meaning --target <target>No "auto"auto, agents, codex, claude, cursor, copilot, all, or project --project-dir <path>No — project root for the open-standard project target --forceNo falsereplace an existing unmanaged skill with the same name
Fetch, verify, and install the latest hosted Controller AI skill set.
cai skills update [options]
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Updates guidance files in a caller local project.
Option Required Explicit default Meaning --target <target>No "auto"auto, agents, codex, claude, cursor, copilot, all, or project --project-dir <path>No — project root for the open-standard project target --forceNo falsereplace an existing unmanaged skill with the same name
Verify installed Controller AI skills, versions, and digests.
cai skills status [options]
CLI surface MCP counterpart MCP disposition Local CLI guide_getguide_listHosted replacement. guide_list and guide_get serve the bundled server guidance without inspecting a local project.
Option Required Explicit default Meaning --target <target>No "all"auto, agents, codex, claude, cursor, copilot, all, or project --project-dir <path>No — project root for the open-standard project target
Read Controller AI documentation as Markdown in the terminal.
cai docs [options] [path]
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Fetches documentation into a local terminal; hosted clients read guide_get or the docs site.
Argument Required Meaning [path]No documentation path, for example for-ai-agents/codex
Option Required Explicit default Meaning --listNo falseprint the top-level documentation index from llms.txt
With no path, fetches for-ai-agents. —list fetches llms.txt; a supplied page path is fetched as Markdown.
Show the CLI upgrade command and update skills for detected assistants.
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Prints the local CLI upgrade command and updates local skills; nothing to do on a hosted server.
Inspect and reset CLI configuration.
Subcommands: reset .
Clear workflow pins while preserving credentials and other settings.
cai config reset [options]
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Clears a local workflow pin; typed MCP calls are stateless.
Option Required Explicit default Meaning --localNo — clear only the exact-cwd .cai.json workflow pin --globalNo — clear only the workflow pin in the configured config file
Verify authentication, API access, workflow pin, runtime, and installed skills.
CLI surface MCP counterpart MCP disposition Local CLI account_statusHosted replacement. Local runtime checks do not apply; useful account and version facts are in account_status.
Build and test mutable agent drafts, then publish immutable live versions.
Subcommands: setup , list , get , create , update , delete , visibility , add-workflow , add-action , update-tool , remove-tool , files , add-file , tools , publish-preflight , publish , present , versions , conversation , test .
Set up Controller AI end to end for installed coding assistants.
cai agent setup [options]
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Configures local coding assistants on the user machine; nothing to do on a hosted server.
Option Required Explicit default Meaning --client <client>No "all"claude-code, codex, cursor, or all --statusNo falseshow installed state and the action plan without changing anything --yesNo falseapprove setup actions without prompting --skills-scope <scope>No "global"global or project
List agents visible to the current account.
CLI surface MCP counterpart MCP disposition CLI agent_listDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --search <text>No — filter by name --ownership <mine|shared>No "mine"ownership filter
Inspect the agent configuration visible to this account and its version status.
cai agent get [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_getDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Create a private draft agent; nothing becomes live until publish.
cai agent create [options]
CLI surface MCP counterpart MCP disposition CLI agent_createDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --name <name>Yes — agent display name --instructions <text>No — agent instructions --instructions-file <path>No — read agent instructions from a UTF-8 file --disabledNo falsecreate the draft disabled
Update draft configuration or agent runtime state (in separate commands).
cai agent update [options] <agentId>
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --name <name>No — new display name --instructions <text>No — new agent instructions --instructions-file <path>No — read instructions from a UTF-8 file --disabledNo — disable the agent and pause its runtime immediately --enabledNo — enable the agent immediately
Soft-delete an agent, revoke live access, and attempt to stop active sessions.
cai agent delete [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_deleteDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --confirmNo falseconfirm soft deletion, live-access revocation, and best-effort active-session termination
Change live agent access (organization requires publishing the agent first; no public mode).
cai agent visibility [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_visibility_setDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --value <private|organization>Yes — private revokes organization access; organization shares the published version
Add a follow-live workflow tool with a backend-generated name to the draft.
cai agent add-workflow [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_tool_workflow_addDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --workflow-id <id>Yes — workflow containing the tool flow --flow <flowId>Yes — flow exposed to the agent --description <text>No — description the model uses when choosing the tool --require-confirmationNo falsepause every invocation for an explicit user approval before the workflow runs --slack-connection <connectionId>No — your active Slack connection; requires —slack-channel and —require-confirmation --slack-channel <channelId>No — approval channel; requires —slack-connection --slack-channel-name <name>No — optional approval channel display name --slack-approver <slackUserId>No — who can approve in Slack; repeat for 1–8 users; requires —slack-channel; without it anyone in the channel can approve
Attach one ready integration action to the draft; explicitly review its confirmation policy.
cai agent add-action [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_tool_action_addDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --integration <slug>Yes — exact slug from cai integration search --action <key>Yes — exact action key from cai integration actions --connection <id>No — active connection when this integration requires auth --description <text>No — when the agent should choose this action --require-confirmationNo falserequire approval before each run; default is no approval, so decide for writes or spend --slack-connection <connectionId>No — your active Slack connection; requires —slack-channel and —require-confirmation --slack-channel <channelId>No — approval channel; requires —slack-connection --slack-channel-name <name>No — optional approval channel display name --slack-approver <slackUserId>No — who can approve in Slack; repeat for 1–8 users; requires —slack-channel; without it anyone in the channel can approve
Update a draft tool; action connection grants apply immediately without publishing.
cai agent update-tool [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_tool_updateDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --tool <toolId>Yes — draft tool id --description <text>No — new routing description --connection <id>No — rebind a ready integration action to another connection --require-confirmationNo — require approval before every invocation --no-confirmationNo — run without approval; use only after reviewing writes, messages, deletion, and spend --slack-connection <connectionId>No — your active Slack connection; requires —slack-channel and an approval-requiring tool --slack-channel <channelId>No — approval channel; requires —slack-connection --slack-channel-name <name>No — optional approval channel display name --slack-approver <slackUserId>No — who can approve in Slack; repeat for 1–8 users; requires —slack-channel; without it anyone in the channel can approve --no-slackNo — remove Slack approval routing from the draft tool
Remove a draft tool; direct-action detachment revokes live authorization immediately.
cai agent remove-tool [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_tool_removeDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --tool <toolId>Yes — draft tool id
List reference and runtime files. Non-managers receive the published view regardless of the requested view.
cai agent files [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_file_listDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --space <knowledge|shared|runtime>No — knowledge = agent reference material (draft, publishes); shared = runtime workspace files seen live; runtime is an alias for shared --environment <live|dev>No — shared runtime environment; not valid for knowledge --liveNo — request published-live instead of owner-current; non-managers receive published-live regardless --search <text>No — filter by file name or path --folder-prefix <path>No — filter to a folder path and its descendants --cursor <cursor>No — opaque cursor from the previous page; repeat identical filters --limit <n>No "50"files per page (default 50, max 200)
Add a reference file to the draft or a runtime file to the shared workspace.
cai agent add-file [options] <agentId>
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --file <path>Yes — local file to add --name <fileName>No — name visible to the agent --type <fileType>No — txt, md, json, csv, html, or xml --space <knowledge|shared|runtime>No "knowledge"knowledge: reference material in the draft; shared: runtime workspace files; runtime is an alias for shared.
Knowledge files update the draft and require publication for Live. Shared/runtime files are available without publication and apply when enabled or on the next turn. Every successful add creates another file; read the returned file identity or list files before retrying.
List draft tools for an owner or published tools for a shared user.
cai agent tools [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_tool_listDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Check the agent draft and every attached tool before publishing.
cai agent publish-preflight [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_publish_preflightDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Snapshot the draft and move every existing live conversation to the new version.
cai agent publish [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_publishDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --name <releaseName>No — optional release name
The new immutable snapshot replaces the version used by existing Live conversations. Publication stops in-flight Live sessions and expires unexecuted approvals; resolve them first. There is no rollback: fix the draft and publish again.
Return an agent summary and app link, and request a card when a build chat is available.
cai agent present [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI with build-chat presentation agent_presentHosted replacement. Returns a hosted agent summary and app link for the MCP host to present.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --description <text>No — one-line user-facing summary shown on the card --updatedNo falsethis re-presents an agent changed by a follow-up request
A build chat is needed for the card. Check presentedInChat and cardDeliveryFailed; appUrl is still returned when it can be resolved.
List immutable published versions.
cai agent versions [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_version_listDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Verify owner-only Test/draft or latest-published Live agent conversations.
Subcommands: list , create , status , history , approve , deny , send .
List verification conversations for an agent.
cai agent conversation list [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_conversation_listDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --mode <dev|live>No — Filter to Test (draft) or Live conversations.
Create a Live conversation by default; pass —draft for an owner-only Test conversation.
cai agent conversation create [options] <agentId>
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --draftNo — owner-only Test: current agent draft and workflow development heads --liveNo — Live: latest published agent and workflow releases (default) --title <title>No — conversation title --model <model>No — runtime model override
—draft and —live are mutually exclusive. With neither flag, the new conversation uses Live.
Read the conversation mode, adopted version, model and status.
cai agent conversation status [options] <conversationId>
Argument Required Meaning <conversationId>Yes Conversation ID from cai agent conversation list or create.
Read persisted messages, events, and pending permission requests.
cai agent conversation history [options] <conversationId>
Argument Required Meaning <conversationId>Yes Conversation ID from cai agent conversation list or create.
Option Required Explicit default Meaning --lastNo — aggregates the assistant turn: status, text, tool-call summary, cost
Approve one pending tool request and resume the active conversation.
cai agent conversation approve [options] <conversationId>
Argument Required Meaning <conversationId>Yes Conversation ID from cai agent conversation list or create.
Option Required Explicit default Meaning --request <requestId>Yes — exact requestId from conversation history --tool <toolName>No — normally unnecessary; server knows the tool; if needed, pass exact mcp__controllerai__tool_ name
Deny one pending tool request and resume the active conversation.
cai agent conversation deny [options] <conversationId>
CLI surface MCP counterpart MCP disposition CLI agent_conversation_denyDirect. Typed counterpart; use its input schema.
Argument Required Meaning <conversationId>Yes Conversation ID from cai agent conversation list or create.
Option Required Explicit default Meaning --request <requestId>Yes — exact requestId from conversation history --tool <toolName>No — normally unnecessary; server knows the tool; if needed, pass exact mcp__controllerai__tool_ name --message <reason>No — reason returned to the agent
Send a message, optionally waiting for a verifiable persisted reply.
cai agent conversation send [options] <conversationId>
CLI surface MCP counterpart MCP disposition CLI agent_conversation_sendDirect. Typed counterpart; use its input schema.
Argument Required Meaning <conversationId>Yes Conversation ID from cai agent conversation list or create.
Option Required Explicit default Meaning --message <text>Yes — message to send --waitNo falsewait for the next completed persisted assistant reply --timeout <seconds>No "300"Reply wait in seconds, greater than 0 and at most 600; checked only with —wait.
Create a Test conversation by default, send a message and verify its persisted reply; pass —live for the published version.
cai agent test [options] <agentId>
CLI surface MCP counterpart MCP disposition CLI agent_testDirect. Typed counterpart; use its input schema.
Argument Required Meaning <agentId>Yes Agent ID from cai agent list.
Option Required Explicit default Meaning --message <text>Yes — verification prompt --draftNo — owner-only Test: current agent draft and workflow development heads (default) --liveNo — Live: latest published agent and workflow releases --title <title>No "CLI verification"conversation title --model <model>No — runtime model override --timeout <seconds>No "300"Reply wait in seconds, greater than 0 and at most 600.
—draft and —live are mutually exclusive. Each invocation creates a persisted conversation and executes real tools with usage charges; inspect that conversation before retrying.
Pin a default workflow so —workflow can be omitted.
cai use [options] <workflowId>
CLI surface MCP counterpart MCP disposition Local CLI — Omitted from MCP. Persists a local workflow pin; every typed workflow call carries an explicit id.
Argument Required Meaning <workflowId>Yes workflow id to pin as the default
Create, inspect, test and publish workflows.
Subcommands: list , create , get , rename , set-description , duplicate , delete , versions , releases , history , restore , save , document , state , outline , status , validate , publish .
List workflows visible to this account.
cai workflow list [options]
CLI surface MCP counterpart MCP disposition CLI workflow_listDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --limit <n>No "25"max rows
Create and select a named workflow.
cai workflow create [options]
CLI surface MCP counterpart MCP disposition CLI workflow_createDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --name <name>Yes — workflow name
Fetch one workflow.
cai workflow get [options] [workflowId]
CLI surface MCP counterpart MCP disposition CLI workflow_getDirect. Typed counterpart; use its input schema.
Argument Required Meaning [workflowId]No workflow id (defaults to the pinned one)
Rename a workflow (PATCH /workflow/:id).
cai workflow rename [options] [workflowId]
CLI surface MCP counterpart MCP disposition CLI workflow_renameDirect. Typed counterpart; use its input schema.
Argument Required Meaning [workflowId]No workflow id (defaults to the pinned one)
Option Required Explicit default Meaning --name <name>Yes — new workflow name
Set a workflow’s description.
cai workflow set-description [options] [workflowId]
Aliases: describe.
Argument Required Meaning [workflowId]No workflow id (defaults to the pinned one)
Option Required Explicit default Meaning --description <text>Yes — new description ("" clears it)
Copy the workflow definition into a new unpublished workflow. Records are not copied, and flow and node IDs are preserved.
cai workflow duplicate [options] [workflowId]
CLI surface MCP counterpart MCP disposition CLI workflow_duplicateDirect. Typed counterpart; use its input schema.
Argument Required Meaning [workflowId]No workflow id (defaults to the pinned one)
Option Required Explicit default Meaning --useNo falsepin the copy as the default workflow
Select the returned copy ID before editing: flow and node IDs are only unique within a workflow, so stale workflow context edits the original. —use selects the copy as the configured default.
Delete a workflow after detaching dependent draft and Live agent tools.
cai workflow delete [options] <workflowId>
CLI surface MCP counterpart MCP disposition CLI workflow_deleteDirect. Typed counterpart; use its input schema.
Argument Required Meaning <workflowId>Yes workflow id — required explicitly, never the pinned default
Option Required Explicit default Meaning --yesYes — confirm soft deletion and deployed-trigger teardown --forceNo falsedeprecated compatibility flag; ignored because agent dependents must be detached first
The deprecated —force flag is ignored. Both draft and Live agent dependencies block deletion. The soft delete commits before external trigger teardown: a teardown error can mean the workflow is already deleted and cleanup remains. There is no public undelete.
Read the development and live versions of a workflow.
cai workflow versions [options] [workflowId]
CLI surface MCP counterpart MCP disposition CLI workflow_version_listDirect. Typed counterpart; use its input schema.
Argument Required Meaning [workflowId]No workflow id (defaults to the pinned one)
Published release checkpoints.
cai workflow releases [options] [workflowId]
CLI surface MCP counterpart MCP disposition CLI workflow_release_listDirect. Typed counterpart; use its input schema.
Argument Required Meaning [workflowId]No workflow id (defaults to the pinned one)
Version-state history — the ids cai workflow restore takes.
cai workflow history [options]
CLI surface MCP counterpart MCP disposition CLI workflow_historyDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --version <workflowVersionId>No — defaults to the current development version --group <groupId>No — expand one group into its individual states
Restore an earlier saved definition into the development version.
cai workflow restore [options]
CLI surface MCP counterpart MCP disposition CLI workflow_state_restoreDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --state <workflowVersionStateId>Yes — state id from cai workflow history --version <workflowVersionId>No — defaults to the current development version
Use —state with a saved state ID, not a history-group ID or positional argument. Restore creates a new development head and retains newer history. A listed state can be outside the plan’s restore window. Live, records and external effects remain unchanged; enabled Live triggers keep using the current release until publication.
Save a NAMED development snapshot you can restore to later.
cai workflow save [options]
CLI surface MCP counterpart MCP disposition CLI workflow_state_saveDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --name <name>Yes — label for this checkpoint
Complete JSON document for the development head or one historical state.
cai workflow document [options]
CLI surface MCP counterpart MCP disposition CLI workflow_document_getDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --state <workflowVersionStateId>No — read a historical state from cai workflow history instead of the head
Bounded development-state metadata and per-flow summaries.
cai workflow state [options]
CLI surface MCP counterpart MCP disposition CLI workflow_state_getDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --state <workflowVersionStateId>No — read a historical state from cai workflow history instead of the head --flow <flowId>No — include node and edge detail for one exact flow id
Compact orientation map: flows, inputs/outputs, nodes with deps, triggers, data types.
cai workflow outline [options] [workflowId]
CLI surface MCP counterpart MCP disposition CLI workflow_outlineDirect. Typed counterpart; use its input schema.
Argument Required Meaning [workflowId]No workflow id (defaults to the pinned one)
Publish state: is development ahead of live, do triggers fire.
cai workflow status [options]
CLI surface MCP counterpart MCP disposition CLI workflow_statusDirect. Typed counterpart; use its input schema.
Deep-validate the development workflow: required props, connections, wiring, expressions, types, subflows, branches, triggers.
cai workflow validate [options]
CLI surface MCP counterpart MCP disposition CLI workflow_validateDirect. Typed counterpart; use its input schema.
Invalid validation exits 1 while the JSON result still has ok: true and data.valid: false. Read the validation fields as well as the exit code.
Publish the development version as a live release.
cai workflow publish [options]
CLI surface MCP counterpart MCP disposition CLI workflow_publishDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --name <name>No — release name --acknowledge-dual-dispatchNo — publish even though armed test events can run one real event in both development and live --acknowledge-validation-errorsNo — Publish despite validation errors — only after the user explicitly approved the listed issues.
Publication copies the development definition and schemas, activates enabled Live triggers, and refreshes following Live agent conversations. Development records are never copied; agent workflow tools follow the new release without an agent republish. Inspect warnings for interface changes or failed conversation refreshes. Validation-error and dual-dispatch acknowledgements are separate flags.
Hand files back to the user inside the build chat.
Subcommands: share .
Share one file with the user as a downloadable card in this build chat. Use it to deliver reports, exports, or other artifacts you produced.
cai file share [options] <path>
CLI surface MCP counterpart MCP disposition Hosted-only CLI file_shareHosted replacement. Stores inline bytes as a private artifact and returns its browser-openable link.
Argument Required Meaning <path>Yes Regular local file path to share with the build chat.
Option Required Explicit default Meaning --name <displayName>No — name shown on the file card (defaults to the file name)
Hosted-only CLI operation: requires a builder-session credential. It accepts a regular local file up to 25 × 1024 × 1024 bytes. Check sharedInChat to confirm delivery.
Flows — a workflow has many canvases.
Subcommands: list , get , create , rename , delete , outputs , duplicate , layout , reorder , output , for-each , input .
List the flows on this workflow.
CLI surface MCP counterpart MCP disposition CLI flow_listDirect. Typed counterpart; use its input schema.
Nodes, edges and inputs of one flow.
cai flow get [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_getDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Create a new flow canvas.
cai flow create [options]
CLI surface MCP counterpart MCP disposition CLI flow_createDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --name <name>Yes — Name for the new flow, such as Check invoice.
Rename a flow.
cai flow rename [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_renameDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Option Required Explicit default Meaning --name <name>Yes — Replacement flow name.
Delete a flow.
cai flow delete [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_deleteDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Declared outputs of a flow.
cai flow outputs [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_output_listDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Copy a flow with fresh ids for every node and edge.
cai flow duplicate [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_duplicateDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Deterministically tidy positions after headless builds; an open builder auto-tidies while you build.
cai flow layout [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_layoutDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Reorder the workflow’s flows (presentation order, not execution order).
cai flow reorder [options]
CLI surface MCP counterpart MCP disposition CLI flow_reorderDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --order <flowIds>Yes — every flow id, comma-separated, in the new order
Flow outputs — declare these BEFORE adding a Return response node.
Subcommands: add , update , delete .
Declare an output a flow returns.
cai flow output add [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_output_addDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Option Required Explicit default Meaning --display <name>Yes — human-readable output label --type <ctype>Yes — e.g. text / number / list.text / custom.invoice --name <name>No — internal snake_case name (generated from —display when omitted) --description <text>No — Description of the returned value.
Update a flow output (Return response props are kept in sync).
cai flow output update [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_output_updateDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Option Required Explicit default Meaning --output <id>Yes — flow output id --name <name>No — internal snake_case payload key callers read; a —display rename regenerates it unless —name is set --display <name>No — human label --type <ctype>No — Replacement output data type, such as text or number. --description <text>No — Replacement description of the returned value.
Supply at least one of —name, —display, —type or —description. An empty —description clears this output description.
Remove a flow output (its Return response prop goes too).
cai flow output delete [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_output_deleteDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Option Required Explicit default Meaning --output <id>Yes — Output ID from cai flow outputs for this flow.
Build the for-each pattern; the core scaffold is atomic and maxItems is verified afterward.
cai flow for-each [options]
CLI surface MCP counterpart MCP disposition CLI flow_for_each_scaffoldDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --flow <flowId>Yes — parent flow holding the list-producing node --from <nodeId>No — node whose output carries the list; optional with —list-js --source-output <outputId>No — exact opaque outputs[].id from cai node get <nodeId> --json; never a label --name <bodyFlowName>Yes — name for the new per-item flow --item-type <type>Yes — one item: a primitive (text|number|date|boolean), an existing/new custom.* type, or a dataRecord.custom.* record --item-field <id:type[:display]>No — field of a NEW custom item type; repeatable. Omit to reuse an existing custom type --list-js <expr>No — JS selecting the list from the wired input --js-file <path|->No — read the list-selection JS from a UTF-8 file or stdin --list-field <path>No — nested list field under the source output; builds the exact inputs..data path --max-items <n>No — runtime list cap, 1..10000 (default when omitted: 500) --item-name <displayName>No — display name of the item flow input --continue-on-errorNo falsekeep looping when one iteration fails
Flow inputs.
Subcommands: add , update , delete .
Add a flow input.
cai flow input add [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_input_addDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Option Required Explicit default Meaning --name <displayName>No — legacy alias for —display; the server derives compiler-current jsBinding --type <ctype>Yes — data type, e.g. text / number / custom.invoice --display <name>No — human label used to derive compiler-current jsBinding; legacyBinding is diagnostic --listNo falsethe input is a list of —type --optionalNo falseinput is optional --description <text>No — Description of the value the caller supplies.
Update a flow input.
cai flow input update [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_input_updateDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Option Required Explicit default Meaning --input <id>Yes — flow input id --name <displayName>No — legacy alias for —display; display changes recompute compiler-current jsBinding --display <name>No — new human label; recomputes jsBinding while legacyBinding stays diagnostic --type <ctype>No — Replacement input data type, such as text or number. --description <text>No — Set a non-empty description. An empty string is treated as absent and cannot clear it. --optionalNo — the input can be omitted by callers --requiredNo — the input must be supplied by callers --default-value <literal>No — stored default metadata (JSON when it parses, else a string); an omitted optional input still resolves to null at run time
Supply at least one non-empty —display (or its —name alias), —type, —description, —optional/—required, or —default-value. —optional and —required are mutually exclusive. An empty description is ignored, so it cannot clear the field. Renaming the display changes the current expression binding; read the flow again afterward.
Delete a flow input.
cai flow input delete [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI flow_input_deleteDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Option Required Explicit default Meaning --input <id>Yes — Input ID from cai flow get for this flow.
Discover integrations and the actions they publish.
Subcommands: search , actions , action .
Search provider integrations and native registry nodes in one ranked list.
cai integration search [options] <query>
CLI surface MCP counterpart MCP disposition CLI integration_searchDirect. Typed counterpart; use its input schema.
Argument Required Meaning <query>Yes integration, native node, or capability to find
Option Required Explicit default Meaning --actionsNo — only integrations that publish actions --eventsNo — only integrations that publish trigger events --agent-attachableNo — only integrations with actions attachable to agents --limit <n>No "20"maximum ranked integrations to return
List one integration’s actions or search exact action pairs across the catalog.
cai integration actions [options] [query]
CLI surface MCP counterpart MCP disposition CLI integration_action_listDirect. Typed counterpart; use its input schema.
Argument Required Meaning [query]No action intent to rank across one or all integrations
Option Required Explicit default Meaning --integration <slug>No — restrict results to one exact integration slug --agent-attachableNo — only actions attachable directly to agents --limit <n>No "50"maximum ranked actions to return
Read the full static prop schema of one action before adding or attaching it.
cai integration action [options]
CLI surface MCP counterpart MCP disposition CLI integration_action_getDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --integration <slug>Yes — exact integration slug --key <key>Yes — exact action key paired with that integration
Placed workflow nodes — add, configure, wire.
Subcommands: add , duplicate , set-flow , get , declare-output , props , reload , status , set , set-connection , connect , disconnect , only-when , optional-props , enable-prop , disable-prop , options , continue-on-error , rename , delete .
Initialize a discovered integration action with its connection, wiring, optional props, and values.
Aliases: init.
CLI surface MCP counterpart MCP disposition CLI node_addDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --flow <flowId>Yes — Destination flow ID from cai flow list. --key <componentKey>Yes — exact action key from cai integration actions --node <slug>No — exact integration slug paired with —key (inferred when omitted) --name <displayName>No — display name; also the outgoing connection label --after <nodeId>No — wire this upstream node into the new node at creation --output <main|error>No "main"which system output —after connects from --connection <id>No — bind an existing connection --props <jsonOrFile>No — initial prop map; direct values become {value:…}, advanced per-prop writes pass through --enable-prop <names...>No — optional prop names to materialize at creation
Copy a node into the same flow (offset position, no incoming edges).
cai node duplicate [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_duplicateDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Point a subflow node at a flow; its input props are generated from that flow.
cai node set-flow [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_subflow_setDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes a Run flow / Run flow on list node
Option Required Explicit default Meaning --flow <flowId>Yes — target flow to call
Full node record: component, inputs, outputs, connection.
cai node get [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_getDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Declare an unverified dynamic output contract from documented response data.
cai node declare-output [options] <nodeId>
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --sample-file <file|->Yes — documented provider response data: a JSON object or a non-empty JSON array of items; - reads stdin
Visible + catalog props with current values and decompiled valueJs.
cai node props [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_prop_listDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Reload and reconcile dependent props, then report the readiness change.
cai node reload [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_prop_reloadDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Return deterministic configuration readiness and exact blockers.
cai node status [options] <nodeId>
Aliases: output.
CLI surface MCP counterpart MCP disposition CLI node_statusDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Set a prop, selecting and verifying the correct storage shape automatically.
cai node set [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_prop_setDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --prop <name>Yes — prop key from cai node props --value <literal>No — static value (JSON string literals are decoded; other JSON is parsed for non-text props and preserved for text props) --js <src>No — expression DSL source, compiled server-side before writing --js-file <path|->No — read expression DSL source from a UTF-8 file or stdin --raw-expression-json <path|->No — raw expression object as JSON from a UTF-8 file or stdin, written verbatim — the escape hatch for advanced constraints, injected chips, and loop traversals the DSL cannot author --label <labels...>No — live option label(s), one per value; used to search providers that do not index opaque ids --expressionNo falsedeprecated compatibility flag; storage is selected automatically
Choose exactly one of —value, —js, —js-file or —raw-expression-json. The deprecated —expression flag does not select how the value is stored.
Bind a connection to an action node.
cai node set-connection [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_connection_setDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --connection <id>Yes — connection id from cai connection list
Wire two nodes; the source output becomes an input on the target.
cai node connect [options]
CLI surface MCP counterpart MCP disposition CLI node_connectDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --from <nodeId>Yes — upstream node --to <nodeId>Yes — downstream node --flow <flowId>Yes — flow containing both nodes --output <main|error>No "main"which system output to wire from
Remove an edge.
cai node disconnect [options]
CLI surface MCP counterpart MCP disposition CLI node_disconnectDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --edge <edgeId>Yes — Edge ID from cai flow get for the connected canvas.
Set or clear a node’s conditional-execution rule.
cai node only-when [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_only_when_setDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --js <expr>No — boolean expression; the node runs only when it is true --js-file <path|->No — read the boolean expression from a UTF-8 file or stdin --groups-json <json>No — condition string[][]: expressions in each row are AND-ed; rows are OR-ed --clearNo falseremove all conditions
Choose —js/—js-file, —groups-json or —clear; these forms are mutually exclusive. In —groups-json, each row combines its expressions with AND, and rows combine with OR.
List togglable optional props.
cai node optional-props [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_optional_prop_listDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Enable an optional prop so it becomes settable.
cai node enable-prop [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_optional_prop_setMerged. The explicit enabled boolean replaces the separate enabling command.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --prop <name>Yes — Optional property name from cai node optional-props.
Disable an optional prop and remove its stored value. Reload-dependent fields are recalculated when the prop controls them.
cai node disable-prop [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_optional_prop_setMerged. The explicit enabled boolean replaces the separate disabling command.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --prop <name>Yes — enabled optional prop key from cai node props
Resolved remote dropdown options for a prop.
cai node options [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_prop_optionsDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --prop <name>Yes — Property name from cai node props whose choices you want. --query <q>No — search term — strongly preferred over paging --page <n>No — 0-based page when not searching --prev-context <json>No — pagination context returned by a previous options response --for <prop>=<value>No — override an earlier prop value for option resolution; JSON literals are accepted, bare text is passed as a string; repeatable
Set continue-on-error to an explicit enabled or disabled state.
cai node continue-on-error [options] <nodeId>
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --enableNo — Enable continue-on-error. --disableNo — Disable continue-on-error.
Pass exactly one of —enable or —disable. Disabling removes edges from the Error output.
Rename a node (also renames its outgoing connection label).
cai node rename [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_renameDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --name <displayName>Yes — Replacement node display name.
Delete a node.
cai node delete [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_deleteDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
The expression surface.
Subcommands: context , validate , set , ops , decompile .
MANDATORY before writing any —js. Lists every in-scope binding.
cai expr context [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI expr_contextDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --prop <name>No — the destination prop — adds its expected type and mode --methodsNo falseinclude the full method catalog (large)
Compile an expression against the node’s real scope. Side-effect free.
cai expr validate [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI expr_validateDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --js <src>No — expression DSL source --js-file <path|->No — read expression DSL source from a UTF-8 file or stdin --prop <name>No — destination prop — validates against its real type and mode --mode <text|expression|onlyWhen>No — compile target when —prop is unknown
Context-check, compile, persist to the correct channel, and verify readback.
cai expr set [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI node_prop_setMerged. node_prop_set exposes the same expression write alongside literal and raw-expression forms.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --prop <name>Yes — destination prop --js <src>No — expression DSL source --js-file <path|->No — read expression DSL source from a UTF-8 file or stdin --forceNo falseoverwrite a stored expression the JS DSL cannot fully express, losing those constructs
The method catalog: which operations exist per data type.
CLI surface MCP counterpart MCP disposition CLI expr_operation_listDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --type <ctype>No — restrict to one data type; results are cataloged by base type (for example list.custom.video_calendar -> list)
Read a stored expression as JavaScript-like source.
cai expr decompile [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI expr_decompileDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --prop <name>Yes — Property name from cai node props whose expression you want to read.
Run nodes and flows. Integration actions execute against their connected accounts.
Subcommands: node , flow , inputs , discover .
Run one node in isolation on the development version and return its resolvedConfigs.
cai run node [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI run_nodeDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Node ID from cai flow get in the selected workflow.
Option Required Explicit default Meaning --inputs <json|file|->No — inline JSON or a JSON file; - reads stdin --timeout <ms>No "120000"how long to wait for the run to finish
This executes real integration actions against connected accounts and spends usage. An isolated run does not execute upstream nodes. Only completed is success; pause, another terminal status or timeout exits nonzero with error.detail.workflowExecutionId and lastSnapshot. Inspect that existing execution instead of dispatching another run.
Run one flow end-to-end on the development or published live version.
cai run flow [options] <flowId>
CLI surface MCP counterpart MCP disposition CLI run_flowDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowId>Yes Flow ID from cai flow list in the selected workflow.
Option Required Explicit default Meaning --inputs <json|file|->No — inline JSON or a JSON file; - reads stdin --target <dev|live>No "dev"Development version or published live release. --confirm-liveNo falseacknowledge LIVE run side effects and usage --timeout <ms>No "300000"how long to wait for the run to finish
—target live requires —confirm-live. Both targets execute real integration actions and spend usage when the flow contains them. Only completed is success; paused, completed_with_error, failed, cancelled or timeout exits nonzero with error.detail.workflowExecutionId and lastSnapshot. Inspect that execution instead of redispatching; a polling timeout does not stop it.
Show inputs for a node, or pass —flow to inspect a flow before run flow.
cai run inputs [options] <nodeIdOrFlowId>
CLI surface MCP counterpart MCP disposition CLI run_inputsDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeIdOrFlowId>Yes Node ID from cai flow get, or flow ID from cai flow list when using —flow.
Option Required Explicit default Meaning --flowNo falsetreat the argument as a flow id
Probe a component output with a temporary node. Connected actions can have real effects.
cai run discover [options]
CLI surface MCP counterpart MCP disposition CLI run_discoverDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --node <slug>Yes — integration node slug --key <componentKey>Yes — exact action key from cai integration actions --connection <id|none>Yes — connection id, or “none” for a component that needs no auth --props <json|file|->No — prop values, same per-prop shape as node add --enable <prop>No — optional prop to enable first; repeatable --keepNo falsekeep the scratch node instead of deleting it --timeout <ms>No — poll budget, backend caps at 55000
Read execution history.
Subcommands: list , get , flow , node , tree .
Recent workflow executions.
CLI surface MCP counterpart MCP disposition CLI execution_listDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --limit <n>No "10"max rows
One workflow execution with its flat node executions.
cai exec get [options] <workflowExecutionId>
CLI surface MCP counterpart MCP disposition CLI execution_getDirect. Typed counterpart; use its input schema.
Argument Required Meaning <workflowExecutionId>Yes Workflow execution ID from cai run node, cai run flow or cai exec list.
Returns at most the 200 newest node executions, with nodeExecutionsTruncated when more exist. Use cai exec tree to page through the nodes.
Node-by-node detail of one flow execution (includes resolvedConfigs).
cai exec flow [options] <flowExecutionId>
CLI surface MCP counterpart MCP disposition CLI execution_flow_getDirect. Typed counterpart; use its input schema.
Argument Required Meaning <flowExecutionId>Yes Flow execution ID from cai exec tree.
One node execution: status, output, and resolvedConfigs.
cai exec node [options] <nodeExecutionId>
CLI surface MCP counterpart MCP disposition CLI execution_node_getDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeExecutionId>Yes Node execution ID from cai exec tree or cai exec get.
Option Required Explicit default Meaning --fullNo falseprint the untruncated output blob
Paginated node-by-node status rows across a workflow execution.
cai exec tree [options] <workflowExecutionId>
CLI surface MCP counterpart MCP disposition CLI execution_treeDirect. Typed counterpart; use its input schema.
Argument Required Meaning <workflowExecutionId>Yes Workflow execution ID from cai run node, cai run flow or cai exec list.
Option Required Explicit default Meaning --limit <n>No — maximum rows to return (1-200; default 50) --cursor <opaque>No — continue from a returned execution-tree cursor --status <status...>No — filter by one or more statuses: pending, running, completed, completed_with_error, failed, skipped, cancelled --flow <flowId>No — filter by one exact workflow flow id
If any node-detail read fails, the command exits nonzero and returns successfully read rows in error.detail.partialData. A cursor belongs to one execution and cannot be reused with a different limit or filters.
Existing user connections.
Subcommands: list , update , delete , request , connect .
List account connections without requiring workflow context.
cai connection list [options]
CLI surface MCP counterpart MCP disposition CLI connection_listDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --integration <slug>No — only connections for this integration --node <slug>No — legacy alias for —integration
Rename a connection or change whether it is the integration default.
cai connection update [options] <connectionId>
CLI surface MCP counterpart MCP disposition CLI connection_updateDirect. Typed counterpart; use its input schema.
Argument Required Meaning <connectionId>Yes connection id from cai connection list
Option Required Explicit default Meaning --name <displayName>No — new display name --defaultNo — make this the default connection for its integration --no-defaultNo — clear this connection’s default flag
Supply at least one of —name, —default or —no-default. —default and —no-default are mutually exclusive. Changing the default does not rebind existing nodes or agent tools.
Delete a connection; nodes and agent tools bound to this connection lose their authorization immediately.
cai connection delete [options] <connectionId>
CLI surface MCP counterpart MCP disposition CLI connection_deleteDirect. Typed counterpart; use its input schema.
Argument Required Meaning <connectionId>Yes connection id from cai connection list
Option Required Explicit default Meaning --yesYes — confirm deletion and immediate authorization loss
Ask the user to connect an integration: places a connect card in the build chat and returns immediately.
cai connection request [options] <nodeSlug>
CLI surface MCP counterpart MCP disposition CLI with build-chat presentation — Omitted from MCP. Posts a connect card into build chat; connection_connect_url supplies the hosted outcome.
Argument Required Meaning <nodeSlug>Yes integration slug that needs a connected account
Option Required Explicit default Meaning --for-node <nodeId>No — workflow node that needs this connection (context only) --reason <text>No — one short user-facing sentence shown on the card
A build chat is needed for a connect card. When requestedInChat is false, use the returned connectUrl.
Open the Controller AI browser flow for a missing integration, optionally waiting for completion.
cai connection connect [options] <nodeSlug>
CLI surface MCP counterpart MCP disposition CLI connection_connect_urlDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeSlug>Yes integration slug reported by cai integration search
Option Required Explicit default Meaning --no-openNo — headless/remote mode: print the URL without opening a browser --waitNo falsewait for a newly created connection for this integration --timeout <seconds>No "300"maximum time to wait for the new connection
Router routes and If/Else branches — create, condition, wire, order.
Subcommands: list , add , update , delete , connect , reorder .
Routes/branches in evaluation order, with conditions and wired targets.
cai branch list [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI branch_listDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Router or If/Else node id
Add a Router route or an If/Else condition branch (inserted before Else).
cai branch add [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI branch_addDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Router or If/Else node id
Option Required Explicit default Meaning --name <displayName>No — route/branch label --js <expr>No — boolean condition, one expression --js-file <path|->No — read one boolean condition from a UTF-8 file or stdin --condition-json <json>No — condition as string[][] — OR of AND-rows --allow-duplicateNo falseadd even when a route/branch already carries —name
Rename a route/branch and/or replace its condition.
cai branch update [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI branch_updateDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Router or If/Else node id
Option Required Explicit default Meaning --route <id>No — route id (Router) or branch id (If/Else) --branch <id>No — alias for —route --name <displayName>No — new label --js <expr>No — new boolean condition, one expression --js-file <path|->No — read one boolean condition from a UTF-8 file or stdin --condition-json <json>No — new condition as string[][] — OR of AND-rows
Delete a route/branch and its branch edge.
cai branch delete [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI branch_deleteDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Router or If/Else node id
Option Required Explicit default Meaning --route <id>No — route id (Router) or branch id (If/Else) --branch <id>No — alias for —route
Connect a branch output to a target node.
cai branch connect [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI branch_connectDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes Router or If/Else node id
Option Required Explicit default Meaning --route <id>No — route id (Router) or branch id (If/Else) --branch <id>No — alias for —route --to <nodeId>Yes — target node the branch runs --flow <flowId>No — flow containing both nodes (resolved when omitted)
Reorder If/Else condition branches — first match wins, so order is semantics.
cai branch reorder [options] <nodeId>
CLI surface MCP counterpart MCP disposition CLI branch_reorderDirect. Typed counterpart; use its input schema.
Argument Required Meaning <nodeId>Yes If/Else node id
Option Required Explicit default Meaning --order <ids>Yes — every condition branch id, comma-separated, in new order
Workflow data store — collections and records (development and live stores are separate).
Subcommands: collections , fields , query , get , create , update , delete , delete-many , import , copy-to-live , collection .
Collections in one record store, with row counts.
cai data collections [options]
CLI surface MCP counterpart MCP disposition CLI data_collection_listDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --env <dev|live>No "dev"record store to read
Field id ⇄ display mapping — writes go by id, reads come back by display.
cai data fields [options]
CLI surface MCP counterpart MCP disposition CLI data_field_listDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --type <dataType>Yes — collection data type, e.g. custom.invoice
Records in one collection.
CLI surface MCP counterpart MCP disposition CLI data_record_queryDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --type <dataType>Yes — collection data type, e.g. custom.invoice --env <dev|live>No "dev"record store to read --query <text>No — plain-text search — NOT field-aware filtering --limit <n>No — page size (backend caps at 100) --offset <n>No — pagination offset
One record by id.
cai data get [options] <recordId>
CLI surface MCP counterpart MCP disposition CLI data_record_getDirect. Typed counterpart; use its input schema.
Argument Required Meaning <recordId>Yes record id, e.g. rec_…
Option Required Explicit default Meaning --type <dataType>Yes — Custom data type name from cai data collections for the selected environment. --env <dev|live>No "dev"record store to read
Create a record (validated against the collection schema).
cai data create [options]
CLI surface MCP counterpart MCP disposition CLI data_record_createDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --type <dataType>Yes — Custom data type name from cai data collections for the selected environment. --fields <json|file|->Yes — field values keyed by field id --env <dev|live>No "dev"record store to write
Patch a record — omitted fields are left alone.
cai data update [options] <recordId>
CLI surface MCP counterpart MCP disposition CLI data_record_updateDirect. Typed counterpart; use its input schema.
Argument Required Meaning <recordId>Yes Record ID from cai data query for this data type and environment.
Option Required Explicit default Meaning --type <dataType>Yes — Custom data type name from cai data collections for the selected environment. --fields <json|file|->Yes — fields to patch, keyed by field id --env <dev|live>No "dev"record store to write
Soft-delete a record.
cai data delete [options] <recordId>
CLI surface MCP counterpart MCP disposition CLI data_record_deleteDirect. Typed counterpart; use its input schema.
Argument Required Meaning <recordId>Yes Record ID from cai data query for this data type and environment.
Option Required Explicit default Meaning --type <dataType>Yes — Custom data type name from cai data collections for the selected environment. --env <dev|live>No "dev"record store to write
Bulk-delete records from the development or live store (soft delete; no undo).
cai data delete-many [options]
CLI surface MCP counterpart MCP disposition CLI data_record_delete_manyDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --type <dataType>Yes — Custom data type name from cai data collections for the selected environment. --records <id,id,…>No — record ids to delete --allNo falsedelete every record in the collection --yesNo falseconfirm deleting every record when used with —all --env <dev|live>No "dev"record store to delete from; live changes affect the published workflow immediately
Choose non-empty —records or —all, never both; —all also requires —yes. There is no public record undo.
Validate or import CSV records in the development or live store (commits append).
cai data import [options]
Option Required Explicit default Meaning --type <dataType>Yes — Custom data type name from cai data collections for the selected environment. --file <path>Yes — CSV file to import --env <dev|live>No "dev"record store to validate or write; live commits affect the published workflow immediately --mode <dryRun|commit>No "dryRun"validate only, or actually write
CSV headers use field display names. —mode dryRun writes nothing. Commit validates again, appends valid rows and skips invalid rows; rerunning appends the valid rows again. Inspect imported and rejected counts, then query the same store before retrying.
Upsert active development records into the matching published Live collection by record key.
cai data copy-to-live [options]
CLI surface MCP counterpart MCP disposition CLI data_copy_to_liveDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --type <dataType>Yes — collection to copy from development to live
Requires a matching, current published schema. Matching record keys are overwritten or revived, Live-only rows remain, and an empty development source changes nothing. There is no dry run.
Collection lifecycle (collections are synced from custom.* schemas).
Subcommands: create .
Create a collection by defining its schema; equivalent to cai schema create.
cai data collection create [options] <dataType>
CLI surface MCP counterpart MCP disposition CLI schema_type_createMerged. The collection command shares the schema-creation tool.
Argument Required Meaning <dataType>Yes collection data type — must start with “custom.”
Option Required Explicit default Meaning --display <label>No — Human-readable name of the new data type. --field <id:type[:display]>No — field spec; repeatable --from-json <file|->No — full {display, fields} definition
Provide at least one —field or —from-json, following the same definition rules as cai schema create.
Dependency map: which agents and workflows depend on this workflow (or the whole account).
CLI surface MCP counterpart MCP disposition CLI dependency_mapDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --accountNo falseaccount-wide resource map instead of the current workflow
Account activity feed, newest first: connections, workflow edits/publishes/runs, agents, org members.
CLI surface MCP counterpart MCP disposition CLI event_listDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --type <types>No []only these event types (comma-separated or repeated) --since <when>No — ISO timestamp or relative like 30m, 2h, 7d --cursor <cursor>No — opaque cursor from a previous page; returns strictly older events --for-workflow <id>No — only events about this workflow --limit <n>No — events per page (default 50, max 200)
Per-workflow custom data types (custom.*) — the data store’s schemas.
Subcommands: list , get , resolve , create , update , delete .
Every data type defined in this workflow.
cai schema list [options]
CLI surface MCP counterpart MCP disposition CLI schema_type_listDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --allNo falseinclude the engine-derived custom.__* integration schemas
One data type with its field ids, displays and types.
cai schema get [options] <name>
CLI surface MCP counterpart MCP disposition CLI schema_type_getDirect. Typed counterpart; use its input schema.
Argument Required Meaning <name>Yes schema name, e.g. custom.invoice
Read a type name, fields and whether it is a list.
cai schema resolve [options] <typeId>
CLI surface MCP counterpart MCP disposition CLI schema_type_resolveDirect. Typed counterpart; use its input schema.
Argument Required Meaning <typeId>Yes e.g. text, custom.invoice, list.custom.invoice, node.
Create a custom data type (this is also what creates a data collection).
cai schema create [options] <name>
CLI surface MCP counterpart MCP disposition CLI schema_type_createDirect. Typed counterpart; use its input schema.
Argument Required Meaning <name>Yes schema name — must start with “custom.”
Option Required Explicit default Meaning --display <label>No — human label (defaults to the name without the prefix) --field <id:type[:display]>No — field spec; repeatable --from-json <file|->No — full {display, fields} definition instead of —field
Provide at least one —field or —from-json. JSON must contain fields with id and type; an omitted field display defaults to its ID. When both forms are supplied, —from-json supplies the definition.
Update a data type definition. —field or —from-json replaces the complete field list and removes omitted fields; a display-only update preserves fields.
cai schema update [options] <name>
CLI surface MCP counterpart MCP disposition CLI schema_type_updateDirect. Typed counterpart; use its input schema.
Argument Required Meaning <name>Yes schema name, e.g. custom.invoice
Option Required Explicit default Meaning --display <label>No — new human label --field <id:type[:display]>No — Repeat for each field. Replaces the complete field list. --from-json <file|->No — full {display, fields} definition instead of —field
Supply —display, at least one —field, or —from-json. A field replacement removes omitted fields from the schema without converting stored values; a display-only edit preserves fields.
Remove the development type and deactivate its collection without deleting stored rows.
cai schema delete [options] <name>
CLI surface MCP counterpart MCP disposition CLI schema_type_deleteDirect. Typed counterpart; use its input schema.
Argument Required Meaning <name>Yes schema name, e.g. custom.invoice
Option Required Explicit default Meaning --yesYes — confirm deleting the type and removing fields on other types that reference it
Recreating the same type and field IDs reactivates stored values. Fields removed from other types because they referenced this type are not restored automatically.
Inspect trigger sources, captured events and development or live dispatch.
Subcommands: list , audit , get , test-events , search , props , options , create , events , event , select-event , replay , set-enabled , rename , delete .
Trigger lifecycle rows: ids, development state, readiness and issues.
cai trigger list [options]
CLI surface MCP counterpart MCP disposition CLI trigger_listDirect. Typed counterpart; use its input schema.
Pre-publish trigger coverage, development dispatch and double-run risk.
cai trigger audit [options]
CLI surface MCP counterpart MCP disposition CLI trigger_auditDirect. Typed counterpart; use its input schema.
Full lifecycle for one trigger: capture, deployment, verification and issues.
cai trigger get [options] <triggerId>
CLI surface MCP counterpart MCP disposition CLI trigger_getDirect. Typed counterpart; use its input schema.
Argument Required Meaning <triggerId>Yes canvas trigger id from cai trigger list
Set ambient development test-event dispatch (routine tests should use replay).
cai trigger test-events [options] <triggerId>
CLI surface MCP counterpart MCP disposition CLI trigger_test_events_setDirect. Typed counterpart; use its input schema.
Argument Required Meaning <triggerId>Yes canvas trigger id from cai trigger list
Option Required Explicit default Meaning --allowNo — arm ambient real-event dispatch against the development canvas --disallowNo — turn ambient development dispatch off --acknowledge-dual-runNo — when arming, acknowledge that one real event can execute more than once
Choose —allow or —disallow. Enabling requires —acknowledge-dual-run because one event can start development and live executions.
Nodes that can trigger a flow, and the —event keys each one publishes.
cai trigger search [options] [query]
CLI surface MCP counterpart MCP disposition CLI trigger_searchDirect. Typed counterpart; use its input schema.
Argument Required Meaning [query]No search term, plain English
Option Required Explicit default Meaning --node <slug>No — also return this node’s full event list --limit <n>No "20"max nodes --events-per-node <n>No "6"event rows listed per node (raise to see them all)
Configurable props for a trigger event; returns the dynamicPropsId to reuse.
cai trigger props [options]
CLI surface MCP counterpart MCP disposition CLI trigger_component_propsDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --node <slug>Yes — trigger node slug --event <eventKey>Yes — event key from cai trigger search — never guess it --connection <id>No — connection id when the trigger needs auth --configured <json|file|->No — already-set prop values, for dependent dynamic props --dynamic-props-id <id>No — dynamicPropsId from a previous call, to reload
Resolve exact values for one trigger dropdown prop before trigger creation.
cai trigger options [options]
CLI surface MCP counterpart MCP disposition CLI trigger_prop_optionsDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --node <slug>Yes — trigger node slug --event <eventKey>Yes — event key from cai trigger search --prop <name>Yes — option-backed prop name from cai trigger props --connection <id>No — connection id when the trigger needs auth --configured <json|file|->No — already-set trigger prop values --dynamic-props-id <id>No — dynamicPropsId from cai trigger props --query <text>No — search by human option label --page <n>No — 0-based option page when not searching --prev-context <json|file|->No — context returned by a previous options page
Create a trigger source and its canvas.
cai trigger create [options]
CLI surface MCP counterpart MCP disposition CLI trigger_createDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --flow <flowId>Yes — flow this trigger runs (a trigger targets exactly one) --node <slug>Yes — trigger node slug --event <eventKey>Yes — event key from cai trigger search — never guess it --source-basis <basis>Yes — one of explicit-in-request | user-answer | inferred-from-existing-workflow --connection <id>No — connection id when the trigger needs auth --props <json|file|->No — configured prop values --dynamic-props-id <id>No — dynamicPropsId from cai trigger props
Creation deploys a real source and starts traffic capture immediately. Captured events run the workflow after publication, during armed development dispatch, or through replay.
Captured events for a trigger source — compact payload previews.
cai trigger events [options]
CLI surface MCP counterpart MCP disposition CLI trigger_event_listDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --trigger <backendTriggerId>Yes — the NUMERIC backendTriggerId, not the canvas id --limit <n>No — newest-first page size (default 5, max 50)
One captured event with its full payload.
cai trigger event [options] <eventId>
CLI surface MCP counterpart MCP disposition CLI trigger_event_getDirect. Typed counterpart; use its input schema.
Argument Required Meaning <eventId>Yes captured event id from cai trigger events
Adopt a captured event as the trigger’s sample, defining its output schema.
cai trigger select-event [options]
CLI surface MCP counterpart MCP disposition CLI trigger_event_selectDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --node <triggerNodeId>Yes — trigger node id from cai trigger create --event <eventId>Yes — captured event id
Replay a captured event or supplied payload. The default target is development; actions have real effects.
cai trigger replay [options]
CLI surface MCP counterpart MCP disposition CLI trigger_replayDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --trigger <backendTriggerId>Yes — the NUMERIC backendTriggerId --event <eventId>No — captured event to replay (exclusive with —payload) --payload <json|file|->No — custom raw payload (exclusive with —event) --target <dev|live>No "dev"development pre-publish or LIVE post-publish verification --confirm-liveNo falseacknowledge LIVE replay side effects and usage
Choose exactly one of —event or —payload. —target live requires —confirm-live.
Set a trigger to an explicit enabled or disabled state.
cai trigger set-enabled [options] <triggerId>
CLI surface MCP counterpart MCP disposition CLI trigger_set_enabledMerged. The explicit enabled boolean combines the mutually exclusive enable and disable flags.
Argument Required Meaning <triggerId>Yes canvas trigger id
Option Required Explicit default Meaning --enableNo — set the trigger enabled --disableNo — set the trigger disabled
Pass exactly one of —enable or —disable. This changes development and armed development dispatch immediately; the published trigger keeps its prior state until workflow publication.
Rename a trigger.
cai trigger rename [options] <triggerId>
CLI surface MCP counterpart MCP disposition CLI trigger_renameDirect. Typed counterpart; use its input schema.
Argument Required Meaning <triggerId>Yes canvas trigger id
Option Required Explicit default Meaning --name <name>Yes — Replacement trigger name.
Delete a trigger and its canvas.
cai trigger delete [options] <triggerId>
CLI surface MCP counterpart MCP disposition CLI trigger_deleteDirect. Typed counterpart; use its input schema.
Argument Required Meaning <triggerId>Yes canvas trigger id
Deletes the development trigger and stops its armed development dispatch immediately. The prior Live trigger continues until workflow publication.
Inspect and complete the assisted template setup bound to this build thread.
Subcommands: status , complete .
Read the assisted template setup state for this build thread.
cai template-setup status [options]
CLI surface MCP counterpart MCP disposition CLI — Omitted from MCP. Assisted template setup runs inside the builder sandbox from its injected brief, not through the hosted MCP.
Verify every expected workflow release and tool binding, then complete setup.
cai template-setup complete [options]
CLI surface MCP counterpart MCP disposition CLI — Omitted from MCP. Assisted template setup runs inside the builder sandbox from its injected brief, not through the hosted MCP.
Workflow and agent labels; rename or delete account labels in the UI.
Subcommands: list , set .
Every label you own.
CLI surface MCP counterpart MCP disposition CLI label_listDirect. Typed counterpart; use its input schema.
Account-wide label renaming and deletion are app operations.
Set the exact labels on one workflow or one agent by name.
CLI surface MCP counterpart MCP disposition CLI label_setDirect. Typed counterpart; use its input schema.
Option Required Explicit default Meaning --agent <agentId>No — agent id to label --labels <name,...>No — comma-separated label names --label <name>No — one label name; repeat for more than one --noneNo — remove every label from the target
Pass exactly one explicit target: —workflow or —agent ; a pinned workflow alone is not accepted here. Choose —labels and/or repeat —label, or use —none alone. This replaces all labels on the target and creates missing account labels. Account-wide label renaming and deletion are app operations.