Claude Code 的“计算机使用”功能:让命令行助手真正操控macOS桌面

过去,命令行里的人工智能助手能写代码、能跑脚本,但只要碰上图形界面(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,默认是关闭状态。

  1. 打开 MCP 菜单
    在 Claude Code 的交互会话中输入 /mcp,在服务器列表中找到 computer-use,它显示为"已禁用"。
  2. 启用服务器
    选中 computer-use,选择"Enable"。这个设置是按项目保存的,每个需要用到计算机使用的项目只需启用一次。
  3. 授予 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 上的开发者来说,这意味着更少的上下文切换------写代码、编译、测试、调试视觉问题,都可以在同一次对话中完成。虽然目前还有平台和计划的限制,但它已经展示出一种可能性:未来的编程助手,不再只是"告诉你怎么做",而是可以直接"替你做到"。

相关推荐
开开心心loky1 天前
[OC 底层] (二)类与对象底层原理
macos·ios·objective-c·cocoa
Uncertainty!!2 天前
GitNexus安装过程记录:Code Graph RAG 并联动 Claude Code
mcp·claude code·gitnexus
谢斯2 天前
[esp-idf]macos 环境安装 v6.0
macos
idolao2 天前
ANSYS 2024安装教程 Windows版:License Manager配置+环境变量+Fluent汉化指南
macos
Digitally2 天前
4 种方法将 Mac 联系人同步到 iPhone
macos·cocoa·iphone
黄毛火烧雪下2 天前
在 macOS 里配置环境变量
macos
zjeweler2 天前
云服务器部署 Claude Code 实战指南
运维·服务器·claude code
万粉变现经纪人2 天前
如何解决 pip install bitsandbytes 报错 仅支持 Linux+glibc(macOS/Windows 失败)问题
linux·运维·windows·python·scrapy·macos·pip
鹤卿1232 天前
Masonry
macos·ios·cocoa
承渊政道2 天前
【动态规划算法】(简单多状态dp问题入门与经典题型解析)
数据结构·c++·学习·算法·leetcode·macos·动态规划