Any model. Any app. One MCP entry. Local-only. 6 compact tools, single safety chokepoint, no telemetry. Cheap paths first — accessibility before pixels, vision only as a last resort.
Plain English in, actions out.
One MCP entry, desktop control appears as native tools.
Same tools, three entry shapes. Pick once during install.
AI lives in your editor (Claude Code, Cursor, Windsurf, Zed). Editor spawns clawdcursor on demand over stdio. No daemon, no port.
{
"mcpServers": {
"clawdcursor": {
"command": "clawdcursor",
"args": ["mcp", "--compact"]
}
}
}
clawdcursor brings its own LLM brain (configured via doctor
). For unattended runs, scheduled tasks, multi-process orchestration.
clawdcursor doctor
· pick a providerclawdcursor agent
127.0.0.1:3847/mcp
Your agent already has a brain — you just want HTTP tools. Same daemon, no built-in agent loop.
clawdcursor agent --no-llm
:3847/mcp
A11y tree before pixels. Vision only when needed.
Read the a11y tree, act on element names. No screenshot, no vision LLM.
OCR when the tree is sparse, screenshot when you need pixels, vision only for canvas UIs.
Every tool call gates through one safety layer. Destructive actions need confirmation.
The recommended surface — computer
, accessibility
, window
, system
, browser
, task
. ~12× smaller catalog than the granular Tools surface.
Windows, macOS, Linux behind a single interface. Linux covers X11 and Wayland.
TCC-safe. clawdcursor grant
handles Accessibility + Screen Recording.
Native UIA + Windows.Media.Ocr. x64 and ARM64.
X11 and Wayland. AT-SPI for a11y, Tesseract for OCR.
Click by name, type by label, read screen. A11y first, OCR as fallback.
Platform-aware key combos — Cmd on macOS, Ctrl elsewhere. No LLM cost.
Collapse N deterministic tool calls into a single guarded, safety-gated batch. N calls → 1.
{ "action": "…" }
. The 94 granular tools (one schema per verb) are listed below for compatibility and debugging — use them when your runtime requires every primitive as a top-level MCP tool. (94 total.)
Compact form (recommended): computer({ "action": "key", "combo": "mod+s" })
— ~1,500 tokens of catalog.
Granular form (compat / debug): key_press({ "key": "mod+s" })
— 94 individual tools, one schema per verb.
Both produce identical effects through the same safety.evaluate()
chokepoint.
Pass --granular
(instead of --compact
) to expose the granular surface over MCP. See schema.snapshot.json for every parameter.
clawdcursor consent # one-time desktop-control authorization
clawdcursor grant # macOS Accessibility + Screen Recording prompts
clawdcursor doctor # verify permissions, configure AI provider
clawdcursor status # readiness check (consent, permissions, AI config)
clawdcursor mcp # stdio MCP server for editor hosts
clawdcursor mcp --compact # same, with 6 compound tools (recommended)
clawdcursor agent # HTTP MCP daemon at :3847/mcp, optional built-in LLM
clawdcursor agent --no-llm # tool surface only — your agent brings its own brain
clawdcursor stop # stop every running mode
clawdcursor uninstall # remove all clawdcursor config and data
$
Works on macOS, Linux, and Windows. The one-liner installs Node if needed, builds, and links the global shim; npm
is the leanest. After install run clawdcursor consent --accept
then clawdcursor doctor
. Pin a version with VERSION=v1.0.0
.
Open source. Any model. Localhost only. No telemetry.