Cua Docs

CLI Reference

Command-line interface specification for Cua Driver

Cross-platform computer-use automation driver. Install via the official script:

curl -fsSL https://cua.ai/driver/install.sh | bash

Documented against Cua Driver 0.17.0. Run cua-driver --version for your installed version.

The macOS-only cua-driver permissions command is documented separately in macOS permissions.


Tool dispatch#

cua-driver list-tools#

List every registered MCP tool with a one-line description.

cua-driver describe#

Print a tool's full description and JSON input schema.

Arguments:

NameTypeRequiredDescription
<tool-name>StringYesName of the MCP tool to describe.

cua-driver call#

Invoke an MCP tool through the running daemon.

Requires a Cua Driver daemon. JSON arguments may be passed as a positional JSON object or through stdin.

Arguments:

NameTypeRequiredDescription
<tool-name>StringYesName of the MCP tool to invoke.
<json-args>StringNoJSON object for the tool input schema. If omitted, stdin is read when piped.

Options:

NameTypeDefaultDescription
--screenshot-out-fileStringWrite the first image content block from the response to this path.
--socketStringOverride the daemon socket or named-pipe path.

Daemon management#

cua-driver mcp#

Run the stdio MCP server.

On Windows and Linux, bare cua-driver mcp owns its runtime directly and shuts it down on stdin EOF. On macOS it proxies to CuaDriver.app so desktop permissions retain the app identity. Pass --direct to make the macOS MCP process own the runtime and TCC attribution, or --socket to select an explicit daemon endpoint.

Options:

NameTypeDefaultDescription
--socketStringSelect an explicit daemon socket or named-pipe endpoint.
--host-bundle-idStringAdvisory host bundle id label echoed in check_permissions output (embedded mode).
--cursor-themeStringcua.defaultSelect an installed cursor theme id.
--cursor-reduced-motionStringautoFollow the OS setting, force still frames, or allow animation: auto, on, or off.
--grantStringPre-authorize a residual standard-mode boundary for a newly launched runtime. Repeatable; supported value: existing-profile.

Flags:

NameDescription
--directOwn the runtime in this MCP process; mutually exclusive with --socket.
--claude-code-computer-use-compatAccepted for older Claude Code setup snippets; no standalone screenshot tool — use get_window_state for window screenshots.
--embeddedDeclare embedding-host mode. Without --direct, require the host's private service through --socket instead of auto-launching the standalone app.

cua-driver serve#

Run Cua Driver as a long-running daemon.

The daemon owns per-process state such as element-index caches, recording state, and cursor overlay state.

Options:

NameTypeDefaultDescription
--socketStringOverride the daemon socket or named-pipe path.
--pid-fileStringOverride the pid-file path on Unix targets.
--permission-modeStringstandardImmutable agent authorization mode: standard, bounded, or unrestricted.
--grantStringPre-authorize a residual standard-mode boundary. Repeatable; supported value: existing-profile.
--session-policyStringImmutable tool manifest required in bounded mode.
--host-bundle-idStringAdvisory host bundle id label echoed in check_permissions output (embedded mode).

Flags:

NameDescription
--dangerously-bypass-approvalsSelect unrestricted mode and acknowledge its risk.
--allow-legacy-existing-profile-approvalTemporary migration flag for the unprotected file-backed existing-profile artifact.
--approve-session-policyTrusted-launcher confirmation that the exact bounded manifest was reviewed.
--no-permissions-gateSkip the macOS first-launch permissions gate.
--embeddedRun embedded inside a host app: inherit the host's TCC grants, never prompt or relaunch. Also CUA_DRIVER_EMBEDDED=1.
--no-overlayDisable the agent cursor overlay for this daemon.

cua-driver stop#

Ask the running daemon to exit gracefully.

Options:

NameTypeDefaultDescription
--socketStringOverride the daemon socket or named-pipe path.

cua-driver status#

Report whether a Cua Driver daemon is running.

Options:

NameTypeDefaultDescription
--socketStringOverride the daemon socket or named-pipe path.
--pid-fileStringOverride the pid-file path on Unix targets.

cua-driver mcp-config#

Print MCP server config or a client-specific install command.

Supported clients include claude, codex, cursor, antigravity, openclaw, opencode, hermes, pi, qwen, droid, and zcode.

Options:

NameTypeDefaultDescription
--clientStringClient name to print configuration for.

Trajectory recording#

cua-driver recording#

Control trajectory recording on a running daemon.

Recording state lives in the required daemon and survives client reconnects.

Options:

NameTypeDefaultDescription
--socketStringOverride the daemon socket or named-pipe path.

cua-driver recording start#

Start trajectory recording to a directory.

Arguments:

NameTypeRequiredDescription
<output-dir>StringYesDirectory to write turn folders into.

cua-driver recording stop#

Stop trajectory recording.

cua-driver recording status#

Print the current recording state.

cua-driver recording render#

Render a recorded trajectory directory to an MP4.

This pure file-to-file path does not require a running daemon.

Arguments:

NameTypeRequiredDescription
<input-dir>StringYesTrajectory directory containing recorded turn folders.
<out-mp4>StringYesOutput MP4 path.

Options:

NameTypeDefaultDescription
--scaleNumberScale factor for rendered frames.

Flags:

NameDescription
--no-zoomDisable cursor/action zoom effects in the rendered video.

Configuration#

cua-driver config#

Read or mutate persistent driver configuration.

Without a subcommand, prints the full config.

Options:

NameTypeDefaultDescription
--socketStringOverride the daemon socket or named-pipe path.

cua-driver config show#

Print the full config.

cua-driver config get#

Print one config key.

Arguments:

NameTypeRequiredDescription
<key>StringYesConfig key to read.

cua-driver config set#

Set one config key.

Arguments:

NameTypeRequiredDescription
<key>StringYesConfig key to write.
<value>StringYesValue to store.

cua-driver config reset#

Reset config to defaults.

Diagnostics#

cua-driver check-update#

Check whether a newer cua-driver release is available.

Read-only. Uses the same update-state payload as the check_for_update MCP tool.

Flags:

NameDescription
--jsonEmit a machine-readable JSON payload.
--no-cacheSkip the 20-hour on-disk cache and force a GitHub request.

cua-driver update#

Check for an update and optionally apply it.

The apply path delegates to the canonical platform installer scripts.

Flags:

NameDescription
--applyDownload and install the latest release when one is available.
--jsonEmit the structured update-state payload.

cua-driver doctor#

Run platform-aware diagnostic probes.

Exit code is non-zero when any probe is an error.

Flags:

NameDescription
--jsonEmit the probe report as JSON.

cua-driver diagnose#

Print a pasteable install-layout and permission-attribution report.

Other commands#

cua-driver revoke#

Revoke one or all live authorization/session scopes.

Revocation is deny-only and never accepts an approval token.

Options:

NameTypeDefaultDescription
--sessionStringExact session id to stop and revoke.
--socketStringOverride the daemon socket or named-pipe path.

Flags:

NameDescription
--allStop and revoke every live session.

cua-driver telemetry#

Inspect or change content-free product telemetry.

Telemetry is default-on. Disable retains the pseudonymous installation ID; reset-id erases the ID and event markers while preserving the preference.

cua-driver telemetry enable#

Persistently enable telemetry.

cua-driver telemetry disable#

Persistently disable every telemetry request.

Retains the local installation ID.

cua-driver telemetry status#

Show the effective setting and redacted identity state.

Flags:

NameDescription
--jsonEmit JSON.

cua-driver telemetry reset-id#

Erase the installation ID and event markers.

The persisted enabled/disabled preference is retained.

cua-driver telemetry inspect#

Build a fixed event payload without sending it.

The distinct ID is replaced with a redacted placeholder.

Arguments:

NameTypeRequiredDescription
<event>StringYesFixed telemetry event name.

Flags:

NameDescription
--jsonEmit JSON.

cua-driver autostart#

Manage platform-native daemon autostart.

Windows registers a logon Scheduled Task. macOS and Linux currently print manual-recipe guidance.

cua-driver autostart enable#

Register the autostart entry.

cua-driver autostart disable#

Remove the autostart entry.

cua-driver autostart status#

Print whether autostart is registered and running.

not-registered is emitted only when Task Scheduler explicitly reports that the named task does not exist. If the task cannot be inspected, the command exits non-zero and reports permission-denied or unknown together with the original diagnostic.

cua-driver autostart kick#

Start the autostart entry now without re-logging.

cua-driver skills#

Install, update, inspect, or remove the optional agent skill pack.

The install script never touches agent skill directories automatically.

cua-driver skills install#

Fetch the versioned skill pack and link detected agents.

Options:

NameTypeDefaultDescription
--agentStringRestrict linking to one agent.
--fromStringFetch from a source such as main instead of the tagged release.

Flags:

NameDescription
--all-platformsKeep platform-specific skill files for every platform.

cua-driver skills update#

Refresh the local skill pack and links.

cua-driver skills uninstall#

Remove agent skill links.

Flags:

NameDescription
--allAlso delete the local skill-pack copy.

cua-driver skills status#

Report local skill-pack and per-agent link state.

cua-driver skills path#

Print the local skill-pack path.

cua-driver manifest#

Emit a stable JSON description of the CLI surface.

Consumers can use this instead of hardcoding launch arguments such as the MCP invocation.

Flags:

NameDescription
-p, --prettyPretty-print JSON.

cua-driver cursor-theme#

Validate, compile, inspect, preview, install, or remove a local cursor theme.

This is a trusted local authoring workflow. Agent-facing tools may select an installed theme id, but cannot install source or compiled theme data.

cua-driver cursor-theme validate#

Validate a bounded dotLottie source archive.

Arguments:

NameTypeRequiredDescription
<source>StringYesPath to the source .lottie archive.

Flags:

NameDescription
--developmentAllow the reserved com.example development namespace.

cua-driver cursor-theme build#

Compile a validated dotLottie archive into a bounded .cua-theme artifact.

Arguments:

NameTypeRequiredDescription
<source>StringYesPath to the source .lottie archive.

Options:

NameTypeDefaultDescription
--outputStringOutput .cua-theme path.

Flags:

NameDescription
--developmentAllow the reserved com.example development namespace.

cua-driver cursor-theme inspect#

Inspect metadata in a compiled .cua-theme artifact.

Arguments:

NameTypeRequiredDescription
<theme>StringYesPath to the compiled .cua-theme artifact.

Flags:

NameDescription
--jsonEmit machine-readable JSON.

cua-driver cursor-theme preview#

Render a compiled theme's representative still frames to a directory.

Arguments:

NameTypeRequiredDescription
<theme>StringYesPath to the compiled .cua-theme artifact.

Options:

NameTypeDefaultDescription
--outputStringPreview output directory.

cua-driver cursor-theme install#

Install a compiled theme into the current user's theme store.

Arguments:

NameTypeRequiredDescription
<theme>StringYesPath to the compiled .cua-theme artifact.

cua-driver cursor-theme list#

List the built-in and installed cursor themes.

Flags:

NameDescription
--jsonEmit machine-readable JSON.

cua-driver cursor-theme uninstall#

Remove a custom theme from the current user's theme store.

The built-in cua.default theme cannot be removed.

Arguments:

NameTypeRequiredDescription
<theme-id>StringYesInstalled custom theme id.

cua-driver dump-docs#

Output machine-readable CLI and MCP documentation JSON.

Used by the docs generator to keep reference pages in sync with the live binary.

Options:

NameTypeDefaultDescription
--typeStringallWhich docs to emit: all, cli, or mcp.

Flags:

NameDescription
-p, --prettyPretty-print JSON.

Global options#

Available on all commands:

  • --help — Show help information.
  • --version — Show version number.