Skip to content

CLI 计算机控制(Computer Use)

计算机控制(Computer Use)让 Claude 能在 CLI 中打开应用、截屏和点击操作,弥补终端无法验证 GUI 程序的不足。通过内置 computer-use MCP 服务器实现,默认关闭。每次会话首次使用需授权,截屏自动降采样不包含终端窗口,按 Esc 随时全局中断。适用于编译验证 Native App、Electron 端到端 UI 测试和修复视觉布局问题。

计算机控制让 Claude 能像你一样打开应用、控制屏幕、在机器上工作。在 CLI 中,Claude 可以编译一个 Swift 应用、启动它、点击所有按钮、截屏查看结果,这一切都在它写代码的同一个对话中完成。

本页介绍 CLI 中的计算机控制功能。关于 macOS 或 Windows 桌面应用中的使用,见桌面版计算机控制


计算机控制能做什么

它处理需要 GUI 的任务:那些通常需要离开终端手动完成的操作。

  • 构建和验证原生应用:让 Claude 构建一个 macOS 菜单栏应用。Claude 会编写 Swift、编译、启动,然后点击每个控件来验证它是否正常工作。
  • 端到端 UI 测试:让 Claude 指向一个本地 Electron 应用并说"测试新手引导流程"。Claude 会打开应用、点击完成注册,并在每个步骤截图。不需要配置 Playwright 和测试脚手架。
  • 调试视觉和布局问题:告诉 Claude"弹窗在小窗口下被裁剪了"。Claude 会调整窗口大小、重现 bug、截图、修补 CSS 并验证修复效果。Claude 看到的和你一样。
  • 驱动纯 GUI 工具:与设计工具、硬件控制面板、iOS 模拟器或没有 CLI/API 的专有应用交互。

何时使用

Claude 有多种与应用交互的方式,计算机控制是最泛用但也最慢的一种,因此 Claude 会优先尝试更精确的工具:

  1. 如果你有对应服务的 MCP 服务器,优先使用
  2. 如果是 shell 命令任务,使用 Bash 工具
  3. 如果是浏览器任务且你配置了 Claude in Chrome,优先使用
  4. 如果以上都不适用,才会回退到计算机控制

屏幕控制保留给其他方式无法触达的对象:原生应用、模拟器和没有 API 的工具。


启用方法

计算机控制作为内置的 MCP 服务器(名为 computer-use)提供。默认关闭,需手动启用。

启动 Claude Code 后,运行:

bash
/mcp add computer-use

或者在 settings.json 中配置(如果有 mcp.json 也可以配置在那里)。

设置完成后,给 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 第一次需要控制某个应用时,终端会弹出提示,显示:

  • Claude 想控制哪些应用
  • 请求的额外权限(如剪贴板访问)
  • 还有多少其他应用将在 Claude 工作时被隐藏

选择 Allow for this sessionDeny。授权仅在当前会话有效。

如果应用拥有较高权限,提示中会显示额外警告:

警告提示适用的应用
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 的行为,并在需要时干预。

每次只允许一个会话控制

激活期间计算机控制会持有全机锁。如果另一个 Claude Code 会话正在控制电脑,新的尝试会失败并提示哪个会话持有了锁。请先结束该会话。

工作期间自动隐藏其他应用

当 Claude 开始控制屏幕时,其他可见应用会被隐藏,确保 Claude 只与授权的应用交互。你的终端窗口保持可见且不会被截图捕捉,因此你可以监视会话,而 Claude 永远看不到自己的输出。当前轮次结束后,被隐藏的应用会自动恢复。

截屏自动降采样

Claude Code 在将每一张截屏发送给模型前会自动降采样。你不需要降低显示分辨率或调整 Retina 等高分屏上的窗口大小。16 英寸 MacBook Pro 原生 Retina 分辨率(3456×2234)截取后会降采样至约 1372×887,保持宽高比。

没有修改目标尺寸的设置。如果降采样后屏幕文本或控件太小 Claude 看不清,请在应用内部放大显示比例,而不是更改你的显示分辨率。

随时一键停止

当 Claude 获取锁时,会弹出 macOS 通知:"Claude is using your computer · press Esc to stop"。 在屏幕任何位置按 Esc 键可立即中止当前操作,或者在终端按 Ctrl+C。无论是哪种方式,Claude 都会释放锁、取消隐藏应用并交回控制权。结束时会弹出第二条通知。


安全机制与信任边界

内置的安全护栏无需配置即可降低风险:

  • 逐应用授权:Claude 只能控制当前会话中你已授权的应用
  • 敏感应用警告:授权前明确标识哪些应用具有 shell、文件系统或系统设置权限
  • 终端免截图:Claude 永远看不到你的终端窗口,防止提示注入通过你的会话回流到模型
  • 全局退出键:任意位置按 Esc 中止控制,按键事件被消耗,防止提示注入试图关掉对话框
  • 全局锁:同时只能有一个会话控制机器

典型工作流示例

1. 验证原生构建结果: 修改 macOS 或 iOS 应用代码后,让 Claude 一步完成编译和验证:

Build the Xcode project, open the app, and click the "Generate" button. Take a screenshot of the output view.

2. 布局问题排查: 前端 CSS 问题:

Start the dev server and open Safari to localhost:3000. Resize the window to 400px wide. Tell me if the mobile navigation menu overlaps the header logo.

3. 纯界面工具联调

Open the iOS Simulator. Launch my app, navigate to the settings screen, toggle dark mode, and verify the text color changes to white.


常见问题

Q: Claude 说它找不到我要求的按钮,怎么办?

A: 高分屏上降采样可能导致文字模糊。请在目标应用内放大界面比例(如 Cmd++),或者让 Claude 把目标应用的窗口拉大一点。

Q: 为什么按了 Esc 没反应?

A: Esc 键是计算机控制功能的全局退出键。如果在终端里执行,可能需要按 Ctrl+C 才能中止底层的 MCP 服务器进程。

Q: Claude 控制电脑时我还能做其他事吗?

A: 不能并行工作。计算机控制独占键鼠输入,并隐藏了未授权的其他应用。等 Claude 工作完这一轮,它会把控制权和界面交还给你。