计算机控制
CLI-JAW 使用 CDP 自动操作网页 DOM,使用 Computer Use 操作桌面界面。Computer Use 是 MCP 工具,不是员工。
两种方式
| 方式 | 方法 | 最适用于 |
|---|---|---|
| CDP (Chrome DevTools Protocol) | 通过 src/browser/ 进行浏览器自动化 | 网页、精确的 DOM 交互 |
| Computer Use (CU) | 通过 jaw-computer-use MCP 或 Codex 原生插件操作桌面 | 原生应用、桌面 UI 交互 |
CDP 浏览器自动化
CLI-JAW 通过 CDP 启动并控制 Chrome:
# Start browser
jaw browser start
# Take a screenshot
jaw browser screenshot
# Take a DOM snapshot with ref attributes
jaw browser snapshot
# Click an element by ref
jaw browser click ref123
# Type text into an element
jaw browser type ref456 "Hello World" --submit
# Navigate to a URL
jaw browser navigate https://example.com
# Get page text
jaw browser text
视觉点击管线
当 DOM ref 属性和直接坐标都不适用时,视觉点击管线使用 AI 视觉来定位并点击 UI 元素:
jaw browser vision-click "Submit button" --provider codex
管线流程:截图 → AI 视觉提取坐标 → DPR 校正 → 点击 → 验证。
明确指定
$computer-use 时使用暴露的 Computer Use 工具,不得改用 CDP。Jaw 为除 Codex 以外支持 MCP 的 CLI 注册 jaw-computer-use 服务器(js 工具;在 Claude 中为 mcp__jaw-computer-use__js)。Codex 使用原生插件。先阅读首次工具调用返回的文档,确认 cua.getApp(name)、app.getAXState()、app.click(index|[x,y]) 等受支持操作。macOS TCC 权限
安装并打开带有 Computer Use 的 ChatGPT 桌面应用,然后重启 jaw 以注册 MCP 服务器。在 macOS 上,启动 jaw 服务的进程或二进制文件可能需要访问其他应用数据的权限(ChatGPT Computer Use 容器的 TCC App Data)。具体“隐私与安全性”面板名称因 macOS 版本而异。未获授权的 Terminal 启动实例可能在首次应用调用时阻塞。其他 TCC 权限可用下列命令检查:
# Check TCC permissions
jaw doctor --tcc
Jaw 按本次运行的权限策略处理应用批准提示:auto 批准,safe 拒绝并报告 not approved。若未暴露工具,报告 precondition failed: no Computer Use surface;若首次应用调用被阻塞,报告 precondition failed: computer-use app access blocked。Windows 同样需要 Codex 桌面插件缓存。Linux、WSL 和 Docker 没有主机 Computer Use 接口;普通 DOM 工作仍可使用 CDP。
Safari 提示
要进行 Safari 自动化,请在 Safari 的"开发"菜单中启用"允许远程自动化"。不过,通过 CDP 使用 Chrome 是推荐的最佳支持路径。
浏览器 API 端点
| 方法 | 路径 | 描述 |
|---|---|---|
| POST | /api/browser/start | 启动浏览器 |
| POST | /api/browser/stop | 停止浏览器 |
| GET | /api/browser/status | 浏览器状态 |
| GET | /api/browser/snapshot | 带 ref 的 DOM 快照 |
| POST | /api/browser/screenshot | 截取屏幕截图 |
| POST | /api/browser/act | 点击、输入、按键、悬停 |
| POST | /api/browser/vision-click | 基于视觉的点击 |
| POST | /api/browser/navigate | 导航到 URL |
运行时诊断
# Check browser runtime health
jaw browser status
# Doctor check for orphan processes
GET /api/browser/doctor
# Cleanup orphan runtimes
POST /api/browser/cleanup-runtimes