cua-driver-rs 是一个跨平台原生 GUI 自动化技能,用于驱动 macOS、Windows、Linux 上的应用。默认走 cua-driver CLI,形式为 Bash 调用 cua-driver <工具名> '<JSON参数>';MCP 工具(mcp__cua-driver__*)仅在用户明确要求时使用。
主要能力:启动应用、枚举窗口、获取窗口状态(同时返回无障碍树和截图)、按 element_index 点击或输入、按像素坐标 x,y 点击或输入、滚动、设置控件值、按键与快捷键,并支持会话录制与回放。
核心不变量:每次动作前后都要调用 get_window_state(pid, window_id)。动作前快照用于解析本次使用的 element_index(索引每次快照都会按 pid、window_id 重建,跨轮次或跨窗口无效);动作后快照用于确认动作是否真正生效。窗口选择由调用方明确指定,先通过 list_windows 或 launch_app 返回的 windows 数组枚举,避免误选离屏窗口。
使用要点:感知默认同时返回树和截图,capture_mode 已废弃且被忽略;include_screenshot 默认 true,设为 false 可只取树以省性能。调度路径在动作时决定:传 element_index 走无障碍层(后台可执行、可验证),传 x,y 走像素层(尽力而为,需用截图确认)。工具名用 snake_case,管理子命令用 kebab-case,如 cua-driver serve、stop、status、list-tools、describe、recording、check-update。元素索引工作流需要先启动常驻守护进程(cua-driver serve)。
动作响应返回 effect(confirmed、unverifiable、suspected_noop)与 escalation 建议(px 或 foreground),可按“验证后升级”的阶梯处理:无障碍动作失败或树不可信时改用像素动作,后台投递被丢弃时以 delivery_mode:"foreground" 重试;Wayland 下未聚焦窗口只能升级到前台。原则是不得夺取前台焦点,避免使用 activate、foreground 等命令。登录或收费方式、价格、适用版本等资料暂未提供。