Claude Code 学习站

Claude Code CLI 实战:开启 Computer Use 让 AI 接管你的 macOS 屏幕

介绍如何在 Claude Code CLI 中启用内置 `computer-use` MCP 服务器,让 Claude 自主操控 macOS GUI 完成编译、UI 测试、布局调试等任务,并说明安全机制与使用限制。

本页目录10
要点速览
  • computer use 目前仅限 macOS,需要 Pro/Max 订阅、Claude Code v2.1.85+ 及交互式会话,第三方 API 提供商不支持
  • Claude 按精确度优先选工具(MCP → Bash → Chrome → 屏幕控制),computer use 是最后手段
  • 通过 `/mcp` 菜单启用内置 `computer-use` 服务器,首次使用需授权 macOS 的 Accessibility 和 Screen Recording 两项权限
  • 每个 session 需逐应用审批,终端/IDE/Finder/系统设置等高权限应用会显示额外警告
  • 按 `Esc` 或 `Ctrl+C` 可随时中止屏幕控制并自动恢复所有隐藏窗口,终端窗口不会出现在截图中以防提示词注入
  • 内置安全机制包括逐 app 审批、哨兵警告、全局锁文件和全局 Esc 中止键

本文是对官方文档「Let Claude use your computer from the CLI」的中文要点摘要,完整内容以原文为准。原文链接:https://code.claude.com/docs/en/computer-use

功能概述

Computer use 是 Claude Code CLI 的 research preview 功能,目前仅限 macOS,让 Claude 像真人一样操控屏幕:打开应用、点击按钮、截图查看结果。使用前提:

  • Pro 或 Max 订阅(Team / Enterprise 暂不支持)
  • Claude Code v2.1.85+(claude --version 可确认)
  • 仅支持交互式会话,-p 非交互模式不可用
  • 需通过 claude.ai 认证;Amazon Bedrock、Google Cloud Vertex AI、Microsoft Foundry 等第三方提供商不支持

适用场景

场景示例
编译并验证原生应用写 Swift → 编译 → 启动 → 点击每个控件截图
端到端 UI 测试打开 Electron 应用点击注册流程,无需配置 Playwright
复现视觉/布局 bug调整窗口尺寸截图复现,修改 CSS 后再次验证
驱动无 CLI 的 GUI 工具设计软件、硬件面板、iOS Simulator、专有工具

工具优先级

Claude 不会一上来就占用屏幕——它按精确度从高到低选择工具:

  1. 目标服务有 MCP server → 优先使用
  2. 任务可用 Bash 完成 → 直接走终端
  3. 是浏览器任务且装了 Claude in Chrome → 走浏览器扩展
  4. 以上均不适用 → 才启用 computer use

启用步骤

  1. 在交互式会话中运行 /mcp
  2. 找到 computer-use(默认禁用),选择 Enable——设置按项目持久化,同一项目只需配置一次
  3. Claude 首次操控屏幕时,系统会提示授权两项 macOS 权限:
    • Accessibility:允许点击、输入、滚动
    • Screen Recording:允许截取屏幕内容
  4. 授权后点 Try again;授予 Screen Recording 后 macOS 可能要求重启 Claude Code

每次 Session 的应用审批

启用服务器并不意味着 Claude 可以随意控制所有应用。每个 session 中,Claude 首次需要操控某应用时会弹出提示,显示将控制哪些应用、是否请求额外权限(如剪贴板)、工作期间会隐藏多少其他应用。可选择 Allow for this sessionDeny,审批仅在当前 session 生效;若 Claude 同时请求多个应用,可一次性批准。

对以下高权限应用会额外显示警告:

警告内容对应应用
等同于 shell 访问Terminal、iTerm、VS Code、Warp 等终端/IDE
可读写任意文件Finder
可修改系统设置System Settings

警告不会阻止使用,而是让你在审批前明确知晓所授予的权限范围。

工作机制

全局锁:同一时间只有一个 Claude 会话可以控制屏幕。其他会话尝试时会收到提示要求先退出;若占用锁的会话已崩溃,Claude 检测到进程消失后会自动释放锁。

自动隐藏应用:Claude 工作时会隐藏其他可见应用,只与已审批应用交互。终端窗口始终可见且不会出现在截图中,防止屏幕上的内容被循环读取注入。完成后自动恢复所有窗口。

截图自动缩放:无需手动降低分辨率。以 16 英寸 MacBook Pro Retina 为例,3456×2234 自动缩放至约 1372×887,保持宽高比。若截图后文字太小,请在应用内放大字体而非修改系统分辨率。

随时中止:Claude 获得锁后会弹出 macOS 通知「Claude is using your computer · press Esc to stop」。按 EscCtrl+C 立即中止,释放锁并恢复所有隐藏窗口。

安全边界

与沙盒化的 Bash 工具不同,computer use 直接运行在真实桌面上,信任边界有所不同,官方建议阅读 computer use safety guide。

内置防护措施:

  • 逐应用审批:只能控制当前 session 中已审批的应用
  • 哨兵警告:高权限应用在审批前显示额外警告
  • 终端排除截图:防止终端内容被 Claude 读取并注入
  • 全局 Esc:按键由系统消费,prompt injection 无法用它关闭对话框
  • 锁文件:全局唯一,防止多 session 并发控制

典型工作流示例

验证原生构建:让 Claude 编译并点击验证 macOS menu bar 应用的每个控件,最后截图汇报。

复现布局 bug:告诉 Claude「modal 在窄窗口下裁切了 footer」,Claude 调整窗口尺寸复现截图,修改 CSS 后再验证。

测试 iOS Simulator:让 Claude 打开模拟器、点击完整 onboarding 流程并报告每屏加载时间,无需编写 XCTest。

CLI vs Desktop 主要差异

功能DesktopCLI
平台支持macOS + Windows仅 macOS
启用方式设置 > General 开关/mcp 中启用 computer-use
应用黑名单可在设置中配置暂不支持
自动恢复隐藏可选关闭始终开启

常见故障排查

  • computer-use/mcp 中不显示:依次核查——是否为 macOS、版本 ≥ v2.1.85(运行 claude --version)、订阅为 Pro/Max(运行 /status)、通过 claude.ai 认证、处于交互式会话
  • 权限提示反复出现:完全退出 Claude Code 后重新启动;在系统设置 > 隐私与安全 > 屏幕录制中确认终端 app 已列出并启用
  • 锁被占用:结束或退出持有锁的会话;若该会话已崩溃,Claude 会自动检测并释放