Codex 源码解读

逐层拆读 OpenAI 开源的终端编码 Agent Codex CLI 的 Rust 源码(rust-v0.158.0)——从 app-server 架构、agent 内核、工具与沙箱,到扩展机制与终端界面,一边讲怎么用,一边讲怎么实现。

作者 David更新于

Codex 源码解读

Codex CLI(命令行叫 codex)是 OpenAI 开源的终端编码 Agent:在你本机的终端里阅读代码、修改文件、执行命令、调用 MCP 工具,也能用 codex exec 嵌进脚本和 CI。它的主体是 codex-rs/ 下的一个 Rust Cargo workspace,显式列出的成员有 153 个、约 190 万行代码(去掉测试约 82 万行,口径见下文“源码基准”)。

这个专栏把它逐层拆开读。

这个专栏怎么读

每一章尽量走两条线:

  • 怎么用——这个功能在 codex 里长什么样。详细用法站里已经有一本 《Codex 中文手册》,这里只点到为止,并链接到手册的对应页面;
  • 怎么实现——翻到对应 crate 的源码,看它在底层到底怎么做。

侧重结构与数据流:讲清“一件事经过哪些 crate、哪些类型、数据怎么流、边界契约是什么”,而不是逐行贴代码——关键处才引一小段源码点睛。每段摘录都原样取自源码,并在下方注明 路径:行号。

和《从 LLM 到 Coding Agent》配对

站里的 《从 LLM 到 Coding Agent》 讲“一个 Coding Agent 在裸 LLM API 之上该做哪些事”,配了一个从零手搓的教学实现。这本则是同一件事的生产实现:agent 循环、工具、上下文、权限、扩展……教学实现让你看清骨架,生产实现让你看清骨架周围要长出多少东西。不少章节末尾有“和《从 LLM 到 Coding Agent》对照”一节,两边对照着读,收获最大。

同一组里还有 《Grok Build 源码解读》、《OpenCode 源码解读》 等几本同类专栏,最后一部分会把它们放在一起比较。

读者预设:默认你懂一点 Rust(读得下 async、trait、Arc、workspace 分层),知道 tokio 是什么。不熟的语言点会在关键处就地补一句,但不系统教 Rust。读过《Codex 中文手册》会更顺,但不是硬前提。

源码基准

本专栏所有引用以下述快照为准:

项值
仓库github.com/openai/codex
版本Codex CLI 0.158.0(tag rust-v0.158.0,2026-09-28 发布)
commit064c6b8c737f5b41d171fdda80bd9ef10ad06eb3(提交日期 2026-09-27)
许可Apache-2.0
workspacecodex-rs/Cargo.toml 的 members 显式列出 153 个;另有 5 个 crate(windows-sandbox-rs、chatgpt、message-history 与两个测试支撑 crate)作为路径依赖被 Cargo 自动纳入。crate 名是目录名加 codex- 前缀(如 core 即 codex-core)
代码量153 个显式成员共 4,770 个 .rs 文件、约 190 万物理行;去掉测试(tests.rs、*_tests.rs、tests/ 目录与 #[cfg(test)] 块)约 82 万行。自动纳入的 5 个另有约 3.1 万行非测试代码,其中 windows-sandbox-rs 约 1.9 万行
最大的几个 cratetui 约 20.6 万行、core 约 11.4 万行、app-server 约 4.4 万行(均为去掉测试后)

所有路径都相对仓库根,例如 codex-rs/core/src/session/turn.rs;文中指向 GitHub 的源码链接都固定在 rust-v0.158.0 标签上。《Codex 中文手册》也以同一版本为基准。

路线图

  • 第 0 部分 · 导论与全景——Codex CLI 开源的是哪一部分、怎么从源码构建、153 个 workspace 成员怎么分层、读源码前要知道的工程约定,以及贯穿全书的主线:一条消息从按下回车到看到回复的全过程。
  • 第 1 部分 · app-server 与线程——终端界面、codex exec、IDE 与桌面客户端共用的 app-server、它的 v2 协议、守护进程与各种传输,线程的生命周期与会话持久化。
  • 第 2 部分 · Agent 内核——Session 与每轮配置、run_turn 主循环、模型客户端、只追加的上下文历史、压缩、指令组装、模型目录与提供方、任务类型与 Plan 模式。
  • 第 3 部分 · 工具系统——工具的暴露、注册、路由与并行,命令执行与 unified exec、命令解析与安全判断、apply_patch、MCP 工具调用、其它内置工具与 Code mode。
  • 第 4 部分 · 安全:权限、审批与沙箱——权限模型、审批流程,macOS、Linux、Windows 三套沙箱,网络代理、执行策略与自动审查。
  • 第 5 部分 · 扩展机制——配置系统、Skills、Hooks、插件、MCP 客户端、多 agent、扩展 API、记忆,以及从别的 agent 迁移过来。
  • 第 6 部分 · 终端 UI——TUI 架构、输入框、历史记录单元与流式渲染、全屏对话记录与其它界面。
  • 第 7 部分 · 运行形态与工程——exec-server、登录认证、实时语音、遥测、Codex Cloud 与代码审查,以及测试、构建与发布。
  • 第 8 部分 · 收尾——对照《从 LLM 到 Coding Agent》复盘,与 Grok Build、OpenCode 横向比较,读完之后怎么继续。

准备好了,就从 Codex CLI 是什么 开始。

本页目录