计算机控制(Computer Use)让 Claude 能在 CLI 中操控 GUI 应用、测试原生应用、调试视觉布局。通过内置 computer-use MCP 服务器启用,每次会话需逐个授权应用;截屏自动降采样且终端窗口始终隐藏;按 Esc 可立即中断。仅 macOS,需 Pro/Max 计划及 Claude Code v2.1.85+。不适用于非交互模式(-p 标志)。
Claude Code 计算机控制配置与问题排查
计算机控制让 Claude 像你一样打开应用、控制屏幕、在机器上工作。在 CLI 中,Claude 可以编译一个 Swift 应用、启动它、点击所有按钮、截屏查看结果,这一切都在它写代码的同一对话中完成。本页介绍 CLI 中的计算机控制功能。关于 macOS 或 Windows 桌面应用中的使用,见桌面版计算机控制。
与 Chrome/Playwright 的选型建议
| 工具 | 适合 | 不适合 |
|---|---|---|
| Chrome 集成 | Web 页面点击、控制台日志、DOM 状态、本地页面冒烟测试 | 原生应用、非浏览器 GUI、稳定回归测试维护 |
| 计算机控制 | 原生应用、模拟器、纯 GUI 工具、视觉布局复现 | 大量重复 Web 回归测试、需要精确选择器的场景 |
| Playwright | 稳定、可重复、可进 CI 的浏览器自动化测试 | 临时探索未知 UI、控制原生桌面应用 |
推荐顺序:先用 Chrome 集成或计算机控制复现并观察问题,再把稳定路径写成 Playwright 或项目自己的 E2E 测试。
计算机控制能做什么
处理需要 GUI 的任务——那些通常需要离开终端手动完成的操作:
- 构建和验证原生应用:让 Claude 构建一个 macOS 菜单栏应用。Claude 编写 Swift、编译、启动,然后点击每个控件验证它是否正常工作。
- 端到端 UI 测试:指向一个本地 Electron 应用,要求“测试新手引导流程”。Claude 打开应用、点击完成注册,并在每个步骤截图。不需要配置 Playwright 和测试脚手架。
- 调试视觉和布局问题:告诉 Claude“弹窗在小窗口下被裁剪了”。Claude 调整窗口大小、重现 bug、截图、修补 CSS 并验证修复。
- 驱动纯 GUI 工具:与设计工具、硬件控制面板、iOS 模拟器或没有 CLI/API 的专有应用交互。
何时使用计算机控制
Claude 有多种与应用交互的方式,计算机控制最泛用但也最慢。Claude 优先尝试更精确的工具:
- 如果有对应服务的 MCP 服务器,优先使用
- 如果是 shell 命令任务,使用 Bash 工具
- 如果是浏览器任务且你配置了 Claude in Chrome,优先使用
- 如果以上都不适用,回退到计算机控制
屏幕控制保留给其他方式无法触达的对象:原生应用、模拟器和没有 API 的工具。
启用方法
计算机控制作为内置的 MCP 服务器(名为 computer-use)提供,默认关闭。
- 在交互式 Claude Code 会话中运行:
在服务器列表中找到/mcpcomputer-use,显示为禁用状态。 - 选择
computer-use并点击 Enable。该设置按项目持久化,每个项目只需启用一次。 - 第一次 Claude 尝试控制电脑时,你会看到提示要求授予两个 macOS 权限:
- Accessibility:让 Claude 点击、打字和滚动
- Screen Recording:让 Claude 看到屏幕内容 提示中包含打开对应系统偏好设置的链接。授予权限后,选择 Try again。macOS 可能需要在授予 Screen Recording 后重新启动 Claude Code。
启用后,向 Claude 提出需要 GUI 的任务,例如:
Build the app target, launch it, and click through each tab to make
sure nothing crashes. Screenshot any error states you find.
按会话授权应用
启用 computer-use 服务器不代表 Claude 能控制所有应用。当 Claude 第一次需要某个应用时,终端弹出提示,显示:
- 想控制哪些应用
- 请求的额外权限(如剪贴板访问)
- 还有多少其他应用将在工作时被隐藏
选择 Allow for this session 或 Deny。授权仅在当前会话有效。可以一次批准多个应用。
如果应用拥有较高权限,提示中会显示额外警告:
| 警告提示 | 适用的应用 |
|---|---|
| Equivalent to shell access(等同于 shell 权限) | Terminal、iTerm、VS Code、Warp 等终端和 IDE |
| Can read or write any file(可读写任何文件) | Finder |
| Can change system settings(可更改系统设置) | System Settings |
这些应用未被封禁,警告用于帮助判断任务是否值得授予该级别访问权限。
Claude 的控制级别也因应用类别而异:浏览器和交易平台只能查看(view-only);终端和 IDE 只能点击(click-only);其余类别获得完全控制。完整分级见桌面版应用权限。
Claude 在屏幕上如何工作
一次只允许一个会话
激活期间计算机控制持有全机锁。如果另一个 Claude Code 会话正在控制电脑,新尝试会失败并提示哪个会话持有了锁。请先结束该会话。
工作期间自动隐藏其他应用
Claude 开始控制屏幕时,其他可见应用会被隐藏,确保只与授权应用交互。终端窗口保持可见且不会被截图捕捉,因此你可以监视会话,而 Claude 永远看不到自己的输出。当前轮次结束后,隐藏的应用自动恢复。
截屏自动降采样
Claude Code 在将每一张截屏发送给模型前自动降采样。无需降低显示分辨率或调整 Retina 等高分屏的窗口大小。16 英寸 MacBook Pro 原生 Retina 分辨率(3456×2234)截取后会降采样至约 1372×887,保持宽高比。没有修改目标尺寸的设置。如果降采样后文字或控件太小,请在应用内部放大显示比例。
随时一键停止
当 Claude 获取锁时,macOS 通知显示:“Claude is using your computer · press Esc to stop”。在屏幕任意位置按 Esc 键立即中止当前操作,或在终端按 Ctrl+C。两种方式都会释放锁、取消隐藏应用并交回控制权。结束时会弹出第二条通知。
安全机制与信任边界
内置安全护栏无需配置即可降低风险:
- 逐应用授权:Claude 只能控制当前会话中已授权的应用
- 敏感应用警告:授权前明确标识哪些应用具有 shell、文件系统或系统设置权限
- 终端免截图:Claude 永远看不到终端窗口,防止提示注入通过你的会话回流到模型
- 全局退出键:任意位置按
Esc中止控制,按键事件被消耗,防止提示注入试图关掉对话框 - 全局锁:同时只能有一个会话控制机器
与沙箱化的 Bash 工具不同,计算机控制在真实桌面上运行,可以访问你授权的应用。Claude 会检查每个动作并标记屏幕上潜在的提示注入,但信任边界不同。详见计算机控制安全指南。
典型工作流示例
验证原生构建结果
修改 macOS 或 iOS 应用代码后,让 Claude 一步完成编译和验证:
Build the MenuBarStats target, launch it, open the preferences window,
and verify the interval slider updates the label. Screenshot the
preferences window when you're done.
复现布局 Bug
当视觉 bug 只在特定窗口大小下出现,让 Claude 自己找:
The settings modal clips its footer on narrow windows. Resize the app
window down until you can reproduce it, screenshot the clipped state,
then check the CSS for the modal container.
测试模拟器流程
无需写 XCTest 即可驱动 iOS Simulator:
Open the iOS Simulator, launch the app, tap through the onboarding
screens, and tell me if any screen takes more than a second to load.
与桌面版应用的区别
| 功能 | 桌面版 | CLI |
|---|---|---|
| 平台 | macOS 和 Windows | macOS 仅 |
| 启用位置 | 设置 > 通用 > Desktop app 下切换 | /mcp 中启用 computer-use |
| 禁止应用列表 | 可在设置中配置 | 暂不支持 |
| 自动取消隐藏开关 | 可选 | 始终开启 |
| Dispatch 集成 | Dispatch 发起的会话可使用 | 不适用 |
故障排除
“Computer use is in use by another Claude session”
另一个 Claude Code 会话持有锁。完成该会话中的任务或退出它。如果另一个会话崩溃,当 Claude 检测到进程不再运行时会自动释放锁。
macOS 权限提示反复出现
授予 Screen Recording 后,macOS 有时需要重启请求进程。完全退出 Claude Code 并启动新会话。如果提示仍然存在,打开 系统设置 > 隐私与安全性 > 屏幕录制,确认你的终端应用已列出并启用。
computer-use 未出现在 /mcp 中
服务器仅在符合条件的设置下出现。检查:
- 操作系统为 macOS。CLI 版计算机控制不支持 Linux 或 Windows。Windows 用户请使用桌面版计算机控制
- Claude Code 版本 v2.1.85 或更高:运行
claude --version确认 - Pro 或 Max 计划:运行
/status确认订阅 - 通过 claude.ai 认证。计算机控制不支持第三方提供商(Amazon Bedrock、Google Cloud Vertex AI、Microsoft Foundry)。如果仅通过第三方提供商访问 Claude,需要单独的 claude.ai 账户才能使用此功能
- 交互式会话。非交互模式(
-p标志)下不可用
常见问题
/mcp 里看不到 computer-use 怎么办?
检查你正在使用 macOS、Claude Code v2.1.85+、Pro/Max 计划、通过 claude.ai 认证且处于交互会话(不使用 -p 标志)。如果满足所有条件仍不显示,重新运行 /mcp 或重启 Claude Code。
如何中断 Claude 的屏幕操作?
按 Esc 键即可立即中止当前操作(在任意位置),或在终端按 Ctrl+C。Claude 会释放锁、恢复隐藏的应用并交还控制权。
computer-use 在 Windows 上能用吗?
CLI 版计算机控制仅支持 macOS。Windows 用户可以使用桌面版应用中的相同功能。
每次启动 Claude 都需要重新授权应用吗?
是的,授权仅限当前会话。新会话中 Claude 首次使用每个应用时,需要重新选择 Allow for this session 或 Deny。