Clawd Cursor
把屏幕编译成一张可寻址的 UI 地图,让任何 AI 代理安全地操控真实桌面——本地运行、跨平台、模型无关,并自动验证每一步操作。
证据显示:单点 safety.evaluate() 门禁(allow/confirm/block)、HTTP 仅绑定 127.0.0.1 并带 bearer token、屏幕文本包在 <untrusted-screen-content> 标签中、日志脱敏密码字段、明确的确认/阻断分级表、consent 一次性授权可撤销(--revoke)、uninstall 提供清除路径、MIT + 作者署名。扣分点:safety gate 与平台适配层的声明主要来自 README,未见 gate 实现代码本身;授予的桌面级权限(Accessibility、屏幕录制、合成输入)本质上远超最小权限,扣至 2。
CI 矩阵覆盖 3 OS × 2 Node 版本,含 lint、typecheck、audit 门禁、覆盖率棘轮和性能冒烟;测试文件(pidfile、orphan teardown、credentials)质量高、注释详尽,含合理的 skip 理由。扣分点:断言 '1,000+ tests' 未能从提供的样本核实;headless Linux 上存在已知原生模块段错误(测试注释自认)。
明确的目标受众(MCP agent 用户)、清晰的'最后一步回退'定位、跨 Windows/macOS/Linux/Wayland 的环境矩阵含每系统前置条件与已知限制(Wayland 需 ydotool、无头 Linux 段错误),README 对最佳使用场景与反场景都有说明。扣分点:触发精度与能力边界主要由叙述支持而非规范文件。
README 结构清晰(安装/工作原理/工具箱/平台/安全/架构/CLI),package. 元数据完整(repository、bugs、bin、files、engines、overrides),MIT LICENSE 全文、SECURITY.md 有漏洞报告渠道、CHANGELOG 存在、版本同步脚本(sync-version)。扣分点:CHANGELOG 与 SKILL.md 内容未在样本中,维护责任仅有 CI 配置间接体现,发布者未经验证。
a11y+OCR 融合、stable el_NN 寻址、expect 验证与 DEVIATION 报告、分层感知控制 token 成本——相对纯截图方案有明确边际价值,且对比表诚实标注竞品。扣分点:token/性能收益为宣称未实测;cost_benefit 依赖使用场景(需 Node 20+、各 OS 原生依赖)。
claims 大多可追溯到具体机制(safety gate、consent 文件、pidfile 测试、CI workflow 与 README 描述一致),测试注释坦诚记录失败尝试与 skip 理由,已知接受的 audit 告警(issue #117)如实披露。扣分点:性能/成本/可靠性结论为推断,静态审查无法执行验证,故保持低置信度。
- 本工具要求桌面级高权限(辅助功能、屏幕录制、合成输入),任何漏洞等同攻击者获得与会话用户相同的控制权——仅在你信任本机运行的 agent 时启用。
- safety gate 的 allow/confirm/block 行为主要由 README 描述,本次静态审查未含实现代码;部署前应自行审查 src/core 中的 SafetyLayer 实现并验证确无绕过路径。
- HTTP 模式的 bearer token 存于 ~/.clawdcursor/token,注意日志、错误响应与本地网页(CORS)泄漏风险;定期确认端口仅绑定 127.0.0.1。
- CI 已知接受两处 moderate 级依赖告警(file-type 无补丁、ip-address XSS);生产使用前复核这些传递依赖的现状。
- 无头 Linux 上存在原生模块退出段错误的已知问题,Wayland 支持依赖外部 ydotool,部署前用 clawdcursor status 自检。
这个 Agent 能做什么,适合哪些场景?
Clawd Cursor 是一个本地 MCP 服务器,让 Claude Code、Cursor、Windsurf、Zed、OpenAI Codex 等任何支持工具调用的代理操控真实桌面:点击、输入、读屏、打开应用。它的核心创新是把可访问性树与 OCR 融合成一张置信度评分的 UI 状态地图(UI State Compiler),每个元素带有稳定的 el_NN 标识,代理按元素 ID 而非像素坐标操作,只有画布类应用才退回到截图/视觉这一最昂贵的层级。每一次操作都经过唯一的 safety.evaluate() 安全门(允许/确认/阻止),并支持通过 expect 参数在真实屏幕上复核操作结果,偏离时返回 DEVIATION。它跨 Windows、macOS 和 Linux 运行,提供 stdio 和 HTTP 两种 MCP 传输方式,工具面包括 7 个复合工具和 98 个细粒度原语。代理接管桌面时会显示带红点的横幅,双击即可紧急停止。
运行时通过 compile_ui 将可访问性树(免费)与 OS 级 OCR(低成本)融合为带置信度评分、以 el_NN 命名的元素地图,find_button / find_field 按语义定位目标;代理通过 computer、accessibility、window、system、browser、task、batch 七个复合工具执行 click、type、key、invoke、open_app 等约 10–20 个动作枚举,或直接调用 98 个细粒度工具。每个调用先经过 safety.evaluate() 安全门,分为允许(立即执行)、确认(发送、删除、购买等需人工批准)、阻止(Ctrl+Alt+Del 等)三级。带 expect 的操作会在短暂稳定窗口后重读实时屏幕,状态不符时返回 DEVIATION。稀疏的可访问性树通过 system.detect_webview 切换到基于 CDP 的 browser.* 工具;纯画布应用使用截图加坐标点击作为最后手段。部署边界为完全本地:stdio MCP 由编辑器宿主拉起,或以 clawdcursor agent 守护进程在 127.0.0.1:3847 提供 HTTP MCP(Bearer 令牌认证),不默认收集遥测。
- 使用 Claude Code 或 Cursor 的开发者,希望代理能直接操作 Outlook、记事本等没有 API 或 CLI 的本机 GUI 应用
- 需要自动化含遗留桌面软件的业务流程的用户,例如按名称找到表单字段并输入,替代脆弱的像素坐标脚本
- 在 macOS 上使用 Apple Vision OCR、Windows 上使用 Windows.Media.Ocr、Linux 上使用 Tesseract 的本地化场景,要求屏幕内容不出本机
- 把 Claude 等昂贵模型用于规划、把任务通过 task() 委托给内置低成本 LLM 循环执行的混合编排团队
- 需要审计能力的自动化运维:每步操作经统一安全门,敏感应用(邮箱、银行、密码管理器)自动升级为人工确认
- 使用无头代理(Agent SDK、自建循环)通过 HTTP MCP 在 127.0.0.1:3847 上调用同一套工具目录的集成者
这个 Agent 有哪些优点和局限?
- 感知分层省钱:可访问性树免费 → OCR 低成本 → 截图昂贵,只有最后一级才把像素送入模型上下文,令牌成本随任务难度递增
- 独有的事后验证:consequential 操作可带 expect 参数,代理在实时屏幕上复核结果,UI 未按预期变化时返回 DEVIATION 而非虚假成功
- 统一安全门:所有调用(stdio、HTTP、内置循环)都经 safety.evaluate() 允许/确认/阻止,代理无法绕过;敏感应用自动升级为人工确认
- 人在环中始终知情:代理操作时显示带闪烁红点的桌面控制横幅,双击即停
- 完全本地、模型无关、跨三平台:配合本地模型时数据不出机器,单一 MCP 配置即可接入任何 MCP 宿主
- macOS 需授予辅助功能(必需)与屏幕录制(可选)权限,并安装 Xcode Command Line Tools 才能用截图/视觉,首次配置有摩擦
- Linux 依赖系统级包(tesseract-ocr、python3-gi、gir1.2-atspi-2.0,Wayland 还需 ydotool),npm 无法自动安装
- Windows/Linux 的 OCR 与截图能力依赖各 OS 自带栈,深色/非常规 UI 或空的可访问性树需逐级升级感知层级,画布类应用只能退回坐标点击
- 验证与安全门带来额外往返开销;batch 虽可折叠步骤但每次仍是逐一感知并过安全门
- 需要 Node.js 20+ 且推荐全局安装(而非 npx 自动拉取),对受限环境是额外的运维约束
如何安装或部署这个 Agent?
需要 Node.js 20+。全局安装(推荐,可在磁盘上审查、可固定版本):
npm i -g clawdcursorclawdcursor consent --accept # 一次性桌面控制授权(必需)
clawdcursor grant # 仅 macOS:批准辅助功能 + 屏幕录制
各系统前提:Windows 开箱即用(sharp 与 @nut-tree-fork/nut-js 提供预编译二进制);macOS 需 Xcode Command Line Tools(xcode-select --install)以启用截图/视觉;Linux 需 tesseract-ocr、python3-gi、gir1.2-atspi-2.0,Wayland 下还需 ydotool。
接入 Claude Code:
claude mcp add clawdcursor -s user -- clawdcursor mcp --compact接入 OpenAI Codex(~/.codex/config.toml):
[mcp_servers.clawdcursor]
command = "clawdcursor"
args = ["mcp", "--compact"]Cursor / Windsurf / Claude Desktop 在其 MCP 配置中加入 {"mcpServers":{"clawdcursor":{"command":"clawdcursor","args":["mcp","--compact"]}}};Zed 使用 context_servers 键。也可一键装插件:claude plugin marketplace add AmrDab/clawdcursor && claude plugin install clawdcursor@clawdcursor。
如何使用这个 Agent?
安装并配置后,编辑器宿主会在需要时自动通过 stdio 拉起 clawdcursor mcp。对代理直接下达自然语言任务即可,例如:"打开 Outlook 并回复 Sarah 的最新邮件"。无头/守护进程模式:运行 clawdcursor agent(在 127.0.0.1:3847 提供 HTTP MCP,Bearer 令牌位于 ~/.clawdcursor/token,POST JSON-RPC 到 /mcp),或 clawdcursor agent --no-llm(仅工具面)。典型调用示例:
computer({ action: "key", combo: "mod+s" }) // 跨平台的 Cmd+S / Ctrl+S
accessibility({ action: "invoke", name: "Send" }) // 按名称而非坐标点击
window({ action: "open_app", name: "Outlook" })task({ instruction: "open Notepad and type hello" }) // 委托给内置循环
已知后续步骤时用 batch({steps:[…]}) 一次调用折叠多步,每步仍过安全门。故障排查可用 clawdcursor doctor(配置 agent 模式的 LLM)、clawdcursor status(就绪检查)、clawdcursor stop(停止所有模式)。
这个 Agent 与同类方案有什么区别?
README 将其与多类方案对比:Windows-MCP 和 Terminator 是同类桌面 MCP 服务器;browser-use 与 Playwright MCP 仅限浏览器;OmniParser 与 UI-TARS 是以视觉为中心的解析方法,每次观察都需截图进模型上下文;Anthropic computer-use 仅限 Claude 且屏幕数据上云。Clawd Cursor 的差异点在于:任意桌面应用(非仅网页)、跨三 OS、无需视觉模型的感知(a11y+OCR 融合)、自验证操作、单安全门、任意模型/厂商、MCP 原生且完全本地。