OpenAI“光速打脸”:Codex CLI 弃用 TypeScript,拥抱 Rust

OpenAI的AI编码神器Codex CLI用Rust重写,放弃了之前的TypeScript。原因:Rust性能更强,安全性更高,且能摆脱对Node.js的依赖。

原文标题:18天光速打脸!OpenAI刚夸TypeScript最合适,转头就用Rust重写Codex CLI

原文作者:AI前线

冷月清谈:

OpenAI 近期正式推出了 AI 编码神器 Codex,并且宣布用 Rust 重写 Codex CLI,旨在提升性能、安全性并摆脱对 Node.js 的依赖。尽管此前 OpenAI 的工程师还认为 TypeScript 是最适合 Codex CLI 的语言。此次重写的主要原因在于,Rust 能够提供零依赖安装、更好的沙箱化处理、更高的性能以及使用现有 Rust 实现模型上下文协议(MCP)的能力。尽管 Rust 开发难度较高,但越来越多的组织,包括 Vue.js 和 X(原 Twitter),都在使用 Rust 重写其关键组件,以追求更高的效率和性能。

怜星夜思:

1、OpenAI 工程师 Fouad Matin 短时间内对 Codex CLI 使用的编程语言的看法发生了转变,从 TypeScript 到 Rust,你觉得这背后最主要的原因是什么?除了文章中提到的几点,还有没有其他可能性?
2、文章中提到了多个项目用 Rust 重写以提升性能,你觉得 Rust 这种“重写浪潮”会成为未来的趋势吗?在哪些场景下,用 Rust 重写是值得的?
3、OpenAI 在 Codex CLI 中使用 Rust 进行沙箱化处理,Linux 采用 Landlock,macOS 沿用 sandbox-exec,这两种方案有什么区别?在安全性方面,你认为哪种方案更胜一筹?

原文内容

整理 | 华卫

刚刚,OpenAI 正式对外推出了 AI 编码神器 Codex,其目前向 ChatGPT Plus 用户开放。据悉,Codex 在限定时段内提供宽松的使用额度,但在需求高峰期间,可能会对 Plus 用户设置速率限制,以确保其能广泛可用。

并且,现在 Codex 可以在任务执行过程中访问互联网了,用户可用其安装基础依赖项、运行需要外部资源的测试、升级或安装构建新功能所需的软件包等。互联网访问功能将向 ChatGPT Plus、Pro 和 Team 用户开放,之后也将支持企业版用户。不过,该功能日常默认处于关闭状态,在创建新环境或编辑现有环境时可随时启用。

“我们不再处于集成开发环境(IDE)时代了。我们进入了自主开发时代。”有网友激动地表示,“这是一个能自行搜索、安装、编码、测试、修复错误并发布的 AI。”此前 OpenAI 的 CEO Sam Altman 曾坚称,到今年年底,AI 模型将能够超越初级软件工程师。

值得一提的是,在发布推出 Codex 前,OpenAI 首先宣布了用 Rust 重写 AI 命令行编码工具 Codex CLI 的消息,称此举可提升性能和安全性并避免对 Node.js 的依赖。尽管这对部分用户而言, “可能令人沮丧或构成障碍”。

“最合适”编程语言改了两次,

主导者刚入职一年

Codex 是一款实验性编码代理工具,既可以在 ChatGPT 的网页浏览器中运行,也能通过 Codex CLI 在本地运行。其采用基于聊天的用户界面,CLI 支持两种模式:交互式(通过 codex 命令前缀触发)和非交互式静默模式(可用于持续交付管道,如生成更新日志)。

据介绍,Codex CLI 可通过 WSL(适用于 Linux 的 Windows 子系统)在 MacOS、Linux 或 Windows 上运行。该工具专为习惯使用终端的开发者设计,他们既需要 ChatGPT 级别的推理能力,又希望拥有真正运行代码、操作文件和迭代开发的能力——且所有操作都在版本控制下进行。简而言之,它是理解并执行代码仓库的“聊天驱动型开发工具”,可充分发挥 o3、o4-mini 等模型强大的推理能力,且具有以下特性:

  • 零配置启动:只需提供 OpenAI API 密钥即可使用;

  • 全自动审批机制:默认禁用网络访问并启用目录沙箱,确保安全可靠  ;

  • 多模态交互:支持上传截图或图表以实现功能需求。

现在,Codex CLI 在 GitHub 上是完全开源的,当前已获 27.9k 个 Star。据发布者称,“Codex CLI 是一个仍在积极开发中的实验性项目,目前尚不稳定,可能存在漏洞、不完整的功能或会进行重大变更。我们正与社区公开共建该项目,并欢迎:错误报告、功能请求、拉取请求、积极反馈。”

项目链接:https://github.com/openai/codex

同时,我们注意到,当前 Codex CLI 项目中代码占比最高的是 Rust 语言。“我们一直在努力将 Codex CLI 重写为 Rust”,这一消息的来源是 OpenAI 工程师、Codex CLI 项目维护者 Fouad Matin 。

值得注意的是,Matin 加入 OpenAI 刚一年左右。在 Matin 的个人介绍页面显示,作为一名软件工程师和产品设计师,他目前在 OpenAI 从事安全工作。此前,他参与创立了 Indent、VotePlz 和 StrongIntro 三家科技公司,并曾在 Segment 领导产品和工程开发。

去年 6 月,当时还是 AI 安全公司 Indent 联合创始人和 CEO 的 Matin 在 X 和 Reddit 上宣布:"我们已经加入 OpenAI,致力于使 AGI 安全可靠!"彼时, OpenAI  刚解散了"超级对齐"团队,其安全问题再次成为焦点,因而决定重组安全团队。

而就在半个多月前,Matin 还在 Reddit 针对“为什么用 TypeScript 而不是 Python 编写 Codex CLI 工具”的问题时这样回复:TypeScript 是其非常熟悉且最适合 UI 的语言,即使该 UI 在终端中。当时,Matin 还没有明确表达“要更换语言重写”的计划,只表示,“在不久的将来,我们会有一个高性能的引擎,可以绑定不同的语言,这样人们就可以决定用自己喜欢的语言进行扩展。”

为何要用 Rust 重写?

目标:尽可能高效

然而,几天前,Fouad Matin 突然在 GitHub 上透露,Codex CLI 的源代码原先主要是用 TypeScript 编写并在 Node.js 上运行,但其团队现在已经用 Rust 进行了完全重写。

“我们想使用最好的工具来完成这项工作。Codex CLI 配备了简洁的终端 UI,借助基于 React 的 ink 框架可以轻松实现快速开发和迭代,但该项目的核心是‘代理 ’工具,也就是在循环中调用模型。 ”

Matin 指出,尽管当前基于 React 和 TypeScript 的版本易于编写和交互,但其“目标是让软件组件尽可能高效” ,改用 Rust 能带来以下四个方面的关键改进:

  • 第一是零依赖安装。当前版本需 Node.js 22 或更高版本,这样的要求可能对部分用户构成障碍;

  • 其次是需要沙箱化。在 macOS 上,Codex CLI 的命令由 Apple Seatbelt(sandbox-exec)包装,在可配置的沙箱环境中运行;Linux 版默认未沙箱化,OpenAI 建议在容器中运行它。而在 Rust 版本,OpenAI 创造了一种对 Rust 命令进行沙盒处理的方法,在 macOS 上仍然沿用 sandbox-exec,Linux 则采用 Landlock(https://docs.kernel.org/userspace-api/landlock.html);

  • 第三是性能优化。无需运行时垃圾回收,内存需求更低;

  • 第四是能够使用现有的 Rust 实现 MCP(模型上下文协议)。Codex CLI 将同时支持作为 MCP 客户端和服务器。

不过,基于 Rust 的 Codex CLI 仍可通过 JavaScript、Python 等其他语言进行扩展,具体细节尚未公布。据 Matin 称,至少在 Codex CLI 的 Rust 版本达到“体验和功能对等”之前,其将继续并行开发原始 TypeScript 版本和修复 Bug。

Rust 重写浪潮又起

Rust 作为系统级语言,本质上比 Node.js 使用的 V8 JavaScript 引擎上运行的代码更高效。但相应的代价是,其开发难度更高,因此生产力可能低于 TypeScript 或 JavaScript。根据大多数调查,JavaScript 和 Python 是更加流行的编程语言,而 Rust 的知名度较低。

然而,当前 OpenAI 并非唯一看重 Rust 效率的组织。近期用 Rust 重写的浪潮又猛烈起来,尤其是在追求性能提升的工具领域。

5 月底,Vue.js 创始人尤雨溪(Evan You)发布了 Rolldown-Vite——Vite 本地开发服务器和构建工具的新版本。尤雨溪表示,Vite 目前底层使用 Rollup.js 打包工具,而用 Rust 实现的 Rolldown 替换后,“生产构建时间减少 3-16 倍,构建过程中的内存使用最多减少 100 倍”。

马斯克也对 Rust 青睐有加,前几天在推出消息传递工具 XChat 时,宣布其已用 Rust 完成技术重构,支持加密功能、消息自毁功能、音视频通话以及发送任何类型文件的能力。

上个月,AI 编码工具 Zed 用近 60 万行 Rust 代码重新将自己构建了一遍,并声称其做到了“目前市场上速度最快的 AI 代码编辑器”。此外,空间机载系统等安全关键领域正在持续进行应用 Rust 的研究。

参考链接:

https://devclass.com/2025/06/02/node-js-frustrating-and-inefficient-openai-rewrites-ai-coding-tool-in-rust/

https://github.com/openai/codex/discussions/1174

声明:本文为 InfoQ 整理,不代表平台观点,未经许可禁止转载。

活动推荐

6 月 27~28 日的 AICon 北京站将继续聚焦 AI 技术的前沿突破与产业落地,围绕 AI Agent 构建、多模态应用、大模型推理性能优化、数据智能实践、AI 产品创新等热门议题,深入探讨技术与应用融合的最新趋势。欢迎持续关注,和我们一起探索 AI 应用的无限可能!


今日荐文

图片

你也「在看」吗?👇

这个问题有点硬核啊!简单来说,Landlock 就像一个更精细化的权限管理系统,可以更严格地限制程序能做什么。sandbox-exec 就像一个老牌的保安,经验丰富,但可能没那么灵活。

我觉得 Landlock 在安全性上应该更胜一筹,因为它更细致,可以防止一些 sandbox-exec 防不住的攻击。但 sandbox-exec 的兼容性更好,毕竟在 macOS 上用了这么多年了。

OpenAI 这么做,可能是想在安全性和兼容性之间做一个平衡吧!

咳咳,作为一个安全小白,我只能说:安全这玩意儿,没有绝对的安全!

Landlock 和 sandbox-exec 都是为了提高安全性,但最终的安全程度,取决于具体的配置和实现。如果配置不当,再牛逼的技术也可能被绕过。

所以,我觉得 OpenAI 用这两种方案,更多的是一种“双保险”策略。万一其中一种方案失效了,还有另一种方案可以兜底。这就像我们平时备份数据一样,多一份备份,多一份安心!

我觉得 Fouad Matin 的转变主要还是出于对性能和安全性的极致追求。文章里提到了 Rust 在这方面的优势,比如零依赖安装、更好的沙箱化处理。但我觉得还有一点可能没提到,那就是 Rust 社区在 AI 安全方面的积累,说不定 OpenAI 看中了这一点,想借 Rust 重写来加强 Codex CLI 的安全性。

当然,也不排除 Fouad Matin 加入 OpenAI 后,对内部的技术选型和资源有了更深入的了解,这才做出了改变。毕竟,技术决策很多时候是受团队能力和可用资源影响的。

Matin 大佬的转变,我觉得很正常啊,技术本来就是不断演进的嘛!

可能一开始用 TypeScript 是为了快速原型开发,毕竟上手快、社区成熟。但随着 Codex CLI 越来越复杂,性能瓶颈就暴露出来了。这时候,Rust 的优势就显现出来了,不仅性能高,而且内存管理也更安全。

打个比方,就像我们平时搭乐高,一开始随便拼个造型,后来想要做一个精密的机械结构,那就得换更专业的零件了!

Rust 的性能优势是毋庸置疑的,但它真的适合所有项目吗?我觉得未必。

举个例子,如果你的项目是一个快速迭代的 Web 应用,那用 Rust 重写可能就得不偿失了。毕竟,JavaScript 的开发效率更高,生态也更完善。而且,对于 Web 应用来说,大部分性能瓶颈都在前端和数据库,而不是后端语言本身。

所以,我觉得 Rust 更适合那些对性能要求非常苛刻,而且需要长期维护和演进的项目。比如操作系统、数据库引擎、编译器等等。

与其说是“重写浪潮”,不如说是“Rust 的春天”来了!

以前大家觉得 Rust 难学、难用,但现在 Rust 的生态越来越完善,社区也越来越活跃。而且,随着 WebAssembly 的发展,Rust 还可以直接编译成 Web 应用,这大大拓宽了 Rust 的应用场景。

我觉得,在未来的 5-10 年,Rust 会成为一门非常重要的编程语言,尤其是在云计算、边缘计算等领域。所以,现在开始学习 Rust,绝对是一项非常有价值的投资!

这个问题问得好!Landlock 和 sandbox-exec 都是沙箱技术,但设计理念和实现方式有所不同。

sandbox-exec 是 macOS 上历史悠久的沙箱方案,它通过读取配置文件来限制进程的权限。Landlock 则是 Linux 上一种较新的沙箱方案,它利用 Linux 内核提供的安全特性,允许进程在运行时动态地限制自己的权限。

从安全性方面来说,Landlock 的优势在于它可以精确地控制进程对文件系统的访问,而且是运行时动态控制,更加灵活。sandbox-exec 则依赖于配置文件,配置不当可能会导致安全漏洞。

但需要注意的是,Landlock 依赖于较新的 Linux 内核版本,兼容性可能存在问题。sandbox-exec 则在 macOS 上已经非常成熟,稳定性更好。

总体来说,Landlock 在安全性方面更有潜力,但 sandbox-exec 目前更稳定可靠。OpenAI 同时采用这两种方案,也是出于对不同平台的兼容性和安全性的综合考虑。

Rust 重写这个事情,我觉得要辩证地看。

一方面,Rust 确实有很多优点,比如性能高、安全性好。但另一方面,重写的成本也很高,包括时间成本、人力成本、风险成本等等。

所以,在决定用 Rust 重写之前,一定要仔细评估 ROI(投资回报率)。如果重写带来的收益远大于成本,那就可以考虑。但如果收益不明显,或者风险太大,那就还是维持现状比较好。毕竟,稳定才是最重要的!

个人感觉,这波操作也可能是 OpenAI 的一次技术尝试。毕竟,Codex CLI 还是个实验性项目,用不同的语言重写,可以更好地评估各种技术方案的优劣,为未来的产品开发积累经验。

而且,OpenAI 这么大的公司,肯定不缺尝试新技术的资源。说不定,他们还想通过 Rust 重写来吸引更多的 Rust 开发者加入呢!