UStackUStack
open-codex-computer-use icon

open-codex-computer-use

open-codex-computer-use 是开源“电脑使用”服务的 MCP 服务器封装,让 AI 代理在 macOS/Linux/Windows 上执行桌面 GUI 操作。

open-codex-computer-use

open-codex-computer-use 是什么?

Open Computer Use (open-codex-computer-use) 是一个开源“Computer Use”服务,以 MCP (Model Context Protocol) 服务器的形式封装。它允许 AI 代理或任何 MCP 客户端在 macOS、Linux 和 Windows 上运行 GUI 计算机操作。

该项目受 OpenAI 的 Codex Computer Use 启发。它在系统 Accessibility API 之上实现非侵入式“CUA”(计算机使用自动化)行为,然后通过 MCP 暴露该功能,以便不同代理客户端驱动它。

主要特性

  • 计算机操作的 MCP 服务器封装:提供 MCP 端点,以便 MCP 客户端请求 GUI 操作。
  • 跨平台计算机使用 (macOS、Linux、Windows):设计用于跨桌面操作系统运行计算机自动化。
  • 基于 Accessibility 的自动化:使用 Accessibility 作为非侵入式 CUA 行为的底层机制。
  • CLI 风格的“工具调用”接口:支持列出应用、查询应用状态(例如按应用名称)和执行操作(如按键)的命令。
  • 入门引导和权限检查:包含 doctor 命令,用于检查权限,并在缺少所需访问权限时显示入门引导行为。

如何使用 open-codex-computer-use

  1. 在您的机器上安装并使其可供您的代理/客户端使用

    • 通过写入 ~/.codex/config.toml 并运行以下命令安装到 Codex:
      open-computer-use install-codex-mcp
      
    • 或者使用 MCP JSON 配置手动添加到您的 MCP 客户端:
      {
        "mcpServers": {
          "open-computer-use": {
            "command": "open-computer-use",
            "args": ["mcp"]
          }
        }
      }
      
  2. 授予所需权限

    • macOS 上,必须运行一次并授予 AccessibilityScreen Recording 权限。
    • Windows 和 Linux 上,该页面指出无需额外步骤。
  3. 通过 MCP 工具调用使用

    • 示例:列出应用
      open-computer-use call list_apps
      
    • 示例:获取 TextEdit 的应用状态
      open-computer-use call get_app_state --args '{"app":"TextEdit"}'
      
    • 示例:在单个进程中运行多个步骤(重用 element_index 状态),成功操作之间带有休眠:
      open-computer-use call --calls '[{"tool":"get_app_state","args":{"app":"TextEdit"}},{"tool":"press_key","args":{"app":"TextEdit","key":"Return"}}]'
      

使用场景

  • 从 AI 代理 (MCP 客户端工作流) 驱动本地桌面应用:代理使用 MCP 工具调用检查应用状态并在 macOS/Linux/Windows 上触发 GUI 操作。
  • 跨客户端重现“Codex 风格”的计算机使用行为:仓库指出,“open-computer-use”在 Codex App 和 Codex CLI 中用作 Computer Use,与官方体验匹配。
  • 验证和排查权限问题:使用 open-computer-use doctor 检查是否缺少所需访问权限,并了解入门提示。
  • 批量短 GUI 交互序列:在单个进程中运行多步骤操作序列,以便中间状态(如 element_index)可在步骤间重用。
  • 平台特定测试:仓库包含演示,展示 Linux 上的 Computer Use 以及通过 MCP 与 Gemini CLI 的集成。

常见问题

  • 此处“封装为 MCP”是什么意思? 该项目通过 MCP 服务器接口暴露其计算机使用功能,因此 MCP 客户端可以调用工具执行 GUI 操作。

  • 需要授予权限吗? 该页面指出,在 macOS 上需要运行一次并授予 AccessibilityScreen Recording;Windows 和 Linux 无需此步骤。

  • 如何将其连接到我的代理? 您可以使用提供的安装命令将其安装到特定客户端(例如 Codex),或通过 mcpServers 下的 MCP JSON 配置手动配置。

  • 可以调用单个工具或运行序列吗? 可以。该页面展示了单个工具调用(如 list_appsget_app_state)以及通过 open-computer-use call --calls--calls-file 的多步骤序列示例。

  • 有内置的设置健康检查方式吗? 有。仓库包含 open-computer-use doctor 用于权限检查。

替代方案

  • open-browser-use(浏览器专注替代方案):如果您对浏览器使用而非桌面 GUI 自动化感兴趣,仓库指向“open-browser-use”。
  • 其他用于计算机/浏览器自动化的 MCP 服务器集成:如果您已标准化使用 MCP,请寻找暴露 GUI 自动化工具的替代 MCP 服务器——根据其支持的 OS 和自动化后端定位。
  • 进程内自动化库(非 MCP):某些设置不在 MCP 下使用直接桌面自动化 API/库,而是在单个应用/代理运行时中;这不同于需要更紧密集成而非 MCP 网络边界的方案。