Agents, MCP and skills
Agents in a Space, connecting your AI agents and the AI providers they use, the stdio MCP server, and recorded skills.
| Command | Description |
|---|---|
cua agent | Agents in a Space: add, send, ls, rm, schedule; run, logs, stop. |
cua agent add | Add an agent: a name, a harness and a Space. |
cua agent run | Start a coding agent in a sandbox (returns at once unless --follow). |
cua agent ls | List your agents, or with SANDBOX the runs in it. |
cua agent logs | Print a run's normalized events (--follow to stream). |
cua agent send | Message a named agent (send NAME TEXT), or send a follow-up to a run (send SANDBOX RUN_ID TEXT, queued while a turn runs). |
cua agent interrupt | Cancel the turn in flight (the session stays open). |
cua agent stop | Stop a run and verify it is gone. |
cua agent status | A run's status and last result. |
cua agent rm | Remove a named agent (its home stays in the Cua Volume), or stop a run and delete its record (secrets included). |
cua agent ensure | Install harnesses or apps now (claude-code, blender, ...). |
cua agent schedule | A named agent's schedules: turns the daemon starts with or without the app open. |
cua agent schedule add | Add a schedule (give one of --every, --daily, --weekly). |
cua agent schedule ls | List schedules. |
cua agent schedule rm | Delete a schedule. |
cua agent schedule enable | Turn a schedule on. |
cua agent schedule disable | Turn a schedule off. |
cua agent sessions | Durable sessions: agents your machines keep alive (run --durable). |
cua agent harnesses | The harnesses: readiness, installs, key variables, limits. |
cua agent keys | The provider keys agents get, kept in the Keychain by the Cua daemon (Cua Spaces → Settings → Connections). |
cua agent keys ls | List the saved keys (never their values). |
cua agent keys set | Add or replace a key, read from stdin. |
cua agent keys check | Ask each provider whether the saved API keys still work (a cheap read-only request; nothing is sent that is not a key's own request). |
cua agent keys rm | Remove the key a run gets as ENV. |
cua agent create | Deprecated alias of add. |
cua agent persistent | Deprecated alias of ls (without a sandbox). |
cua agent tell | Deprecated alias of send NAME TEXT. |
cua agent save | Save a persistent agent's home into the drive now. |
cua agent pause | Pause a persistent agent: its run, its routines, and its Space (suspended when local; a cloud Space is released after the home is saved). |
cua agent resume | Resume a paused persistent agent. |
cua agent forget | Deprecated alias of rm NAME. |
cua agent routine | Deprecated alias of schedule. |
cua agent routine add | Add a schedule (give one of --every, --daily, --weekly). |
cua agent routine ls | List schedules. |
cua agent routine rm | Delete a schedule. |
cua agent routine enable | Turn a schedule on. |
cua agent routine disable | Turn a schedule off. |
cua agent allow-computer | Let a persistent agent use one of your computers (asks for presence). |
cua agent revoke-computer | Take a persistent agent's computer access back. |
cua agent computer-access | Which agents may use which computers, and the audit log. |
cua agent notifications | The notifications the Cua app shows (turn ends, notify_user, requests). |
cua thread | A Space's thread, as the agent this computer joined with cua join: say who you are, read your inbox, post. |
cua thread join | Say who you are: your name, icon, harness and version. |
cua thread inbox | Your open tasks (@mentions); waits for one up to --wait seconds. |
cua thread post | Post to the thread, or reply to a task. |
cua thread read | Read the newest entries. |
cua join | Join a Space as an agent on this computer, with the code from a "Join my Cua Space" link. |
cua connect | Connect the AI agents on this computer to Cua: install the cua skills and configure the cua MCP server. |
cua connect detect | List supported AI coding agents and which are installed (read-only). |
cua connect setup | Install the default cua skills and configure the cua MCP server. |
cua connect status | Whether each agent is really connected: installed and its version, signed in, Cua's MCP entry present and answering, and its sign-in copied to Keyvault. |
cua connect remove | Remove the Cua Spaces skills and MCP entries cua added (nothing else). |
cua connect update | Refresh installed cua skills and managed MCP entries to this version. |
cua connections | The AI providers connected once for every app that can use them: list, add (a key from stdin), test, remove. |
cua connections list | List the providers with their state (Connected, Needs reconnect, Not connected) and the apps each works with. |
cua connections add | Connect a provider. |
cua connections test | Ask each provider whether its saved key still works (a read-only request on the provider's own host, bounded in time; offline is not a failure). |
cua connections remove | Disconnect a provider: remove what is saved for it. |
cua connections github | The GitHub sign-in used for an approved push: what is signed in and a switch per host. |
cua connections github status | What is signed in on each host and which account will be used (the default). |
cua connections github rescan | Look again: what gh is signed in with, and what a saved or environment token may do (its account and scopes). |
cua connections github use | Use this gh account for pushes and pull requests on a host. |
cua connections github on | Turn GitHub on for a host again. |
cua connections github off | Turn GitHub off for a host: Cua uses no sign-in there until you turn it on. |
cua agents | Deprecated alias of connect. |
cua agents detect | List supported AI coding agents and which are installed (read-only). |
cua agents setup | Install the default cua skills and configure the cua MCP server. |
cua agents status | Whether each agent is really connected: installed and its version, signed in, Cua's MCP entry present and answering, and its sign-in copied to Keyvault. |
cua agents remove | Remove the Cua Spaces skills and MCP entries cua added (nothing else). |
cua agents update | Refresh installed cua skills and managed MCP entries to this version. |
cua mcp | Stdio MCP server exposing sandboxes, computer control and skills. |
cua skills | Recorded demonstrations (skills) for agents. |
cua skills list | List saved skills. |
cua skills read | Print a skill. |
cua skills replay | Open a skill's video recording. |
cua skills delete | Delete a skill. |
cua skills clean | Delete every skill (asks first). |
cua skills record | Record a demonstration in the HTML5 viewer (it records the screen and your input). |
Every command also accepts the global options.
cua agent#
Agents in a Space: add, send, ls, rm, schedule; run, logs, stop.
cua agent [OPTIONS] <COMMAND>cua agent add#
Add an agent: a name, a harness and a Space.
.
With PROMPT it starts at once. --daily, --every or --weekly schedule PROMPT instead; --once runs PROMPT as a one-off task; --durable keeps it running through crashes.
cua agent add [OPTIONS] --harness <HARNESS> <NAME> [PROMPT]| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | required | The agent's name: 1-63 of a-z, 0-9, ., _, -. |
<PROMPT> | string | optional | What it starts on: a first message, a scheduled task (with --daily/--every/--weekly) or the task (--once, --durable). |
| Flag | Type | Default | Description |
|---|---|---|---|
--harness | string | required | Harness id (cua agent harnesses). |
--in | string | The Space it works in (with --durable: a durable Space by name; default auto, none). | |
--model | string | ||
--base-url | string | ||
--env-from-host | string | Provider key variable to forward at each start. Repeatable. | |
--on | string | With --durable: the machine the driver runs on (auto, or a machine's name; default: this machine). | |
--max-attempts | integer | With --durable: drives allowed in total before the session fails (default 5). | |
--stall-secs | integer | With --durable: seconds the driver may write no output before it counts as wedged, is cancelled and started again (default 120; 0: never). Drivers print a heartbeat every quarter of it. | |
--every | integer | Schedule PROMPT every N minutes. | |
--daily | string | Schedule PROMPT every day at HH:MM. | |
--weekly | string | Schedule PROMPT every week, mon 09:00. | |
--title | string | The schedule's title (default: the agent's name). | |
--once | boolean | false | A one-off task: run PROMPT and stop when it is answered (no name kept, no memory). |
--durable | boolean | false | Keep it running through crashes: your machines' coordinator starts it again (a durable session, cua agent run --durable). |
Examples
cua agent add ada --harness hermes --in local:dev --env-from-host OPENAI_API_KEY
cua agent add ada --harness claude-code --in local:dev "summarize the repo"
cua agent add ada --harness claude-code --in local:dev --daily 08:00 "plan the day"
cua agent add fix-1 --harness claude-code --in local:dev --once "fix the failing test"
cua agent add nightly --harness claude-code --durable --on auto "refactor the parser"cua agent run#
Start a coding agent in a sandbox (returns at once unless --follow).
cua agent run [OPTIONS] <SANDBOX> <HARNESS> <PROMPT>| Argument | Type | Default | Description |
|---|---|---|---|
<SANDBOX> | string | required | Sandbox (local:NAME, direct:HOST:PORT, or NAME). |
<HARNESS> | string | required | Harness (cua agent harnesses). |
<PROMPT> | string | required | The task. |
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--env-from-host | string | Forward a provider key from this shell's environment (repeatable), for example ANTHROPIC_API_KEY. The value never appears in argv. | ||
--repo | string | Git repository cloned into the working directory first. | ||
--branch | string | |||
--cwd | string | Working directory in the sandbox. | ||
--model | string | |||
--base-url | string | A custom model endpoint (proxy or compatible server). | ||
--wire | string | Its wire format: anthropic, openai-responses, openai-chat, gemini. | ||
--mcp | string | An MCP server for the agent: NAME=URL (HTTP, as reachable inside the sandbox) or NAME=cmd:COMMAND ARGS... (stdio, run in the sandbox). Repeatable. | ||
--file | path | Attach a local file to the prompt (repeatable). | ||
--label | string | |||
--on | string | With --durable: the machine the driver runs on (auto, or a machine's name; default: this machine). | ||
--max-attempts | integer | With --durable: drives allowed in total before the session fails (default 5). | ||
--stall-secs | integer | With --durable: seconds the driver may write no output before it counts as wedged, is cancelled and started again (default 120; 0: never). Drivers print a heartbeat every quarter of it. | ||
--name | string | With --durable: the session's name (default: generated). | ||
--local | boolean | false | Look NAME up among local sandboxes only (same as local:NAME). | |
--no-sandbox-mcp | boolean | false | Do not give the agent the sandbox's own MCP tools. | |
--no-skills | boolean | false | Do not copy the cua skills into the harness. | |
--exit-when-idle | boolean | false | Stop (resumably) once the prompt is answered. | |
--follow | -f | boolean | false | Stream events until the turn ends. |
--durable | boolean | false | Keep the agent alive across a lost driver or machine: your machines' coordinator starts it again (a higher epoch each time, with backoff and a cap). SANDBOX is then a durable Space by name, or auto for none. |
Examples
cua agent run local:dev claude-code "fix the failing test" --env-from-host ANTHROPIC_API_KEY -f
cua agent run local:ci openai-codex "add tests" --repo https://github.com/org/repo --exit-when-idlecua agent ls#
List your agents, or with SANDBOX the runs in it.
cua agent ls [OPTIONS] [SANDBOX]Alias: cua agent list.
| Argument | Type | Default | Description |
|---|---|---|---|
<SANDBOX> | string | optional | Sandbox (local:NAME, direct:HOST:PORT, or NAME). Without it: your named agents. |
| Flag | Type | Default | Description |
|---|---|---|---|
--local | boolean | false | Look NAME up among local sandboxes only (same as local:NAME). |
Examples
cua agent ls
cua agent ls local:devcua agent logs#
Print a run's normalized events (--follow to stream).
cua agent logs [OPTIONS] <SANDBOX> [RUN_ID]| Argument | Type | Default | Description |
|---|---|---|---|
<SANDBOX> | string | required | Sandbox, or session:NAME for a durable session. |
<RUN_ID> | string | optional | The run (not for a session). |
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--local | boolean | false | Look NAME up among local sandboxes only (same as local:NAME). | |
--follow | -f | boolean | false | Keep streaming until the turn ends. |
--raw | boolean | false | Print each event's JSON (raw ACP payload included). |
Examples
cua agent logs local:dev run-1a2b3c4d -f
cua agent logs session:refactor -fcua agent send#
Message a named agent (send NAME TEXT), or send a follow-up to a run (send SANDBOX RUN_ID TEXT, queued while a turn runs).
cua agent send [OPTIONS] <NAME|SANDBOX> <TEXT|RUN_ID> [TEXT]| Argument | Type | Default | Description |
|---|---|---|---|
<NAME|SANDBOX> | string | required | A named agent, or the sandbox of a run. |
<TEXT|RUN_ID> | string | required | The message for a named agent, or the run. |
<TEXT> | string | optional | The message for a run. |
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--local | boolean | false | Look NAME up among local sandboxes only (same as local:NAME). | |
--follow | -f | boolean | false | Follow a run's turn (send SANDBOX RUN_ID TEXT only). |
Examples
cua agent send ada "what did you learn yesterday?"
cua agent send local:dev run-1a2b3c4d "now add a regression test" -fcua agent interrupt#
Cancel the turn in flight (the session stays open).
cua agent interrupt [OPTIONS] <SANDBOX> <RUN_ID>| Argument | Type | Default | Description |
|---|---|---|---|
<SANDBOX> | string | required | |
<RUN_ID> | string | required |
| Flag | Type | Default | Description |
|---|---|---|---|
--local | boolean | false | Look NAME up among local sandboxes only (same as local:NAME). |
Examples
cua agent interrupt local:dev run-1a2b3c4dcua agent stop#
Stop a run and verify it is gone.
cua agent stop [OPTIONS] <SANDBOX> [RUN_ID]| Argument | Type | Default | Description |
|---|---|---|---|
<SANDBOX> | string | required | Sandbox, or session:NAME for a durable session. |
<RUN_ID> | string | optional | The run (not for a session). |
| Flag | Type | Default | Description |
|---|---|---|---|
--local | boolean | false | Look NAME up among local sandboxes only (same as local:NAME). |
Examples
cua agent stop local:dev run-1a2b3c4d
cua agent stop session:refactorcua agent status#
A run's status and last result.
cua agent status [OPTIONS] <SANDBOX> [RUN_ID]| Argument | Type | Default | Description |
|---|---|---|---|
<SANDBOX> | string | required | Sandbox, or session:NAME for a durable session. |
<RUN_ID> | string | optional | The run (not for a session). |
| Flag | Type | Default | Description |
|---|---|---|---|
--local | boolean | false | Look NAME up among local sandboxes only (same as local:NAME). |
Examples
cua agent status local:dev run-1a2b3c4d
cua agent status session:refactorcua agent rm#
Remove a named agent (its home stays in the Cua Volume), or stop a run and delete its record (secrets included).
cua agent rm [OPTIONS] <NAME|SANDBOX> [RUN_ID]| Argument | Type | Default | Description |
|---|---|---|---|
<NAME|SANDBOX> | string | required | A named agent, a sandbox, or session:NAME for a durable session. |
<RUN_ID> | string | optional | The run (not for a session). |
| Flag | Type | Default | Description |
|---|---|---|---|
--local | boolean | false | Look NAME up among local sandboxes only (same as local:NAME). |
Examples
cua agent rm ada
cua agent rm local:dev run-1a2b3c4d
cua agent rm session:refactorcua agent ensure#
Install harnesses or apps now (claude-code, blender, ...).
cua agent ensure [OPTIONS] <SANDBOX> <IDS>...| Argument | Type | Default | Description |
|---|---|---|---|
<SANDBOX> | string | required | |
<IDS>... | string | required | Repeatable. |
| Flag | Type | Default | Description |
|---|---|---|---|
--local | boolean | false | Look NAME up among local sandboxes only (same as local:NAME). |
Examples
cua agent ensure local:dev claude-code vscodecua agent schedule#
A named agent's schedules: turns the daemon starts with or without the app open.
cua agent schedule [OPTIONS] <COMMAND>cua agent schedule add#
Add a schedule (give one of --every, --daily, --weekly).
cua agent schedule add [OPTIONS] --title <TITLE> --prompt <PROMPT> <AGENT>| Argument | Type | Default | Description |
|---|---|---|---|
<AGENT> | string | required |
| Flag | Type | Default | Description |
|---|---|---|---|
--title | string | required | |
--prompt | string | required | |
--every | integer | Every N minutes. | |
--daily | string | Every day at HH:MM. | |
--weekly | string | Every week, mon 09:00. |
Examples
cua agent schedule add ada --title "Inbox sweep" --prompt "Triage new issues" --every 60
cua agent schedule add ada --title "Morning" --prompt "Plan the day" --daily 08:00cua agent schedule ls#
List schedules.
cua agent schedule ls [OPTIONS] [AGENT]Alias: cua agent schedule list.
| Argument | Type | Default | Description |
|---|---|---|---|
<AGENT> | string | optional |
Examples
cua agent schedule ls
cua agent schedule ls adacua agent schedule rm#
Delete a schedule.
cua agent schedule rm [OPTIONS] <ID>| Argument | Type | Default | Description |
|---|---|---|---|
<ID> | string | required |
Examples
cua agent schedule rm 0F3A2C1E-8B7D-4E6F-9A1B-2C3D4E5F6A7Bcua agent schedule enable#
Turn a schedule on.
cua agent schedule enable [OPTIONS] <ID>| Argument | Type | Default | Description |
|---|---|---|---|
<ID> | string | required |
Examples
cua agent schedule enable 0F3A2C1E-8B7D-4E6F-9A1B-2C3D4E5F6A7Bcua agent schedule disable#
Turn a schedule off.
cua agent schedule disable [OPTIONS] <ID>| Argument | Type | Default | Description |
|---|---|---|---|
<ID> | string | required |
Examples
cua agent schedule disable 0F3A2C1E-8B7D-4E6F-9A1B-2C3D4E5F6A7Bcua agent sessions#
Durable sessions: agents your machines keep alive (run --durable).
cua agent sessions [OPTIONS]Examples
cua agent sessions
cua --json agent sessionscua agent harnesses#
The harnesses: readiness, installs, key variables, limits.
cua agent harnesses [OPTIONS]Examples
cua agent harnesses
cua --json agent harnessescua agent keys#
The provider keys agents get, kept in the Keychain by the Cua daemon (Cua Spaces → Settings → Connections). Values are read from stdin and never printed.
cua agent keys [OPTIONS] [COMMAND]Examples
cua agent keys
cua agent keys set anthropic
cua agent keys rm OPENAI_API_KEYcua agent keys ls#
List the saved keys (never their values).
cua agent keys ls [OPTIONS]Examples
cua agent keys ls
cua --json agent keys lscua agent keys set#
Add or replace a key, read from stdin. PROVIDER: anthropic, openai or other (with --env). Pipe the key in (pbpaste | cua agent keys set anthropic); a terminal is refused so the key isn't echoed.
cua agent keys set [OPTIONS] <PROVIDER>| Argument | Type | Default | Description |
|---|---|---|---|
<PROVIDER> | string | required |
| Flag | Type | Default | Description |
|---|---|---|---|
--env | string | The variable an Other key is given to runs as. |
Examples
cua agent keys set anthropic
cua agent keys set other --env GEMINI_API_KEYcua agent keys check#
Ask each provider whether the saved API keys still work (a cheap read-only request; nothing is sent that is not a key's own request). A key the provider refuses is listed as needing a reconnect, and runs are not given it until it is saved again.
cua agent keys check [OPTIONS]Examples
cua agent keys checkcua agent keys rm#
Remove the key a run gets as ENV.
cua agent keys rm [OPTIONS] <ENV>| Argument | Type | Default | Description |
|---|---|---|---|
<ENV> | string | required |
Examples
cua agent keys rm ANTHROPIC_API_KEYcua agent create#
Deprecated alias of add. Creates a named agent whose memory lives in the Cua Volume (agents/NAME/) and outlives its Space.
cua agent create [OPTIONS] --harness <HARNESS> --in <SPACE> <NAME>Examples
cua agent create ada --harness hermes --in local:dev --env-from-host OPENAI_API_KEY
cua agent create scout --harness claude-code --in local:scout --env-from-host ANTHROPIC_API_KEYcua agent persistent#
Deprecated alias of ls (without a sandbox). Lists named agents.
cua agent persistent [OPTIONS]Examples
cua agent persistentcua agent tell#
Deprecated alias of send NAME TEXT. Gives a named agent a turn (starts a run with its home restored, or follows up on its idle run).
cua agent tell [OPTIONS] <NAME> <TEXT>Examples
cua agent tell ada "what did you learn yesterday?"cua agent save#
Save a persistent agent's home into the drive now.
cua agent save [OPTIONS] <NAME>| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | required |
Examples
cua agent save adacua agent pause#
Pause a persistent agent: its run, its routines, and its Space (suspended when local; a cloud Space is released after the home is saved).
cua agent pause [OPTIONS] <NAME>| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | required |
Examples
cua agent pause adacua agent resume#
Resume a paused persistent agent.
cua agent resume [OPTIONS] <NAME>| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | required |
| Flag | Type | Default | Description |
|---|---|---|---|
--prompt | string |
Examples
cua agent resume ada
cua agent resume ada --prompt "pick up where you left off"cua agent forget#
Deprecated alias of rm NAME. Forgets a named agent (its home stays in the Cua Volume).
cua agent forget [OPTIONS] <NAME>Examples
cua agent forget adacua agent routine#
Deprecated alias of schedule. A named agent's schedules.
cua agent routine [OPTIONS] <COMMAND>cua agent routine add#
Add a schedule (give one of --every, --daily, --weekly).
cua agent routine add [OPTIONS] --title <TITLE> --prompt <PROMPT> <AGENT>| Argument | Type | Default | Description |
|---|---|---|---|
<AGENT> | string | required |
| Flag | Type | Default | Description |
|---|---|---|---|
--title | string | required | |
--prompt | string | required | |
--every | integer | Every N minutes. | |
--daily | string | Every day at HH:MM. | |
--weekly | string | Every week, mon 09:00. |
Examples
cua agent schedule add ada --title "Inbox sweep" --prompt "Triage new issues" --every 60
cua agent schedule add ada --title "Morning" --prompt "Plan the day" --daily 08:00cua agent routine ls#
List schedules.
cua agent routine ls [OPTIONS] [AGENT]Alias: cua agent routine list.
| Argument | Type | Default | Description |
|---|---|---|---|
<AGENT> | string | optional |
Examples
cua agent schedule ls
cua agent schedule ls adacua agent routine rm#
Delete a schedule.
cua agent routine rm [OPTIONS] <ID>| Argument | Type | Default | Description |
|---|---|---|---|
<ID> | string | required |
Examples
cua agent schedule rm 0F3A2C1E-8B7D-4E6F-9A1B-2C3D4E5F6A7Bcua agent routine enable#
Turn a schedule on.
cua agent routine enable [OPTIONS] <ID>| Argument | Type | Default | Description |
|---|---|---|---|
<ID> | string | required |
Examples
cua agent schedule enable 0F3A2C1E-8B7D-4E6F-9A1B-2C3D4E5F6A7Bcua agent routine disable#
Turn a schedule off.
cua agent routine disable [OPTIONS] <ID>| Argument | Type | Default | Description |
|---|---|---|---|
<ID> | string | required |
Examples
cua agent schedule disable 0F3A2C1E-8B7D-4E6F-9A1B-2C3D4E5F6A7Bcua agent allow-computer#
Let a persistent agent use one of your computers (asks for presence).
cua agent allow-computer [OPTIONS] <NAME> <COMPUTER>| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | required | |
<COMPUTER> | string | required | The computer's Space id (cua host status shows this computer's). |
| Flag | Type | Default | Description |
|---|---|---|---|
--for | integer | End the grant after this many seconds. |
Examples
cua agent allow-computer ada relay:0123456789abcdefcua agent revoke-computer#
Take a persistent agent's computer access back.
cua agent revoke-computer [OPTIONS] <NAME> [COMPUTER]| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | required | |
<COMPUTER> | string | optional |
Examples
cua agent revoke-computer ada
cua agent revoke-computer ada relay:0123456789abcdefcua agent computer-access#
Which agents may use which computers, and the audit log.
cua agent computer-access [OPTIONS] [NAME]| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | optional |
| Flag | Type | Default | Description |
|---|---|---|---|
--audit | integer | 0 | Also print this many audit entries. |
Examples
cua agent computer-access --audit 20cua agent notifications#
The notifications the Cua app shows (turn ends, notify_user, requests).
cua agent notifications [OPTIONS]| Flag | Type | Default | Description |
|---|---|---|---|
--unread | boolean | false | |
--mark-read | boolean | false | Mark every notification read. |
Examples
cua agent notifications --unread
cua agent notifications --mark-readcua thread#
A Space's thread, as the agent this computer joined with cua join: say who you are, read your inbox, post.
cua thread [OPTIONS] <COMMAND>cua thread join#
Say who you are: your name, icon, harness and version.
cua thread join [OPTIONS] --name <NAME>| Flag | Type | Default | Description |
|---|---|---|---|
--name | string | required | The name people see (1-32 characters). |
--harness | string | hermes, claude-code, codex, cursor, openclaw, t3code or other. | |
--version | string | Your harness's version. | |
--icon | string | harness (your harness's mark) or an https:// image URL. | |
--member | string | <space>/<handle>, when this computer joined more than one Space. |
Examples
cua thread join --name Codex --harness codex --version 0.61.0 --icon harnesscua thread inbox#
Your open tasks (@mentions); waits for one up to --wait seconds.
cua thread inbox [OPTIONS]| Flag | Type | Default | Description |
|---|---|---|---|
--wait | integer | 0 | Seconds to wait for a task when there is none (at most 25). |
--member | string |
Examples
cua thread inbox --wait 25cua thread post#
Post to the thread, or reply to a task.
cua thread post [OPTIONS] <TEXT>| Argument | Type | Default | Description |
|---|---|---|---|
<TEXT> | string | required |
| Flag | Type | Default | Description |
|---|---|---|---|
--reply-to | integer | The task (or entry) this answers. | |
--member | string | ||
--window | string | What you are looking at in the Space: a window, by its id (as computer_window_list gives it). Stored with the post as view. | |
--app | string | That window's app ("Firefox"). | |
--title | string | That window's title. | |
--desktop | boolean | false | You are looking at the Space's desktop. |
Examples
cua thread post "Hi, I'm Codex."
cua thread post --reply-to 19 "All green."
cua thread post --window w42 --app Firefox --title "Pull requests" "Is this the right PR?"cua thread read#
Read the newest entries.
cua thread read [OPTIONS]| Flag | Type | Default | Description |
|---|---|---|---|
--after | integer | Entries after this seq. | |
--limit | integer | 30 | |
--member | string |
Examples
cua thread read
cua thread read --after 40 --limit 10cua join#
Join a Space as an agent on this computer, with the code from a "Join my Cua Space" link. Needs your Cua sign-in; the code works once.
Exit codes: 0 joined (or waiting to be let in), 3 not signed in, 4 the code does not work, 5 too many wrong codes, 1 anything else.
cua join [OPTIONS] <CODE>| Argument | Type | Default | Description |
|---|---|---|---|
<CODE> | string | required | The join code (7KQ2-9FXA) or the link that ends in it. |
Examples
cua join 7KQ2-9FXA
cua join https://cua.ai/join/7KQ2-9FXAcua connect#
Connect the AI agents on this computer to Cua: install the cua skills and configure the cua MCP server.
cua connect [OPTIONS] <COMMAND>cua connect detect#
List supported AI coding agents and which are installed (read-only).
cua connect detect [OPTIONS]Examples
cua connect detectcua connect setup#
Install the default cua skills and configure the cua MCP server.
cua connect setup [OPTIONS]| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--agents | string | Agents: all (installed), none, or ids such as claude,codex,hermes (cua connect detect lists every supported agent). | ||
--mcp-command | string | Command agents launch for the MCP server (default: the cua on PATH, else this binary). | ||
--skills-only | boolean | false | Only install skills. Alias: --no-mcp. | |
--mcp-only | boolean | false | Only configure the MCP server. Alias: --no-skills. | |
--yes | -y | boolean | false | Answer yes to every prompt. |
--force | boolean | false | Replace skill folders cua did not write (the old one is backed up). | |
--cua-driver | boolean | false | Set up background computer-use instead: the cua-driver skill and the cua-driver MCP server (cua-driver mcp). --mcp-command then names the cua-driver binary. | |
--sign-in | boolean | false | Also make a sign-in for each agent's runs in your Spaces and keep it in Keyvault on This Mac: the sign-in Claude Code already has (read from where Claude Code keeps it, as an access token only; Claude Code's own sign-in is never changed) and Codex's own device sign-in (a link and a code to enter there, in a folder Cua owns); Hermes uses the providers connected in Cua Spaces (Settings, Connections). Only Claude Code's own sign-in is read, and only its access token is kept; Codex's own auth.json is never read or changed. | |
--sign-in-only | boolean | false | Only the sign-in, as --sign-in, and nothing else: no Cua skills and no MCP entry are added to any agent, Claude Code is never run to refresh its own sign-in, and nothing is written outside the Cua home (the access token goes to Keyvault, never printed). For a demo, or a home Space that only needs the credential. On a Mac, macOS asks once to let Cua read the Keychain item "Claude Code-credentials": that prompt is yours to answer. |
Examples
# Every installed agent, asking before each change
cua connect setup
# Claude Code and Codex, no prompts
cua connect setup --agents claude,codex -y
# Hermes Agent (Nous Research): ~/.hermes/skills and ~/.hermes/config.yaml
cua connect setup --agents hermes -y
# Only the MCP server entry
cua connect setup --mcp-only
# Background computer-use: the cua-driver skill and MCP server
cua connect setup --cua-driver --agents all -y
# Also copy each agent's sign-in to Keyvault on This Mac (Codex's ChatGPT sign-in, the sign-in Claude Code already has, Hermes' key)
cua connect setup --agents codex,claude --sign-in -ycua connect status#
Whether each agent is really connected: installed and its version, signed in, Cua's MCP entry present and answering, and its sign-in copied to Keyvault. The same rows as the app and the connect_status MCP tool.
cua connect status [OPTIONS]Examples
cua connect status
cua connect status --jsoncua connect remove#
Remove the Cua Spaces skills and MCP entries cua added (nothing else).
cua connect remove [OPTIONS]| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--agents | string | all | Agents: all (default) or ids such as claude,codex. | |
--skills-only | boolean | false | Only remove skills. | |
--mcp-only | boolean | false | Only remove the MCP entry. | |
--yes | -y | boolean | false | Do not ask for confirmation. |
--include-cua-driver | boolean | false | Also remove Cua Driver's skill and MCP server (cua-driver). Without it only Cua Spaces' own entries go: the cua server (cua-local for Local) and the Cua Spaces skills. | |
--dry-run | boolean | false | List exactly what would be removed and change nothing. | |
--sign-in | boolean | false | Also delete the sign-ins Connect copied to Keyvault for these agents. |
Examples
# See what would be removed, change nothing
cua connect remove --dry-run
cua connect remove
cua connect remove --agents codex --skills-only -y
# Cua Driver's skill and MCP server too (they stay otherwise)
cua connect remove --include-cua-driver
# Also delete the sign-in Connect copied to Keyvault
cua connect remove --agents codex --sign-in -ycua connect update#
Refresh installed cua skills and managed MCP entries to this version.
cua connect update [OPTIONS]Examples
cua connect updatecua connections#
The AI providers connected once for every app that can use them: list, add (a key from stdin), test, remove. What Cua Spaces shows in Settings, Connections. (cua connect connects your coding apps to Cua.).
cua connections [OPTIONS] <COMMAND>Examples
cua connections list
cua connections add deepseek
cua connections test
cua connections remove deepseekcua connections list#
List the providers with their state (Connected, Needs reconnect, Not connected) and the apps each works with. Never prints a key.
cua connections list [OPTIONS]| Flag | Type | Default | Description |
|---|---|---|---|
--all | boolean | false | Also list every provider that is not connected (by default: the ones up front and the ones with something saved). |
Examples
cua connections list
cua connections list --all
cua --json connections listcua connections add#
Connect a provider. The key is read from stdin (pipe it in; a terminal is refused so it isn't echoed). Saving never waits on the provider: cua connections test asks it afterwards.
.
The provider is one of the ids cua connections list --all prints. Pipe the key in: pbpaste | cua connections add deepseek. Sign-ins another app made on this machine are imported with cua connect setup <app> --sign-in.
cua connections add [OPTIONS] <PROVIDER>| Argument | Type | Default | Description |
|---|---|---|---|
<PROVIDER> | string | required | The provider id (cua connections list --all). |
| Flag | Type | Default | Description |
|---|---|---|---|
--method | string | How: key (an API key from stdin; the default) or endpoint (a custom endpoint: its base URL, model and API style; a key is optional). | |
--region | string | The plan or region, for a provider that has them (Z.AI: global, cn, coding-global, coding-cn). | |
--model | string | The model to use, for a provider with no default model or to choose another. | |
--base-url | string | A custom endpoint's base URL. | |
--wire | string | A custom endpoint's API style: openai-chat (default), openai-responses or anthropic. |
Examples
cua connections add deepseek
cua connections add zai --region coding-global
cua connections add deepinfra --model meta-llama/Meta-Llama-3.1-70B-Instruct
cua connections add custom --base-url http://host:1234/v1 --model qwencua connections test#
Ask each provider whether its saved key still works (a read-only request on the provider's own host, bounded in time; offline is not a failure). A key the provider refuses is listed as Needs reconnect.
cua connections test [OPTIONS] [PROVIDER]| Argument | Type | Default | Description |
|---|---|---|---|
<PROVIDER> | string | optional | Only this provider. |
Examples
cua connections test
cua connections test openroutercua connections remove#
Disconnect a provider: remove what is saved for it.
cua connections remove [OPTIONS] <PROVIDER>| Argument | Type | Default | Description |
|---|---|---|---|
<PROVIDER> | string | required |
Examples
cua connections remove deepseekcua connections github#
The GitHub sign-in used for an approved push: what is signed in and a switch per host. An experiment: see cua experiments.
.
When an agent asks to push a branch and open a pull request, the host does it after you say yes on the card. This shows which account will be used and never prints a token.
Cua tries, in order: a token saved in Settings, Connections; GH_TOKEN or GITHUB_TOKEN in the Cua daemon's environment; the GitHub CLI (gh auth login), read only when an approved push runs; then git's own SSH key or credential helper for a repository with an SSH remote.
cua connections github [OPTIONS] [COMMAND]Examples
cua connections github
cua connections github rescan
cua connections github use bob
cua connections github use --auto --host github.com
cua connections github off --host ghe.example.comcua connections github status#
What is signed in on each host and which account will be used (the default).
cua connections github status [OPTIONS]Examples
cua connections github statuscua connections github rescan#
Look again: what gh is signed in with, and what a saved or environment token may do (its account and scopes).
cua connections github rescan [OPTIONS]Examples
cua connections github rescancua connections github use#
Use this gh account for pushes and pull requests on a host.
cua connections github use [OPTIONS] [LOGIN]| Argument | Type | Default | Description |
|---|---|---|---|
<LOGIN> | string | optional | The gh account (see cua connections github); omit with --auto. |
| Flag | Type | Default | Description |
|---|---|---|---|
--host | string | github.com | The GitHub host. |
--auto | boolean | false | Go back to the account gh uses itself. |
Examples
cua connections github use bob
cua connections github use --auto --host github.comcua connections github on#
Turn GitHub on for a host again.
cua connections github on [OPTIONS]| Flag | Type | Default | Description |
|---|---|---|---|
--host | string | github.com |
Examples
cua connections github on --host ghe.example.comcua connections github off#
Turn GitHub off for a host: Cua uses no sign-in there until you turn it on.
cua connections github off [OPTIONS]| Flag | Type | Default | Description |
|---|---|---|---|
--host | string | github.com |
Examples
cua connections github off --host ghe.example.comcua agents#
Deprecated alias of connect.
cua agents [OPTIONS] <COMMAND>cua agents detect#
List supported AI coding agents and which are installed (read-only).
cua agents detect [OPTIONS]Examples
cua connect detectcua agents setup#
Install the default cua skills and configure the cua MCP server.
cua agents setup [OPTIONS]| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--agents | string | Agents: all (installed), none, or ids such as claude,codex,hermes (cua connect detect lists every supported agent). | ||
--mcp-command | string | Command agents launch for the MCP server (default: the cua on PATH, else this binary). | ||
--skills-only | boolean | false | Only install skills. Alias: --no-mcp. | |
--mcp-only | boolean | false | Only configure the MCP server. Alias: --no-skills. | |
--yes | -y | boolean | false | Answer yes to every prompt. |
--force | boolean | false | Replace skill folders cua did not write (the old one is backed up). | |
--cua-driver | boolean | false | Set up background computer-use instead: the cua-driver skill and the cua-driver MCP server (cua-driver mcp). --mcp-command then names the cua-driver binary. | |
--sign-in | boolean | false | Also make a sign-in for each agent's runs in your Spaces and keep it in Keyvault on This Mac: the sign-in Claude Code already has (read from where Claude Code keeps it, as an access token only; Claude Code's own sign-in is never changed) and Codex's own device sign-in (a link and a code to enter there, in a folder Cua owns); Hermes uses the providers connected in Cua Spaces (Settings, Connections). Only Claude Code's own sign-in is read, and only its access token is kept; Codex's own auth.json is never read or changed. | |
--sign-in-only | boolean | false | Only the sign-in, as --sign-in, and nothing else: no Cua skills and no MCP entry are added to any agent, Claude Code is never run to refresh its own sign-in, and nothing is written outside the Cua home (the access token goes to Keyvault, never printed). For a demo, or a home Space that only needs the credential. On a Mac, macOS asks once to let Cua read the Keychain item "Claude Code-credentials": that prompt is yours to answer. |
Examples
# Every installed agent, asking before each change
cua connect setup
# Claude Code and Codex, no prompts
cua connect setup --agents claude,codex -y
# Hermes Agent (Nous Research): ~/.hermes/skills and ~/.hermes/config.yaml
cua connect setup --agents hermes -y
# Only the MCP server entry
cua connect setup --mcp-only
# Background computer-use: the cua-driver skill and MCP server
cua connect setup --cua-driver --agents all -y
# Also copy each agent's sign-in to Keyvault on This Mac (Codex's ChatGPT sign-in, the sign-in Claude Code already has, Hermes' key)
cua connect setup --agents codex,claude --sign-in -ycua agents status#
Whether each agent is really connected: installed and its version, signed in, Cua's MCP entry present and answering, and its sign-in copied to Keyvault. The same rows as the app and the connect_status MCP tool.
cua agents status [OPTIONS]Examples
cua connect status
cua connect status --jsoncua agents remove#
Remove the Cua Spaces skills and MCP entries cua added (nothing else).
cua agents remove [OPTIONS]| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--agents | string | all | Agents: all (default) or ids such as claude,codex. | |
--skills-only | boolean | false | Only remove skills. | |
--mcp-only | boolean | false | Only remove the MCP entry. | |
--yes | -y | boolean | false | Do not ask for confirmation. |
--include-cua-driver | boolean | false | Also remove Cua Driver's skill and MCP server (cua-driver). Without it only Cua Spaces' own entries go: the cua server (cua-local for Local) and the Cua Spaces skills. | |
--dry-run | boolean | false | List exactly what would be removed and change nothing. | |
--sign-in | boolean | false | Also delete the sign-ins Connect copied to Keyvault for these agents. |
Examples
# See what would be removed, change nothing
cua connect remove --dry-run
cua connect remove
cua connect remove --agents codex --skills-only -y
# Cua Driver's skill and MCP server too (they stay otherwise)
cua connect remove --include-cua-driver
# Also delete the sign-in Connect copied to Keyvault
cua connect remove --agents codex --sign-in -ycua agents update#
Refresh installed cua skills and managed MCP entries to this version.
cua agents update [OPTIONS]Examples
cua connect updatecua mcp#
Stdio MCP server exposing sandboxes, computer control and skills.
cua mcp [OPTIONS]Alias: cua serve-mcp.
| Flag | Type | Default | Env var | Description |
|---|---|---|---|---|
--permissions | string | CUA_MCP_PERMISSIONS | Comma-separated permissions or groups (default: all). | |
--sandbox | string | CUA_SANDBOX | Default sandbox for computer tools. | |
--member | string | Serve only the Space thread tools (thread_join, thread_inbox, thread_read, thread_post, agent_members) as the agent this computer joined with cua join (<space>/<handle>). Its key stays in the keychain. |
Examples
# Serve every tool over stdio (what MCP clients launch)
cua mcp
# Read-only sandbox tools, computer tools on the sandbox dev
cua mcp --permissions sandbox:readonly,computer:all --sandbox dev
# An agent that joined a Space with cua join: its thread tools only
cua mcp --member ubuntu-build/codexcua skills#
Recorded demonstrations (skills) for agents.
cua skills [OPTIONS] <COMMAND>cua skills list#
List saved skills.
cua skills list [OPTIONS]Alias: cua skills ls.
Examples
cua skills listcua skills read#
Print a skill.
cua skills read [OPTIONS] <NAME>| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | required | Skill name. |
| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--format | -f | md | json | md | Output format. |
Examples
cua skills read export-invoice
cua skills read export-invoice --format jsoncua skills replay#
Open a skill's video recording.
cua skills replay [OPTIONS] <NAME>| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | required | Skill name. |
Examples
cua skills replay export-invoicecua skills delete#
Delete a skill.
cua skills delete [OPTIONS] <NAME>| Argument | Type | Default | Description |
|---|---|---|---|
<NAME> | string | required | Skill name. |
Examples
cua skills delete export-invoicecua skills clean#
Delete every skill (asks first).
cua skills clean [OPTIONS]| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--yes | -y | boolean | false | Do not ask for confirmation. |
Examples
cua skills clean
# Without the prompt
cua skills clean --yescua skills record#
Record a demonstration in the HTML5 viewer (it records the screen and your input).
cua skills record [OPTIONS]| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--sandbox | -s | string | Sandbox whose display service to record. | |
--viewer-url | -u | string | Viewer URL to record (a cua sb view --no-open link). Alias: --vnc-url. | |
--provider | -p | anthropic | openai | anthropic | Captioning provider. |
--model | -m | string | Captioning model. | |
--api-key | -k | string | API key for the captioning provider. | |
--name | -n | string | Skill name. | |
--description | -d | string | Skill description. |
Examples
# Record on the sandbox dev and caption with Anthropic
cua skills record --sandbox dev --name export-invoiceExit codes#
| Code | Meaning |
|---|---|
0 | Success. |
1 | Failure, or cua do reported an error. |
2 | Invalid argument, or an ambiguous sandbox name (qualify it: local:NAME). |
3 | Not found: sandbox, window, skill or image (or an image not published yet). |
4 | Not supported, or not configured (for example no provider credentials). |
5 | No cua-spacesd answered, or a transport failure. |
6 | Unauthenticated or permission denied (by Cua or your cloud account). |
7 | Not enough free disk space (see cua cache). |
8 | No room on the machine: its VMs are at their memory or CPU limit, or it is low on memory. |
130 | Cancelled (Ctrl-C during a create): what it made was removed. |