过去,命令行里的人工智能助手能写代码、能跑脚本,但只要碰上图形界面(GUI)的操作------比如点开一个应用、截个图、点一下按钮------它就无能为力了。开发者只能自己离开终端,手动完成这些步骤。
Claude Code 最近在 macOS 上推出了一项名为 计算机使用(Computer Use) 的研究预览功能,改变了这个局面。它让 Claude 不仅能写代码,还能像真人一样打开应用、移动鼠标、点击界面、输入文字,甚至查看屏幕内容。所有这一切,都仍然在终端里完成。

什么条件下能用?
这项功能目前只在 Claude Code v2.1.85 或更高版本 中提供,并且需要 Pro 或 Max 订阅计划 。Team 版和企业版暂不支持。另外,它只能在交互式会话 中使用,带 -p 参数的非交互模式无法调用。
需要特别说明的是,计算机使用功能目前仅限 macOS 平台。Windows 用户如果想体验类似能力,可以使用 Claude Desktop 应用中的计算机使用功能。
用它能做什么?
有了计算机使用能力,Claude 可以接手那些必须依赖图形界面的任务------也就是开发者过去不得不离开终端亲手去做的事情。
构建和验证原生应用
让 Claude 写一个 macOS 菜单栏应用。它会写好 Swift 代码,自动编译,然后启动这个应用,依次点击每个控件来验证是否正常工作。开发者甚至不需要亲自打开应用,就能得到一份验证结果。
端到端 UI 测试
把本地的一个 Electron 应用交给 Claude,告诉它"测试一下注册流程"。Claude 会自己打开应用,模拟点击注册按钮,一步一步操作,并对每个步骤截图。不需要配置 Playwright,也不需要搭建测试环境。
调试视觉和布局问题
如果界面出了毛病,比如"窗口缩小时弹窗被裁切了",可以直接让 Claude 重现问题。它会调整窗口尺寸,复现 bug,截图,然后修改 CSS,最后验证修复结果。Claude 看到的界面和开发者看到的完全一致。
操作没有命令行的工具
有些设计工具、硬件控制面板、iOS 模拟器,甚至一些企业专用软件根本没有命令行接口。Claude 可以直接通过屏幕控制来操作它们。
什么时候会触发计算机使用?
Claude 有好几种方式与应用程序或服务交互。计算机使用是覆盖面最广、但速度最慢的一种方式,所以它会优先尝试更精准的工具:
- 如果该服务配置了 MCP 服务器,Claude 会优先使用 MCP;
- 如果任务是一个 Shell 命令,就使用 Bash 工具;
- 如果是在浏览器里操作,并且已经配置了"Claude in Chrome",则使用浏览器自动化;
- 只有以上都不适用时,Claude 才会回退到计算机使用。
屏幕控制被保留给那些其他手段无法触及的东西:原生应用、模拟器、没有 API 的工具。
如何启用?
计算机使用功能是以一个内置 MCP 服务器形式提供的,名叫 computer-use,默认是关闭状态。
- 打开 MCP 菜单
在 Claude Code 的交互会话中输入/mcp,在服务器列表中找到computer-use,它显示为"已禁用"。 - 启用服务器
选中computer-use,选择"Enable"。这个设置是按项目保存的,每个需要用到计算机使用的项目只需启用一次。 - 授予 macOS 权限
当 Claude 第一次尝试控制电脑时,系统会弹窗要求授予两项权限:- 辅助功能(Accessibility):允许 Claude 点击、输入文字、滚动页面。
- 屏幕录制(Screen Recording) :允许 Claude 看到屏幕上的内容。
权限申请窗口会附带链接,直接跳转到系统设置的相应面板。授予两项权限后,回到弹窗点击"Try again"。注意,授予屏幕录制权限后,macOS 有时需要完全退出并重启 Claude Code 才能生效。
完成设置后,就可以给 Claude 布置 GUI 相关的任务了。例如:"构建 app 的目标,启动它,然后依次点击每个选项卡,确保没有崩溃。把发现的任何错误状态截图给我。"
每个会话都要批准应用
启用 computer-use 服务器并不等于 Claude 能随意控制电脑上的所有应用。
在某个会话中,当 Claude 第一次需要使用某个具体应用时,终端里会出现一个提示,显示:
- Claude 想要控制哪些应用;
- 有没有额外申请的权限(比如剪贴板访问);
- 工作时会隐藏多少个其他应用。
用户可以选择"允许本次会话"或"拒绝"。批准只在当前会话有效。如果 Claude 同时请求多个应用,可以一次性批准。
对于一些权限范围较大的应用,提示中会显示额外警告,方便用户判断是否值得授予这种级别的访问:
| 警告 | 适用应用 |
|---|---|
| 相当于 Shell 访问权限 | Terminal、iTerm、VS Code、Warp 等终端和 IDE |
| 可以读取或写入任何文件 | Finder |
| 可以更改系统设置 | 系统设置 |
这些应用不会被直接屏蔽,但警告会让用户做出更明智的决定。
另外,Claude 的控制等级也因应用类别而异:浏览器和交易平台通常是只读 的,终端和 IDE 只能点击,其他应用则获得完全控制。
工作流程是怎样的?
理解计算机使用的运行流程,有助于预判 Claude 的行为,也方便在必要时进行干预。
一次只能有一个会话
计算机使用功能持有一个全机范围内的锁。如果另一个 Claude Code 会话已经在控制电脑,新的尝试会失败,并提示哪个会话持有锁。需要先结束或退出那个会话。
工作时会隐藏其他应用
当 Claude 开始控制屏幕时,桌面上其他可见的应用会被自动隐藏,这样 Claude 只能与已批准的应用交互。不过终端窗口会保持可见,并且被排除在截图范围之外------用户可以看到整个操作过程,而 Claude 永远看不到自己的输出。当 Claude 完成当前回合后,被隐藏的应用会自动恢复。
随时可以停止
当 Claude 获得控制锁时,macOS 会弹出一个通知:"Claude 正在使用你的电脑 · 按 Esc 停止"。无论在哪个界面,按下 Esc 键 就能立即中止当前操作。或者在终端中按 Ctrl+C 也行。两种方式都会让 Claude 释放控制锁、恢复被隐藏的应用,并把控制权交还给用户。Claude 完成操作后,会再次弹出一个通知。
安全机制与信任边界
与沙箱化的 Bash 工具不同,计算机使用功能直接运行在真实的桌面上,能访问用户批准的应用。Claude 会检查每一步操作,并标记屏幕上可能存在的"提示注入"风险。不过,信任模型确实有所不同。
内置的安全护栏可以在不依赖配置的情况下降低风险:
- 按应用批准:Claude 只能控制当前会话中用户明确批准的应用。
- 哨兵警告:那些可能获得 Shell、文件系统或系统设置访问权限的应用,在批准前会被明确标记。
- 终端排除在截图外:Claude 永远看不到终端窗口,因此会话中出现在屏幕上的提示无法被反馈给模型。
- 全局退出键:Esc 键可以从任何位置中止计算机使用,而且按键事件被直接消费,不会被潜在的提示注入用来关闭对话框。
- 锁文件:同一时间只有一个会话可以控制电脑。
示例工作流
验证原生构建
在对 macOS 或 iOS 应用进行修改后,可以让 Claude 一次性完成编译和验证:
"构建 MenuBarStats 目标,启动它,打开偏好设置窗口,验证间隔滑块是否能更新标签。完成后给偏好设置窗口截个图。"
Claude 会依次执行 xcodebuild、启动应用、与 UI 交互,最后汇报结果。
重现布局 bug
当某个视觉 bug 只在特定窗口大小下出现时,让 Claude 自己去找:
"设置模态框在窄窗口下会裁剪底部。把应用窗口缩小直到能复现这个问题,截一张裁剪状态的图,然后检查模态框容器的 CSS。"
Claude 会调整窗口尺寸、捕获出错状态、并读取相关样式表。
测试模拟器中的流程
不用写 XCTest 代码,也能驱动 iOS 模拟器:
"打开 iOS 模拟器,启动应用,点一遍引导页,然后告诉我有没有哪个页面加载超过一秒。"
Claude 会像真人用鼠标一样控制模拟器。
与桌面版的差异
Claude Code CLI 和 Claude Desktop 共享同一个计算机使用引擎,但存在一些区别:
| 功能 | Desktop 版 | CLI 版 |
|---|---|---|
| 支持平台 | macOS 和 Windows | 仅 macOS |
| 启用方式 | 设置 > 通用中切换 | 在 /mcp 中启用 computer-use |
| 禁止应用列表 | 可在设置中配置 | 暂不支持 |
| 自动取消隐藏 | 可选 | 始终开启 |
| Dispatch 集成 | Dispatch 生成的会话可用 | 不适用 |
常见问题
提示"Computer use is in use by another Claude session"
另一个 Claude Code 会话持有锁。要么等那个会话完成任务,要么退出它。如果那个会话已经崩溃,锁会在 Claude 检测到进程消失后自动释放。
macOS 权限弹窗反复出现
授予屏幕录制权限后,macOS 有时需要重启请求该权限的进程。完全退出 Claude Code,然后启动一个新会话。如果问题依旧,打开"系统设置 > 隐私与安全性 > 屏幕录制",确认终端应用已列出并已开启。
computer-use 没有出现在 /mcp 列表中
该服务器只在符合条件的环境下显示。请检查:
- 是否在 macOS 上?CLI 版计算机使用不支持 Linux 或 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参数的非交互模式无法使用计算机使用。
Claude Code 的计算机使用功能把命令行的边界推到了图形界面内部。对于 macOS 上的开发者来说,这意味着更少的上下文切换------写代码、编译、测试、调试视觉问题,都可以在同一次对话中完成。虽然目前还有平台和计划的限制,但它已经展示出一种可能性:未来的编程助手,不再只是"告诉你怎么做",而是可以直接"替你做到"。