开源复刻OpenAI Codex后台电脑操控能力
速览
团队在一天内分析并开源复刻了OpenAI Codex的Background Computer Use能力。该项目通过MCP协议向AI Agent提供非抢占式后台操控支持,实现了与官方功能相近的自动化交互体验。此举展示了利用AI工具快速解决复杂工程问题的可行性,强调了在AI时代保持解决问题原始冲动的重要性。
AI 深度解读
背景
OpenAI 近期发布了 Codex 的更新,引入了名为 Background Computer Use(后台计算机使用)的功能。这一功能允许 AI 在非抢占式(non-preemptive)的状态下,通过模拟自然的鼠标操作与应用程序进行交互,同时具备后台运行的能力。其流畅的鼠标样式和交互体验给开发者社区带来了极大的震撼。
在此之前,业界对于 AI 控制计算机界面的认知主要局限于通过 Connectors(如 Gmail API 等接口)结合 GUI 模拟(鼠标和键盘事件)来实现。OpenAI 此次发布的方案不仅实现了后台交互,还通过截图和多模态推理来指导下一步动作,展现了极高的产品力。
受此启发,LINUX DO 社区的开发者团队(包括作者及伙伴 Usoon 等)在一天时间内对这一功能进行了逆向分析、复刻,并成功将其开源为 Open Computer Use。该项目旨在为所有 AI Agent 提供非抢占式的计算机控制能力,并通过 MCP(Model Context Protocol)协议对外提供服务。
核心内容
1. 技术逆向与架构分析
团队从分析 Codex APP 的本地文件入手,定位到核心功能模块位于 ~/.codex/plugins/cache/openai-bundled/computer-use/1.0.750/Codex Computer Use.app。该应用体积仅 26.5MB,但承载了核心逻辑。
- 核心组件:发现了一个名为
SkyComputerUseClient的 Client 服务。 - 技术栈:基于 Swift 编写。
- 交互原理:
- 主要利用 macOS 的 Accessibility (AX) 接口与 UI 树进行交互,实现后台操作并截取屏幕图像用于多模态推理。
- 当 AX 接口无法满足需求时,会回退到
osascript(Apple Script)或直接模拟鼠标操作。 - 对外通过 MCP 协议暴露 9 个工具接口。
2. 复刻过程与工具链
团队利用 AI 辅助开发,通过“套娃”式的信息获取和验证,完成了从分析到实现的全过程:
- 信息获取:
- 最初尝试让 Codex 输出工具描述,但存在偏差。
- 随后引入
mitmdump进行抓包,直接捕获 Codex 内部的 System Prompt 和 Tool 定义,实现了严格的参数对齐。 - 通过 CLI 套娃调用,获取官方 MCP 的输入输出样本,用于后续的对比评测和改进。
- 权限与签名绕过:
- 发现
SkyComputerUseClient仅认可特定签名的父进程调用,导致直接通过 MCP Client 调用时进程会崩溃。 - 团队通过 Go 语言编写的 CLI 工具,提取 Codex APP 的签名信息,成功实现了通过命令行直接调用官方 MCP 的能力。
- 发现
- 产品力增强:
- 权限管理:由于是独立 APP,需单独获取 Accessibility 和 Screen & System Audio Recording 权限。团队参考了被 OpenAI 收购的 Software.inc 的做法,实现了丝滑的浮窗权限申请体验。
- 分发与集成:发布至 npmjs,支持
npm i -g open-computer-use一键安装;并封装了插件,支持一键集成到 Codex 的 MCP 或插件系统中。 - 自动化流程:从代码生成、Logo 设计(SVG)、录屏剪辑到发布,大部分环节由 AI 辅助完成。
3. 鼠标动效的逆向工程
功能性复刻完成后,团队致力于还原官方版本中“灵动”的鼠标光标效果。
- 线索挖掘:通过 Twitter 发现 Software.inc 的工程师 Ari 提及该功能由 3 人实现。
- 逆向分析:
- 下载官方演示视频,利用 AI 抽帧分析。
- 通过 Grok 挖掘推文评论,推测关键词如 "calculates natural and aesthetic motion paths"(计算自然且美观的运动路径)。
- 对二进制文件进行逆向工程,分析其内部算法。
- 当前进展:已实现初步版本,包含曲线绘制和移动速度控制,但仍在 WIP(Work In Progress)阶段,旨在完全复刻原版的自然感。
4. 开发哲学:从 Coder 到 Problem Solver
文章强调,AI 时代改变的是解决问题的方法,而非“解决问题的人”这一本质。
- 原始冲动:开发者保留了“Just for fun”的极客精神,享受发现问题、分析信息、验证结果并交付的全过程。
- AI 的角色:AI 提供了强大的“军火库”,但阻碍开发的往往是思维局限。开发者应将自己定位为“解决方案的提出者”,而非单纯的代码编写者(Coder)。
- 上下文的重要性:当 AI 无法解决某个问题时,往往是因为缺乏关键上下文。提供精准的上下文(如抓包数据、签名信息)是人的责任,也是提升 AI 效能的关键。
关键要点
- 项目地址:GitHub - iFurySt/open-codex-computer-use
- 核心能力:实现了非抢占式、后台运行的计算机控制,通过 MCP 协议对外提供服务。
- 技术实现:
- 基于 Swift 开发,利用 macOS Accessibility API 进行 UI 交互。
- 通过抓包(mitmdump)和二进制逆向,严格对齐了官方 9 个 MCP 工具的定义。
- 解决了进程签名验证问题,实现了 CLI 对官方 MCP 的直接调用。
- 用户体验优化:
- 实现了类似 Software.inc 的丝滑权限申请浮窗。
- 提供了 npm 全局安装及一键插件集成方案。
- 鼠标动效:正在通过逆向工程和 AI 辅助,还原官方版本中基于自然路径计算的灵动鼠标效果。
- 开发方法论:
- 利用 AI 进行代码生成、日志分析、Logo 设计及视频剪辑。
- 强调“上下文工程”:通过提供精确的抓包数据和签名信息,引导 AI 解决复杂问题。
- 倡导开发者保持“解决问题”的核心思维,利用 AI 提升效率,而非被 AI 替代。
意义与影响
1. 降低 AI Agent 的交互门槛
Open Computer Use 通过标准化的 MCP 协议,将复杂的 GUI 交互能力封装为简单的 API 调用。这使得任何支持 MCP 的 AI Agent 都能轻松获得“后台操作计算机”的能力,无需关心底层的具体实现细节,极大地推动了 AI Agent 在通用桌面场景下的应用落地。
2. 验证了“AI 辅助逆向与开发”的高效性
该项目展示了在极短时间内(约 12 小时)完成一个复杂功能从分析、逆向、复刻到开源发布的全流程。这证明了在拥有良好上下文和正确方法论的前提下,AI 可以显著加速软件开发和逆向工程的过程,使个人或小团队也能快速响应前沿技术变化。
3. 重新定义开发者角色
文章通过实战案例有力地论证了:在 AI 时代,开发者的核心价值从“编写代码”转向了“定义问题”和“提供上下文”。开发者需要理解系统原理、设计解决方案,并指导 AI 执行具体任务。这种思维模式的转变,是应对 AI 技术冲击的关键。
4. 开源社区的活力与创新
LINUX DO 社区的快速响应和开源分享,体现了开源社区在面对新技术时的敏锐度和协作精神。通过公开技术细节和复刻过程,不仅促进了技术知识的传播,也为其他开发者提供了宝贵的参考案例,推动了整个生态的技术进步。
