从 CLI 使用 Computer use
在 macOS 上让 Claude 打开应用、点击、输入并看到你的屏幕:能做什么、何时会用到、启用与按会话授权、工作方式、安全边界、示例、与 Desktop 的差异和排障(研究预览)。
Computer use 是 macOS 上的研究预览,需要 Pro 或 Max 套餐,Team 和 Enterprise 套餐不可用。它需要交互式会话,在
-p的非交互模式里不可用。
Computer use 让 Claude 打开应用、控制屏幕,像你一样在你的机器上工作。在 CLI 里,Claude 可以编译一个 Swift 应用、启动它、点遍每个按钮并截图,全都在它写代码的同一段对话里完成。本页讲 CLI 里的 computer use 如何工作;macOS 或 Windows 上的 Desktop 应用见 Desktop 页的对应一节。
你能用它做什么
Computer use 处理需要 GUI 的任务:任何你通常得离开终端手动去做的事。
- 构建并验证原生应用:让 Claude 构建一个 macOS 菜单栏应用,Claude 写 Swift、编译、启动,并在你打开它之前点遍每个控件来验证它能用。
- 端到端 UI 测试:把 Claude 指向本地的 Electron 应用并说「测试引导流程」,Claude 打开应用、点完注册并为每一步截图,无需 Playwright 配置和测试框架。
- 调试视觉和布局问题:告诉 Claude「弹窗在小窗口里被裁切」,Claude 缩放窗口、复现缺陷、截图、修补 CSS 并验证修复,Claude 看到的就是你看到的。
- 驱动只有 GUI 的工具:与设计工具、硬件控制面板、iOS 模拟器或没有 CLI 或 API 的专有应用交互。
什么时候会用 computer use
Claude 有好几种与应用或服务交互的方式。Computer use 最宽泛也最慢,所以 Claude 先尝试最精确的工具:
- 你有该服务的 MCP 服务器,Claude 就用它。
- 任务是 shell 命令,Claude 用 Bash。
- 任务是浏览器工作且你设置了 Claude in Chrome,Claude 用它。
- 以上都不适用,Claude 才用 computer use。
屏幕控制只留给其他方式够不到的东西:原生应用、iOS 模拟器这类模拟器,以及没有 API 的工具。
启用 computer use
Computer use 以名为 computer-use 的内置 MCP 服务器提供,启用之前默认关闭。
- 打开 MCP 菜单。 在交互式 Claude Code 会话里运行
/mcp,在服务器列表里找到computer-use,它显示为已禁用。 - 启用服务器。 选择
computer-use并选 Enable。该设置按项目持久化,所以你只需为每个想用 computer use 的项目做一次。 - 授予 macOS 权限。 Claude 第一次尝试使用你的电脑时,会出现提示让你授予两项 macOS 权限:Accessibility(让 Claude 点击、输入和滚动)和 Screen Recording(让 Claude 看到屏幕上的内容)。提示里有打开相关系统设置面板的链接;两项都授予后,在提示里选 Try again。授予 Screen Recording 后,macOS 可能要求你重启 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 第一次需要某个具体应用时,终端里会出现提示,显示:
- Claude 想控制哪些应用
- 请求的任何额外权限,如剪贴板访问
- Claude 工作期间有多少其他应用会被隐藏
选择 Allow for this session 或 Deny,批准只在当前会话内有效。Claude 一起请求多个应用时,你可以一次性批准。
影响面广的应用会在提示里显示额外警告,让你知道批准它们意味着授予什么:
| 警告 | 适用于 |
|---|---|
| 等同于 shell 访问 | Terminal、iTerm、VS Code、Warp 和其他终端与 IDE |
| 能读写任何文件 | Finder |
| 能更改系统设置 | System Settings |
这些应用不会被阻止,警告是让你判断任务是否值得授予这种级别的访问。批准 Finder,Claude 才能点击桌面、Dock 或 Finder 窗口。
Claude 的控制级别还因应用类别而异:浏览器和交易平台只能查看,终端和 IDE 只能点击,其他一切应用得到完全控制。完整的分级见 Desktop 页的应用权限一节。
Claude 如何在你的屏幕上工作
理解流程有助于预判 Claude 会做什么、以及如何介入。
一次一个会话
同一时间只有一个会话能使用你的电脑。会话在第一个 computer use 操作时获取锁,并在会话退出时释放,而不是任务完成时。第二个会话的 computer use 会失败,错误里点名持有锁的会话;先退出那个会话。
Claude 工作时应用会被隐藏
Claude 开始控制你的屏幕时,其他可见应用会被隐藏,使 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 都会停止、取消隐藏你的应用并把控制权交还给你。会话会一直持有 computer use 锁,直到它退出。Claude 完成时会出现第二个通知。
安全与信任边界
注意:与沙盒化的 Bash 工具不同,computer use 在你真实的桌面上运行,能访问你批准的应用。Claude 会检查每个操作并标记来自屏幕内容的潜在提示注入,但信任边界是不同的;最佳实践见官方的 computer use 安全指南。
内置护栏无需配置就能降低风险:
- 按应用批准:Claude 只能控制你在当前会话里批准过的应用。
- 哨兵警告:授予 shell、文件系统或系统设置访问的应用,在你批准前会被标记。
- 终端从截图中排除:Claude 永远看不到你的终端窗口,所以会话里屏幕上的提示不会反馈进模型。
- 全局退出键:
Esc键在任何地方都能中止 computer use,且该按键会被消费掉,所以提示注入无法用它来关掉对话框。 - 锁文件:同一时间只有一个会话能控制你的机器。
示例工作流
验证原生构建
对 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.Claude 运行 xcodebuild、启动应用、与 UI 交互,并报告发现。
复现布局缺陷
视觉缺陷只在特定窗口大小出现时,让 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.Claude 缩放窗口、捕获出错状态并阅读相关样式表。
测试模拟器流程
不写 XCTest 就能驱动 iOS 模拟器:
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.Claude 像你用鼠标一样控制模拟器。这个流程适用于 CLI;在 Desktop 应用里,同样的请求会改为打开 iOS 模拟器面板而不是屏幕控制。
与 Desktop 应用的差异
CLI 和 Desktop 共享同一个 computer use 引擎,只有少量差异:
| 功能 | Desktop | CLI |
|---|---|---|
| 平台 | macOS 和 Windows | 仅 macOS |
| 启用 | 在 Settings > General(Desktop app 下)里切换 | 在 /mcp 里启用 computer-use |
| 拒绝的应用列表 | 可在设置里配置 | 暂不可用 |
| 自动取消隐藏开关 | 可选 | 始终开启 |
| Dispatch 集成 | Dispatch 创建的会话能用 computer use | 不适用 |
排障
"Computer use is in use by another Claude session"
另一个 Claude Code 会话持有锁,会一直持有到它退出。退出那个会话;如果另一个会话崩溃了,Claude 检测到该进程不再运行时,锁会自动释放。
macOS 权限提示不断重现
授予 Screen Recording 之后,macOS 有时需要重启发出请求的进程。完全退出 Claude Code 并开始新会话;提示仍然持续的话,打开 System Settings > Privacy & Security > Screen Recording,确认你的终端应用在列表里且已启用。
/mcp 里没有 computer-use
该服务器只出现在符合条件的环境里,检查:
- 你在 macOS 上:CLI 里的 computer use 在 Linux 或 Windows 上不可用;Windows 上改用 Desktop 里的 computer use。
- 你用的是 Pro 或 Max 套餐:运行
/status确认订阅。 - 你通过 claude.ai 认证:computer use 不适用于 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 这类第三方提供商;如果你只通过第三方提供商访问 Claude,需要另有一个 claude.ai 账号才能用这个功能。
- 你在交互会话里:computer use 在
-p的非交互模式下不可用。
另见
- Desktop 里的 computer use:同一能力,带图形设置页。
- Claude in Chrome:面向网页任务的浏览器自动化。
- MCP:把 Claude 连接到结构化工具和 API。
- 沙盒:Claude 的 Bash 工具如何隔离文件系统和网络访问。
- Computer use 安全指南:安全使用 computer use 的最佳实践。