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 上的开发者来说,这意味着更少的上下文切换------写代码、编译、测试、调试视觉问题,都可以在同一次对话中完成。虽然目前还有平台和计划的限制,但它已经展示出一种可能性:未来的编程助手,不再只是"告诉你怎么做",而是可以直接"替你做到"。

相关推荐
数据知道2 小时前
claw-code 源码分析:从 REPL 到服务端——CLI / HTTP(SSE) / LSP 多入口如何共享同一颗 runtime 心?
python·网络协议·http·ai·里氏替换原则·claude code
数据知道19 小时前
claw-code 源码分析:Tool Pool 组装——默认策略、过滤、MCP 开关如何影响「可用工具面」?
python·claude code·claw code
beyond阿亮20 小时前
Claude Code零基础入门安装使用指南
人工智能·ai·claude code
老兵发新帖20 小时前
软件开发国内常用镜像源配置及回退方法(MAC版)
macos·软件工程
程序消消乐20 小时前
第一章:Claude Code 记忆系统——架构总览与四种记忆类型
大数据·架构·agent·claude code
程序消消乐1 天前
第三章:Claude Code CLI 语义召回机制与后台自动抽取代理
agent·claude code
qq_411262421 天前
ESP32-C5 软件配置MAC 地址
macos
数据知道1 天前
claw-code 源码详细分析:Hooks + Plugins + Skills——扩展三角里,哪一层该稳定、哪一层该开放?
网络·python·ai·claude code
鸠摩智首席音效师1 天前
如何在 MacOS 上安装 PostgreSQL ?
数据库·macos·postgresql