Clodex:把 Claude 塞进 Codex CLI 的 Rust 分支
Plz No Ban
Clodex 是 openai/codex 的分支,将 ChatGPT 桌面版 Codex 背后的模型换成 Claude,直接进程内调用 Anthropic Messages API,无需代理或翻译层,桌面应用、语音模式和 ChatGPT 登录均保持不变。
把 Claude 塞进 Codex CLI。一个怪物。Sam 和 Dario 不会手牵手,所以我们替他们牵了。🦞🤝🦞
Clodex 是 openai/codex 的一个分支,其中 ChatGPT 桌面应用 Codex 背后的模型换成了 Claude,在进程内与 Anthropic 的 Messages API 通信。没有代理,没有转换层,没有 TypeScript。桌面应用、语音模式以及你的 ChatGPT 登录完全保持原样;只有后端二进制文件变了。
一天之内,一口气,靠语音做出来的。请相应地看待它。
它做什么
WireApi::Anthropic:codex-rs/anthropic中的一条新线路,将 Codex 的 Responses 风格提示映射到 Anthropic Messages(工具、带签名的思考、提示缓存、图像、原生网络搜索),并将结果作为 Codex 事件流式返回。- 来自 Claude Code 的认证:读取
~/.claude/.credentials.json,就地刷新 OAuth 令牌,遇到 401 重试一次。你的 Claude 订阅就是配额。 - 语音模式继续工作:实时通话在你的 ChatGPT 账户上创建,应答的后端是 Claude。每个实时会话都会附加一段语音模式附录,让 Claude 知道如何作为语音后端行事。
- 子代理完成后会唤醒父代理。
- 在另一个提供商下创建的线程会在当前活跃的提供商上恢复。
在 rust-v0.162.0-alpha.10 之上有十二个提交。git log b496f984f4..HEAD 就是全部故事。
注意
- 只在一台机器上测试过:Arch Linux、ChatGPT 桌面版 26.930(
chatgpt-bin)、捆绑的 Codex CLI 0.162.0-alpha.10。没有别的了。 - 需要桌面应用中已有的 ChatGPT 登录(用于 UI 和语音)以及已有的 Claude Code 登录(用于模型)。
- Anthropic 的 OAuth 是为 Claude Code 设计的。Clodex 把自己伪装成 Claude Code。这是否在你的计划条款范围内,由你决定。
- 未优化的开发构建,约 420 MB 的二进制文件。没有运行测试。没有 clippy。预期会有粗糙之处:引用被丢弃,
apply_patch不会流式输出其 diff,速率限制头被忽略。 - 桌面仍然运行原版
codex-code-mode-host;Clodex 符号链接到它。
安装
git clone https://github.com/ZmoleCristian/clodex cd clodex/codex-rs RUSTFLAGS="-C link-arg=-fuse-ld=mold" cargo build -p codex-cli --bin codex --profile dev-small ln -s /usr/lib/chatgpt/resources/codex-code-mode-host target/dev-small/codex-code-mode-host
冷构建在 8 核上大约 5 分钟;增量构建为 30 到 50 秒。
需要一个包含 Claude 模型的模型目录。把它放在 ~/.codex/catalog.clodex.json(参见 docs/clodex-catalog.example.json)。
桌面将启动的包装器,而不是其捆绑的 CLI:
#!/bin/sh # ~/bin/clodex-codex real=/path/to/clodex/codex-rs/target/dev-small/codex case " $* " in *" app-server "*) exec "$real" "$@" \ -c model_provider=anthropic \ -c model=claude-opus-5-5 \ -c model_catalog_json=$HOME/.codex/catalog.clodex.json ;; *) exec "$real" "$@" ;; esac
启动器:
#!/bin/sh # ~/bin/clodex pkill -f /usr/lib/chatgpt/ChatGPT 2>/dev/null while pgrep -f /usr/lib/chatgpt/ChatGPT >/dev/null; do sleep 0.2; done export CODEX_CLI_PATH=$HOME/bin/clodex-codex exec /usr/lib/chatgpt/ChatGPT "$@"
原版应用、/usr/lib/chatgpt 和 ~/.codex 均未改动。从菜单项启动应用,你得到原版 Codex;用 clodex 启动,你得到 Claude。
为什么
OpenCodex 能用,但它是应用和模型之间一个 48 万行的 TypeScript 代理。Codex 中的接缝是 core/src/client.rs 中的一个 match 分支;把 Anthropic 放在那里更便宜。
上游
此分支跟踪 openai/codex 标签。变基,解决 client.rs、realtime_conversation.rs 和 thread_processor.rs 中的少量冲突,重新构建。上游 README 在 docs/README.upstream.md 中。
来源:Hacker News · github.com