Connect your agent

Register Cua Driver with Claude Code, Codex, Cursor, Hermes, OpenClaw, Gemini, local models, and agent SDKs.

An agent reaches Cua Driver in one of two ways: an MCP client launches cua-driver mcp, or a skill teaches a shell-capable agent to run cua-driver call <tool>. The harness owns the model and the loop; Cua Driver never calls a model API.

Register the MCP server#

To add the skill and MCP server to every agent on the machine in one step, use the cua installer: curl -fsSL https://cua.ai/install.sh | sh -s -- --select cua-driver. Add --no-skills to leave the skill out.

mcp-config prints the exact command or JSON for your client, with your installed binary's absolute path. Run what it prints, then restart the client. It also installs the agent skill for that client and prints one line saying where; add --no-skills to skip that:

cua-driver mcp-config --client <client>
HarnessSetupNotes
Claude Codeclaude mcp add --transport stdio cua-driver -- cua-driver mcp, or --client claude for the computer-use compatibility profileInstall the skill for native skill activation.
Codex (CLI, IDE, app)--client codex, which prints codex mcp add cua-driver -- <path> mcpCodex's own approval policy also applies.
Cursor--client cursor; paste into ~/.cursor/mcp.json or .cursor/mcp.json
Antigravity CLI (Gemini)--client antigravity; merge into ~/.gemini/config/mcp_config.json--client gemini is a legacy alias. Building on the Gemini API directly? See Gemini.
OpenClaw--client openclaw, which prints openclaw mcp set cua-driver '{…}'On macOS, a gateway-spawned server does not inherit OpenClaw.app's grants.
HermesBuilt in: hermes tools enable computer_use --platform cli, then hermes -t computer_use chatRepair with hermes computer-use install and doctor. Do not add a second raw MCP server.
Prime Agentcua-driver skills install, then /reload and /skill:cua-driverCalls the CLI; no MCP.
OpenCode, Factory Droid, ZCode--client opencode, --client droid, --client zcode
Qwen Code--client qwen, which prints qwen mcp add cua-driver <path> mcp
Pi--client piNo MCP: runs one-shot cua-driver call … commands.
Kimi Codekimi mcp add cua-driver -- <path> mcp, then kimi mcp test cua-driverNo preset.
GitHub Copilot CLIAdd {"mcpServers": {"cua-driver": {"type": "local", "command": "<path>", "args": ["mcp"], "tools": ["*"]}}} to ~/.copilot/mcp-config.jsonNo preset.
Muse Code (macOS, Linux)Merge {"mcp_servers": {"cua-driver": {"enabled": true, "transport": "stdio", "command": "<path>", "args": ["mcp"]}}} into $XDG_CONFIG_HOME/muse/settings.json, or ~/.config/muse/settings.jsonNo preset. Start a new Muse session; MCP servers load at startup.
T3 CodeRegister Cua Driver in the harness that T3 Code launches

Find <path> with command -v cua-driver. The full roster is in the mcp-config reference. Any other client that accepts the standard shape can use this (cua-driver mcp-config with no flag):

{
  "mcpServers": {
    "cua-driver": {
      "command": "cua-driver",
      "args": ["mcp"]
    }
  }
}

Model providers map to harnesses: Claude through Claude Code, OpenAI through Codex, Gemini through Antigravity, Kimi through Kimi Code, Qwen through Qwen Code. To call Gemini 4 Argon from your own agent loop instead, see Gemini. MiniMax documents setups for Codex and Claude Code.

Registering a client does not choose a permission mode. On macOS, cua-driver mcp proxies to the CuaDriver.app daemon, whose launch flags decide. On Windows and Linux it owns its runtime: set CUA_DRIVER_PERMISSION_MODE in the client's env block, or use cua-driver mcp --socket <endpoint> to reach a configured daemon. The default, standard, allows input to every app.

Install the agent skill#

The skill teaches an agent to pick tools, address elements, keep focus, and verify each action. mcp-config --client <client> and the cua installer install it for the agents they set up. To install it for every agent on the machine, or for one you set up another way, run skills install. It links into Claude Code, Codex, Cursor, Prime Agent, OpenClaw, OpenCode, Antigravity, Hermes, and Pi:

cua-driver skills install
cua-driver skills status

If status reports a client's skill directory as absent, create it (~/.agents/skills for Codex, ~/.claude/skills for Claude Code, ~/.gemini/config/skills for the Antigravity IDE, ~/.gemini/antigravity-cli/skills for the Antigravity CLI) and rerun. Add --all-platforms to keep the macOS, Windows, and Linux guides together. OpenClaw can use ClawHub instead: clawhub install @cua/driver. Cua Driver 0.28.0+ also serves the skill as MCP resources; whether that activates it as a skill is up to the client. Most clients never read resources on their own, so the server also offers a read-only get_guide tool: get_guide({topic}) returns the guidance for drag, browser, permissions, batching, menus or the overview, with no skill installed.

Agent SDKs#

Examples in libs/cua-driver/examples/agent-sdks (Python and TypeScript):

SDKRouteRun
Claude Agent SDKNative callbacks calling CuaDriver.create() in processclaude_agent.py --route native / npm run claude -- --route native
Claude Agent SDKMCPclaude_agent.py --route mcp / npm run claude -- --route mcp
Codex SDKMCP (it has no custom tool callbacks)codex_agent.py / npm run codex

They remove interactive approval prompts: run only trusted tasks.

Gemini#

Add Cua Driver to Antigravity, or call the Gemini API from your own agent loop: see Computer use with Gemini.

Local models#

Run Cua Driver with a model on your own machine, through Ollama or llama.cpp: see Run Cua Driver with local models.

Setup for one agent#

Claude Code, Codex, Cursor, Hermes and OpenClaw each have a short page. To give an agent Cua Spaces instead, see Connect your agent and Connect an agent over MCP.