← 返回信息流
Agent SkillLINUX DO · Claude·2 小时前

macOS工具让Codex及第三方AI客户端调用本机电脑操作能力

原标题:macOS 上 Codex 使用第三方 API 时,也能用 computer-use 插件

速览

该npm工具cua允许在macOS上通过第三方API或支持MCP的客户端(如Cursor、Claude Code)使用Codex模型时,调用本机的computer-use能力。它通过无障碍树和截图实现窗口状态查看及点击、输入等操作。配置MCP后,AI代理可直接控制本机应用,拓展了AI在桌面端的应用场景。

AI 深度解读

背景

在 macOS 生态中,Apple 推出的 codex 应用(通常指 Apple Intelligence 相关的本地 AI 能力接口)提供了强大的本机自动化控制能力,即 Computer Use 功能。然而,这一能力通常被限制在 Apple 自家的官方客户端或特定集成环境中。

对于开发者而言,日常使用的 AI 编程工具(如 Claude Code、Cursor 等)往往通过第三方 API 或独立的客户端界面与模型交互,而非直接调用 Apple 的原生接口。这导致了一个痛点:即便本地拥有强大的 Computer Use 能力,也无法在主流的第三方 AI 工作流中直接复用。用户需要在“原生 macOS AI 体验”和“第三方高效开发工具”之间做取舍,无法兼得。

核心内容

为了解决上述隔离问题,开发者 @srgay 发布了一个名为 @srgay/computer-use-cli 的开源工具。该工具的核心价值在于充当桥梁,使得在 macOS 上通过第三方 API 或客户端使用模型时,依然能够调用本机的 Computer Use 能力。

技术原理与依赖

该工具本质上是一个命令行接口(CLI),它依赖于以下基础环境:

  1. 操作系统:仅支持 macOS。
  2. 运行环境:需要 Node.js 版本 >= 20。
  3. 核心依赖:本机必须已安装并配置好 codex app-server
  4. 权限要求:运行该工具的终端进程必须被授予 macOS 系统的「屏幕录制」和「辅助功能」权限,以便获取 UI 元素信息和执行操作。

核心功能与交互流程

工具提供了基础的命令行指令来模拟人机交互,基本工作流遵循“感知-行动-确认”的闭环:

  1. 状态感知 (cua state)

    • 获取当前活动窗口的无障碍树(Accessibility Tree)。
    • 自动截取当前屏幕并保存至 ~/.cua-cli/shots/ 目录,为视觉模型提供上下文。
    • 输出结果中包含各个 UI 元素的 element_index
  2. 执行操作

    • 点击 (cua click):结合 element_index 点击特定元素。例如:cua click "计算器" --index 9
    • 输入 (cua type):向指定应用输入文本。例如:cua type TextEdit "Hello 世界"
    • 快捷键 (cua key):发送系统级快捷键。例如:cua key Safari "super+l"(在 Safari 中聚焦地址栏)。
    • 查询应用 (cua list-apps / cua ping):检查服务状态或列出可用应用。

MCP 协议集成

该工具支持 Model Context Protocol (MCP),这使得它可以直接嵌入到支持 MCP 的 AI 客户端中(如 Cursor、Claude Code 等)。

配置示例: 在 Cursor 的 ~/.cursor/mcp.json 中,可以通过配置 mcpServers 来挂载该能力:

{
  "mcpServers": {
    "computer-use": {
      "command": "cua",
      "args": ["mcp"],
      "env": {
        "CUA_CODEX_BIN": "/opt/homebrew/bin/codex",
        "CUA_AUTO_APPROVE": "true"
      }
    }
  }
}
  • CUA_CODEX_BIN:指定本地 codex 二进制文件的路径。
  • CUA_AUTO_APPROVE:设置为 true 可自动批准某些操作,减少交互摩擦。
  • 路径问题:如果客户端无法解析环境变量中的 cua 命令,建议使用 which cua 获取绝对路径(如 /opt/homebrew/bin/cua)进行硬编码配置。

此外,安装后还会附带 cua-mcp-bridgecomputer-use-cli 等组件,但日常交互主要使用 cua 命令。

关键要点

  • 打破生态壁垒:实现了在第三方 AI 客户端(如 Cursor、Claude Code)中调用 macOS 原生 Computer Use 能力,无需局限于 Apple 官方应用。
  • 依赖严格:仅限 macOS,强制要求 Node.js >= 20 及本地 codex app-server 正常运行。
  • 权限敏感:必须手动为终端授予「屏幕录制」和「辅助功能」权限,否则无法获取 UI 树或执行操作。
  • 工作流标准化:通过 state -> click/type/key -> state 确认的标准流程,将非结构化的 UI 操作转化为可被 AI 理解的步骤。
  • MCP 原生支持:通过标准的 MCP 配置即可接入主流 AI 开发工具,降低了集成门槛。
  • 视觉辅助:自动保存截图至 ~/.cua-cli/shots/,为多模态 AI 提供必要的视觉上下文。

意义与影响

这一工具的出现标志着 macOS 本地 AI 能力正在从“封闭的原生体验”向“开放的开发者生态”延伸。

  1. 提升开发效率:对于使用 Cursor 等 AI 编程工具的开发者,AI 助手不再局限于代码层面,而是能够直接操作 macOS 系统界面。这意味着 AI 可以辅助完成系统设置、跨应用数据搬运、UI 测试等更广泛的自动化任务。
  2. 推动 MCP 生态落地:该案例是 MCP 协议在实际场景中价值的有力证明。它展示了如何通过标准化协议,将本地硬件/系统能力抽象为 AI 可调用的工具,促进了 AI 客户端与本地环境的深度融合。
  3. 激发本地 AI 创新:通过开源 CLI 形式暴露 Apple 的底层能力,鼓励了社区开发更多基于 macOS 本地 AI 的自动化脚本和工具,丰富了 macOS 上的 AI 应用形态。
查看原文 →linux.do