clawdcursor compiles whatever's on screen into one UI map — accessibility tree and OCR fused into stable, addressable elements, with a screenshot only when needed — then drives apps through reusable scripts, verifying every action and routing it through a single safety gate.
> /plugin marketplace add AmrDab/clawdcursor> /plugin install clawdcursor@clawdcursor
Repo: AmrDab/clawdcursor
What's inside
Clawd Cursor is a local MCP server that gives any tool-calling agent — Claude Code, Cursor, Windsurf, OpenClaw, the Claude Agent SDK, or your own loop — safe control of the real desktop. It clicks, types, reads the screen, opens apps, and drives any GUI the way a human would: native apps, the browser, even a canvas.
Most "let an agent use the computer" tools take a screenshot and feed it to a vision model — slow, expensive, and brittle. Clawd Cursor compiles the screen into one UI map: it fuses the accessibility tree and OCR into a confidence-scored set of elements, each tagged with a stable el_NN id, and acts on elements by id — not pixel coordinates. Coordinates appear only in the last-resort screenshot/vision tier (live pixels off the current frame), for canvas-only apps or tasks that genuinely need spatial reasoning. The result is cheaper, faster, private, and — uniquely — it checks that each action actually did what it claimed.
If a human can do it on a screen, your agent can too. No API, no integration, no problem — only the right sequence of reads, clicks, keys, and waits. Use it as the last-mile fallback: native API exists? Use it. CLI? Use it. Clawd Cursor is for the click, the legacy app, the GUI with no public surface.
The desktop-agent space is crowded. The closest install-and-go peers are Windows-MCP and Terminator (desktop MCP servers); browser-only tools (browser-use, Playwright MCP) are adjacent; and OmniParser / UI-TARS are vision-centric parsing approaches you'd build an agent around, not products you install. Here's the honest comparison across those approaches — what Clawd Cursor does that the popular options don't:
| Clawd Cursor | browser-use | Playwright MCP | OmniParser / UI-TARS | computer-use | |
|---|---|---|---|---|---|
| Any desktop app, not just the web | ✅ | web only | web only | ✅ | ✅ |
| Cross-OS (Windows + macOS + Linux) | ✅ | — | — | varies | sandbox |
| Perception without a vision model | ✅ compiled a11y + OCR map | DOM | a11y tree | ❌ vision-centric | ❌ vision |
| Verifies its own actions (deviation) | ✅ | — | — | — | — |
| Single safety chokepoint (allow/confirm/block) | ✅ | — | — | — | — |
| Any model / vendor | ✅ | ✅ | not an agent | model-specific | Claude only |
| MCP-native (one config, any host) | ✅ | library | test framework | — | tool-use API |
| Local-only, no cloud required | ✅ | ✅ | ✅ | needs a model | screens → cloud |
Three things here are genuinely rare:
expect on a consequential action and Clawd Cursor re-checks the live screen (with a short settle window for async UIs) and reports a DEVIATION instead of a hollow "success." A completed task can't be marked done on evidence that was already true before it acted.safety.evaluate() chokepoint (allow / confirm / block) before it touches the desktop. The agent cannot bypass it.Plus: an on-screen "desktop control in progress" banner with a blinking red dot whenever an agent is driving — double-click it to stop. A human at the machine always knows, and always has a kill switch.
clawdcursor is an MCP server published to npm — install it into any MCP-capable agent (Claude Code, Claude Desktop, Cursor, Windsurf, Zed, OpenAI Codex, or your own loop) the same way you install any other MCP server.
npm i -g clawdcursor
clawdcursor consent --accept # one-time desktop-control consent (required)
clawdcursor grant # macOS only — approve Accessibility + Screen Recording
Zero-install also works — swap
clawdcursorfornpx -y clawdcursorin any snippet below and npx fetches it on demand. A global install is recommended anyway: it's pinnable and inspectable on disk (safer for a tool with full desktop control than auto-fetchinglatestevery run), and it's the path on which the macOS native helper builds at install time. Requires Node.js 20+.
Per-OS prerequisites. Windows installs clean —
sharpand@nut-tree-fork/nut-jsship prebuilt binaries, so no C++/Python build tools are needed. macOS needs Xcode Command Line Tools (xcode-select --install) for screenshots / vision; core accessibility-driven control still works without them. Linux needs a few system packages npm can't install:tesseract-ocr(OCR),python3-gi+gir1.2-atspi-2.0(accessibility tree), and — on Wayland —ydotool(synthetic input).
Claude Code
claude mcp add clawdcursor -s user -- clawdcursor mcp --compact
OpenAI Codex — add to ~/.codex/config.toml:
[mcp_servers.clawdcursor]
command = "clawdcursor"
args = ["mcp", "--compact"]
Cursor / Windsurf / Claude Desktop — add to the host's MCP config:
{
"mcpServers": {
"clawdcursor": { "command": "clawdcursor", "args": ["mcp", "--compact"] }
}
}
Zed — Zed uses context_servers (not mcpServers) in settings.json:
{
"context_servers": {
"clawdcursor": { "command": { "path": "clawdcursor", "args": ["mcp", "--compact"] } }
}
}
That's the whole setup. Ask your agent: "open Outlook and reply to the latest email from Sarah."
Skip the manual config — this repo ships a plugin that registers the tools and
bundles the usage skill in one step. It resolves the package's bin (never a
hard-coded dist/ path), so an upgrade can't break it:
claude plugin marketplace add AmrDab/clawdcursor
claude plugin install clawdcursor@clawdcursor
# Windows (PowerShell)
powershell -c "irm https://clawdcursor.com/install.ps1 | iex"
# macOS / Linux
curl -fsSL https://clawdcursor.com/install.sh | bash
Notes. You never run
clawdcursor mcpyourself — the host spawns it over stdio on demand.clawdcursor doctoris not part of MCP setup; it only configures the built-in LLM for the autonomousagentdaemon. On macOS, Accessibility is required (primary control path); Screen Recording is optional (vision fallback only). For editor permission allowlists, use the server-level wildcardmcp__clawdcursorrather than per-tool entries — it survives tool renames.
The perception + verification core (the UI State Compiler, since v1.5.0):
compile_ui fuses the accessibility tree and OCR into one confidence-scored map of the screen, every element tagged with a stable el_NN id. Act on an element by {element_id, snapshot_id} instead of pixels — near-free in tokens, and it survives DPI, resize, and layout shifts. find_button / find_field locate a target by meaning and hand you the id.expect on an action → Clawd Cursor confirms the outcome on the live screen and returns a DEVIATION when the UI didn't obey.el_NN refs through the safety gate and discloses when it attached to your existing browser.Set-of-Mark-style element IDs and a11y/OCR fusion aren't new ideas on their own — what's rare is doing them locally, a11y-first (no vision model required), with a built-in verification gate and one safety chokepoint, across three operating systems, behind a single MCP config.
See the changelog for the full release history, or the latest release.
Where the brain lives decides how you run it. Both modes can run side-by-side.
| Brain lives… | Mode | Command | What you call |
|---|---|---|---|
| In your editor (Claude Code, Cursor, Windsurf, Zed) | Direct tools | clawdcursor mcp | Each tool, via stdio MCP |
| In a headless agent with its own LLM (OpenClaw, Agent SDK, your loop) | Direct tools | clawdcursor agent --no-llm | Same, over HTTP MCP |
| Inside Clawd Cursor itself (scheduled / "submit and walk away") | Thin agent loop | clawdcursor agent + doctor-configured LLM | task / submit_task |
| External brain that delegates sub-tasks to the built-in loop | Direct + delegation | clawdcursor agent + your client | task({instruction:…}) to hand off |
Read the a11y tree (cheap) → act on named targets → verify from fresh observations → escalate perception only when needed (OCR → screenshot, the one tier that sends pixels to the model). Sparse a11y tree? system.detect_webview switches Electron/WebView2 apps to browser.* over CDP. Canvas-only (Paint, Figma, games)? Screenshot + coordinate click.
flowchart TB
task["User task"] --> loop["Agent LLM loop<br/>plans · chooses tools · verifies"]
loop --> observe{"Cheapest observation<br/>that answers the question"}
observe -- "obs·a11y — free" --> a11y["A11y tree<br/>(structured text + el_NN handles)"]
observe -- "obs·ocr — cheap" --> ocr["OCR (OS-level, no vision LLM)"]
observe -- "obs·dom — medium" --> dom["Browser DOM (CDP)"]
observe -- "obs·vision — expensive" --> vision["Screenshot (image into context)"]
a11y --> act
ocr --> act
dom --> act
vision --> act
act["Act<br/>click/type/key/drag · invoke/set_value · open_app · batch"] --> safety
safety["Single safety gate<br/>safety.evaluate() → allow / confirm / block"] -- allowed --> tools["Tool registry<br/>98 granular + 7 compound"]
safety -- needs user --> confirm["Human confirmation"] --> tools
safety -- denied --> blocked["blocked"]
tools --> desktop["Real desktop"]
desktop --> verify{"expect → does state match?"}
verify -- pass --> done["done"]
verify -- "DEVIATION" --> loop
classDef agentNode fill:#dbeafe,stroke:#2563eb,color:#0f172a;
classDef gate fill:#ede9fe,stroke:#7c3aed,color:#0f172a;
classDef obsNode fill:#fef9c3,stroke:#ca8a04,color:#0f172a;
classDef actNode fill:#ffedd5,stroke:#ea580c,color:#0f172a;
classDef stop fill:#fee2e2,stroke:#dc2626,color:#0f172a;
class loop,verify agentNode;
class safety,confirm,tools gate;
class observe,a11y,ocr,dom,vision obsNode;
class act actNode;
class blocked stop;
batch for deterministic stretches. When the next N steps are known, collapse them into one call — each step still routes through the safety gate; on any guard miss or error the batch halts with a per-step trace.
Task delegation. With an LLM configured on the daemon, an external agent can hand off at any point: task({"instruction":"…"}). The built-in loop takes the wheel and reports back — offload grunt work to a cheaper model without burning your own context.
Two catalogs ship side-by-side. The toolbox is 7 compound tools, each with an action enum covering ~10–20 verbs (~1,500 tokens total — about 12× smaller than granular, the computer_20250124 shape editor hosts already know). The granular surface is the 98 underlying primitives, one schema per verb (for runtimes that need top-level tools, or for debugging). Both run through the same safety.evaluate() chokepoint; the full catalog is always visible via MCP tools/list.
| Toolbox | Actions |
|---|---|
computer | screenshot, click, double_click, right_click, triple_click, hover, move, scroll, scroll_horizontal, drag, drag_path, type, key, wait |
accessibility | read_tree, find, get_element, focused, invoke, focus, set_value, get_value, expand, collapse, toggle, select, state, list_children, wait_for, compile_ui, find_button, find_field, smart_click, smart_type, smart_read |
window | list, active, focus, maximize, minimize, restore, close, resize, list_displays, screen_size, open_app, open_file, open_url, switch_tab, navigate |
system | clipboard_read, clipboard_write, system_time, ocr, undo, shortcuts_list, shortcuts_run, delegate, detect_webview, relaunch_with_cdp, system_prompt, build_uri, open_uri, open_app, open_file, open_url, detect_app, app_guide, learn_app |
browser | connect, page_context, read_text, click, type, select_option, evaluate, wait_for, list_tabs, switch_tab, scroll |
task | run (default; bounded-sync — waits up to timeouts, returns {status:"running"} + progress if longer, re-call to keep waiting), status, abort. Delegates to the built-in loop. Requires clawdcursor agent with an LLM. |
batch | {steps:[…]} — collapse N calls into one round-trip; each step {name, arguments, expect?}, re-perceived and safety-gated, halts with a trace on any miss. |
computer({ action: "key", combo: "mod+s" }) // Cmd+S / Ctrl+S, resolved per-OS
accessibility({ action: "invoke", name: "Send" }) // click by name, not pixels
window({ action: "open_app", name: "Outlook" })
task({ instruction: "open Notepad and type hello" }) // hand off to the thin loop
Every observation has a cost. Start at the cheapest rung that works; climb only when it fails. The live log (CLAWD_LOG=pretty, default on a TTY) shows the ladder in real time via per-call badges.
| Tier | Badge | Cost | Source | When |
|---|---|---|---|---|
| T1 structured | obs·a11y | ~free | accessibility.*, window.*, browser.read_text, clipboard | Default. Text + bounds, no image, no vision LLM. |
| T2 OCR | obs·ocr | cheap | system.ocr, smart_read / smart_click / smart_type | A11y tree empty/sparse. OS-level text out, no image bytes. |
| T3 DOM | obs·dom | medium | browser.read_text / page_context (CDP) | WebView / Electron / Chrome content. |
| T4 screenshot (vision) | obs·vision | expensive | computer.screenshot | The only tier that puts pixels in the model's context. Canvas-only apps or spatial reasoning. Last resort. |
Acting tools log act. Watching obs·a11y → act → obs·a11y on a normal turn — and the rare climb to obs·vision — is the whole efficiency model, visible.
One protocol — MCP — two transports, same catalog and JSON-RPC envelope. Both stateless; no session handshake.
| Transport | When | Client config |
|---|---|---|
| stdio MCP | Editor hosts. Tools appear on demand — no daemon. | {"command":"clawdcursor","args":["mcp","--compact"]} |
| HTTP MCP | Headless agents, daemons, orchestration, Agent SDK. POST JSON-RPC to http://127.0.0.1:3847/mcp. | Run clawdcursor agent. Bearer token at ~/.clawdcursor/token. |
# HTTP MCP — list tools
# (the Accept header is required — the MCP spec's Streamable HTTP transport
# rejects requests that don't accept both JSON and SSE with a 406)
curl -s -X POST http://127.0.0.1:3847/mcp \
-H "Authorization: Bearer $(cat ~/.clawdcursor/token)" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Platform code lives behind a single PlatformAdapter interface (src/platform/{windows,macos,linux}.ts + wayland-backend.ts). Business logic never reads process.platform.
| Platform | UI Automation | OCR | Browser (CDP) | Input |
|---|---|---|---|---|
| Windows 10/11 (x64 / ARM64) | UIA via PowerShell bridge | Windows.Media.Ocr | Chrome / Edge | nut-js |
| macOS 12+ (Intel / Apple Silicon) | JXA + System Events (TCC-safe) | Apple Vision | Chrome / Edge | nut-js + System Events |
| Linux X11 | AT-SPI via python3-gi | Tesseract | Chrome / Edge | nut-js |
| Linux Wayland | AT-SPI via python3-gi | Tesseract | Chrome / Edge | ydotool / wtype |
clawdcursor grant walks the dialogs. Retina/HiDPI handled in-adapter — don't pre-scale coordinates.apt install tesseract-ocr python3-gi gir1.2-atspi-2.0.ydotool + ydotoold (preferred) or wtype (keyboard only).| Tier | Actions | Behavior |
|---|---|---|
| Allow | Reading, opening apps, navigation, typing into non-sensitive fields, minimize | Executes immediately |
| Confirm | Sends, deletes, purchases, transfers, close-window/quit-app & show-desktop key combos, sensitive apps | Pauses for approval (batch({allowConfirm:true}) to authorize) |
| Block | Ctrl+Alt+Del, lock / log-out / force-quit / shutdown key sequences | Refused outright (no path) |
127.0.0.1. Verify: netstat -an | findstr 3847 (Windows) / | grep 3847 (Unix).~/.clawdcursor/token).clawdcursor report is opt-in and previews exactly what it sends.<untrusted-screen-content> tags — data, never instructions.AXSecureTextField, UIA IsPassword=true).See SECURITY.md for private vulnerability reporting.
| Directory | What lives here |
|---|---|
src/core/ | Thin agent loop (runAgent), sense layer (a11y / snapshot / fingerprint / UI compiler), reactive verification, focus guard, safety gate. |
src/tools/ | 98 granular tools + 7 compound aggregators + batch, playbooks, registry, dispatch. |
src/platform/ | PlatformAdapter + Windows / macOS / Linux / Wayland, OCR engine, CDP driver, URI handler. |
src/llm/ | Provider clients (Claude, GPT, Gemini, Llama, Kimi, Ollama, …), credentials, model config. |
src/surface/ | CLI, MCP server (stdio + HTTP), dashboard, doctor, onboarding, control banner. |
The PlatformAdapter is the only thing platform code talks to; safety.evaluate() is the only way tools execute. Those two seams are the whole point.
For humans diagnosing an install. Agents connect via MCP.
clawdcursor consent Manage desktop-control consent (--accept / --revoke / --status)
clawdcursor grant Grant macOS permissions (interactive, macOS only)
clawdcursor doctor Configure the AI provider for `agent` mode (+ diagnostics)
clawdcursor status Readiness check (consent, permissions, AI config)
clawdcursor mcp stdio MCP server — editor hosts spawn this; you don't
clawdcursor agent Daemon: HTTP MCP on :3847, optional built-in thin loop
clawdcursor agent --no-llm Daemon, tool surface only (no built-in brain)
clawdcursor stop Stop every running mode
clawdcursor uninstall Remove all config and data
Options: --port <n> (default 3847) · --compact · --no-banner · --provider <name> · --accept
git clone https://github.com/AmrDab/clawdcursor.git && cd clawdcursor
npm install
npm run build # tsc + postbuild → dist/surface/cli.js
npm test # vitest (1,000+ tests)
npm run lint # eslint
npm link # global `clawdcursor` shim (Admin shell on Windows)
Tests run on Node 20 & 22 against Ubuntu, macOS, and Windows in CI, plus a coverage ratchet, a perf tripwire, and an npm audit gate.
Tech: TypeScript · Node 20+ · nut-js · Playwright · sharp · Express · Model Context Protocol SDK · Zod · commander.
PRs welcome — see CONTRIBUTING.md for the dev loop, branch conventions, and the test matrix every change clears. Bugs and features in issues; private security reports via SECURITY.md.
MIT — see LICENSE.
Built on the Model Context Protocol SDK, nut-js, Playwright, the Anthropic computer_20250124 tool shape, and the AT-SPI / UIA / AX trees that make app-agnostic GUI automation possible at all.
.claude-plugin/
marketplace.json
plugin.json
.editorconfig
.env.example
.gitattributes
.github/
CODEOWNERS
dependabot.yml
ISSUE_TEMPLATE/
bug_report.yml
config.yml
feature_request.yml
PULL_REQUEST_TEMPLATE.md
workflows/
codeql.yml
cross-platform.yml
sync-guides.yml
.gitignore
.nvmrc
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
docs/
.nojekyll
ACCESSIBILITY-RESEARCH.md
agent-guide.md
AI-SHORTCUTS.md
app-guides/
discord.json
excel.json
figma.json
gmail.json
index.html
index.json
mspaint.json
olk.json
outlook.json
slack.json
spotify.json
youtube.json
app-knowledge.md
CNAME
favicon.svg
guide-marketplace.md
index.html
install.ps1
install.sh
internal/
0.9.2-live-test-2026-05-16.md
0.9.3-tool-coverage-2026-05-17.md
agnostic-audit-report.md
issue-13-reply-draft.md
README.md
v0.9-design.md
v0.9-readme-building-blocks.md
v0.9.3-release-body-draft.md
llms.txt
MACOS-SETUP.md
OPENCLAW-INTEGRATION-RECOMMENDATIONS.md
shortcut-demo.md
superpowers/
plans/
2026-06-07-ui-state-compiler-core.md
2026-06-07-ui-state-compiler-layer-b.md
2026-06-07-ui-state-compiler-layer-c.md
2026-06-07-ui-state-compiler-part2.md
2026-06-08-substrate-adoption-root-fix.md
specs/
2026-06-07-ui-state-compiler-design.md
2026-06-07-ui-state-compiler-layer-b-design.md
2026-06-07-ui-state-compiler-layer-c-design.md
2026-06-07-ui-state-compiler-part2-design.md
eslint.config.js
guides/
README.md
LICENSE
native/
build.sh
entitlements.plist
Package.swift
README.md
Sources/
ClawdCursorHelper/
main.swift
ClawdCursorHost/
main.swift
PermissionCheck/
main.swift
ScreenshotHelper/
main.swift
package-lock.json
package.json
perf/
apply-optimizations.ps1
baseline-results.md
patches/
01-screenshot-hash-cache.md
02-parallel-fetch.md
03-a11y-cache.md
04-adaptive-vnc-wait.md
05-async-writes.md
06-exponential-backoff.md
perf-test.ts
README.md
schema.snapshot.json
scripts/
banner.ps1
build-mcp-schema.ts
coord-accuracy.ps1
coord-uwp.ps1
edge-glow.ps1
find-element.ps1
get-foreground-window.ps1
get-screen-context.ps1
get-windows.ps1
install-panic-hotkey.ps1
interact-element.ps1
invoke-element.ps1
linux/
atspi-bridge.py
ocr-recognize.py
mac/
_window-picker.jxa
find-element.jxa
find-element.sh
focus-window.jxa
get-focused-element.jxa
get-foreground-window.jxa
get-screen-context.jxa
get-ui-tree.sh
get-windows.jxa
interact-element.sh
invoke-element.jxa
ocr-recognize.swift
measure-batch-tokens.ts
ocr-recognize.ps1
perf-smoke.ts
postinstall-native.js
ps-bridge.ps1
smoke-mcp.ps1
sync-version.ts
test-macos-fixes.sh
verify-install.js
SECURITY.md
seed-registry/
guides/
discord.json
excel.json
figma.json
gmail.json
mspaint.json
olk.json
outlook.json
slack.json
spotify.json
youtube.json
README.md
server.json
SKILL.md
skills/
clawdcursor/
SKILL.md
src/
__tests__/
a11y-cdp-fallback.test.ts
accessibility-linux.test.ts
agent-batch-tool.test.ts
agent-browser-tools.test.ts
agent-last-result.test.ts
agent-ocr-tools.test.ts
agent-tools-characterization.test.ts
agent-tools.test.ts
app-name-normalize.test.ts
banner.test.ts
batch.test.ts
cdp-driver-ownership.test.ts
coerce-coord.test.ts
consent-gate.test.ts
coord-scale.test.ts
coord-space-default.test.ts
coord-space-desc.test.ts
coordinate-scaling.test.ts
cost-class-coverage.test.ts
delegate-bounded-sync.test.ts
done-evidence-guard.test.ts
extract-compose.test.ts
focus-guard.test.ts
focus-window.test.ts
helpers/
mock-platform.ts
http-abort-stop.test.ts
http-utility.test.ts
insecure-temp-file-guard.test.ts
introspection.test.ts
invoke-cascade.test.ts
keys-normalization.test.ts
launch-poll.test.ts
llm-client.test.ts
llm-config.test.ts
load-pipeline-config-overlay.test.ts
macos-invoke-args.test.ts
macos-window-state.test.ts
mcp-coordinate-space.test.ts
mcp-schema-snapshot.test.ts
mcp-server.test.ts
native-desktop-coords.test.ts
observability.test.ts
ocr-engine.test.ts
open-file-honesty.test.ts
p0-perception-guards.test.ts
playbooks.test.ts
project-mcp.test.ts
prompt.test.ts
provider-matrix.test.ts
reactive-check.test.ts
run-agent.test.ts
safety-layer.test.ts
save-dialog-reliability.test.ts
scheduler.test.ts
sense.test.ts
shortcuts-tools.test.ts
skill-register.test.ts
smart-tools.test.ts
tool-meta-coverage.test.ts
tool-safety-gate.test.ts
tools-compact-transform.test.ts
type-paste.test.ts
ui-map-anchors.test.ts
ui-map-compile-ui-tool.test.ts
ui-map-compile.test.ts
ui-map-context.test.ts
ui-map-elements.test.ts
ui-map-find-tools.test.ts
ui-map-find.test.ts
ui-map-fuse.test.ts
ui-map-holder.test.ts
ui-map-mcp-invalidate.test.ts
ui-map-normalize.test.ts
ui-map-ref-actions.test.ts
ui-map-render.test.ts
ui-map-types.test.ts
unified-agent.test.ts
verification-integrity.test.ts
verify-assertions.test.ts
window-text.test.ts
windows-herestring-guard.test.ts
core/
agent-loop/
agent.ts
batch-tool.ts
coord-scale.ts
focus-guard.ts
project-mcp.ts
prompt.ts
tool-meta.ts
tools.ts
types.ts
agent.ts
app-categories.ts
banner.ts
classify/
capability.ts
decompose/
llm-decomposer.ts
parser.ts
observability/
correlation.ts
cost-meter.ts
logger.ts
router/
aliases.ts
normalize.ts
safety.ts
sense/
a11y-resolver.ts
fingerprint.ts
rank.ts
reactive-check.ts
snapshot.ts
types.ts
ui-map-anchors.ts
ui-map-elements.ts
ui-map-find.ts
ui-map-fuse.ts
ui-map-geom.ts
ui-map-holder.ts
ui-map-normalize.ts
ui-map-render.ts
ui-map-resolve.ts
ui-map-types.ts
ui-map.ts
verify/
assertions.ts
index.ts
llm/
browser-config.ts
client.ts
config.ts
credentials.ts
external-creds.ts
providers.ts
paths.ts
platform/
accessibility.ts
cdp-driver.ts
index.ts
keys.ts
launch-poll.ts
linux.ts
macos.ts
native-desktop.ts
native-helper.ts
ocr-engine.ts
ps-runner.ts
types.ts
uri-handler.ts
wayland-backend.ts
windows.ts
postbuild.ts
schema/
snapshot.ts
shortcuts.ts
surface/
cli.ts
dashboard.ts
doctor.ts
format.ts
http-utility.ts
mcp-server.ts
onboarding.ts
pidfile.ts
readiness.ts
report.ts
skill-register.ts
version.ts
tools/
a11y_depth.ts
a11y.ts
agent.ts
batch.ts
cdp.ts
compact.ts
cost-class.ts
desktop.ts
electron_bridge.ts
extras.ts
favorites.ts
introspection.ts
ocr.ts
orchestration.ts
playbooks/
extract-compose.ts
find-replace.ts
index.ts
keys-blocklist.ts
registry.ts
safety-gate.ts
scheduler.ts
shortcuts.ts
smart.ts
types.ts
window-text.ts
types.ts
tests/
credentials.test.ts
mcp-orphan-teardown.test.ts
pidfile.test.ts
process-start-time.test.ts
shortcuts.test.ts
smoke.test.ts
test-loop.sh
test-shortcuts.js
version-drift.test.ts
vitest.setup.ts
tsconfig.json
tsconfig.tests.json
vitest.config.tsFAQ
clawdcursor is a Claude Code plugin with 1 hand-picked skill for automation work, indexed on Flowy. Install it with the command on its page. It includes clawdcursor. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.