なぜCodexはRustで、Claude CodeはBunなのか
本文の状態
日本語全文を表示中
詳細モードで約6分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
Algomatic Tech Blog
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
株式会社 Algomatic の高比良です。
先月、システム変革本部にエンジニアとして参画しました。6 月から新体制となり、毎日が挑戦です。楽しいです。
Algomatic 初夏のアドベントカレンダーの 7 本目の投稿となります。
前回の菊池さんの記事はこちらです!私は自戒しかありませんでした!
さて今回は初夏のアドベントカレンダーということで、最近気になっていた AI コーディングエージェントの実装まわりについて書きます。
はじめに
2025 年半ば、Claude Code が Pro プランのサブスクリプションでも使えるようになって盛り上がり始めていた時期に、私ももれなく Claude Code と Codex の両方を業務で触り始めました。
両ツールはよく対比されますが、黎明期なのもあってか、使用感やアウトプットには違いがあります。それは単なるモデルの差というより、中の設計思想の違いから来ている気がして、ちょっと調べてみたくなりました。
実際、土台の作り方は対照的で、ざっくり言うと、Codex は Rust rewrite によって実行基盤を固め、Claude Code は TypeScript 周辺の product surface を保ちながら Bun executable として配る方向に進んでいます。そこに、それぞれの「AI エージェント」への考えが見えた気がしたので少し小話的に語っていきます。
Codex は Node から Rust に
Codex は、もともと TypeScript と Node.js で書かれており、OpenAI は 2025 年 5 月末、Codex CLI を Rust に書き換えていることを公表しています(GitHub の Discussion #1174 に経緯が残っています)。(Rust は、OS に近い低い層を安全に書くのに向いた言語です。)
書き換えた理由はどれも、「エージェントを長時間、安全に、たくさん動かす」ことに関わっていました。
Node.js を前提にする場合、利用者の環境にランタイムが入っていないと動かず、これが導入の壁になってきます。
次にメモリ周り、エージェントは会話の履歴やツールの実行結果を抱えながら長く動くため、
Node.js のようなランタイム GC(ガベージコレクション)のある環境では、レイテンシやメモリ消費の見通しが難しくなる場面があり、短い処理なら気にならなくても、延々と動くエージェントでは効いてきます。
Rust だと OS のサンドボックスと深く結びつけられる利点もあります。
実際、Codex のリポジトリを覗くと、sandboxing や execpolicy、mcp-server、app-server、network-proxy といった部品が並んでいます。macOS なら Seatbelt、Linux なら Landlock といった OS の隔離機能と合わせているあたりにも、その本気度が滲んでます。
Claude Code は TypeScript を捨てなかった
一方で Claude Code は、npm や TypeScript 周辺の開発者体験を強く持っています。
最近の v2.1.113 リリースノート では、bundled JavaScript を直接動かすのではなく、プラットフォームごとのネイティブバイナリを起動する形に変わったことが明記されています。
さらに Bun 公式 は、Claude Code が Bun executable として配布されていると説明しています。
Bun は高速な JavaScript / TypeScript のランタイム兼ツールキットです。
詰まるところ Claude Code は、TypeScript 的な開発速度や SDK/MCP との親和性を保ちながら、Node.js runtime への依存だけを外したということです。
Claude Code のドキュメント でも、npm でインストールした場合も最終的にはプラットフォーム別のネイティブバイナリが入り、インストール後の claude binary 自体は Node を呼ばないと説明されています。
さらに 2025 年 12 月、Anthropic は Bun を買収しています。Bun 公式ブログでは「Bun が壊れたら Claude Code も壊れる」とまで書かれていて、Bun が Claude Code の土台にかなり深く入っているように見えます。
つまり Claude Code は TypeScript を捨てるどころかその足回りである JavaScript runtime まで自社のインフラに取り込んでいます。
拡張のしかたも同じ方向を向いていて、これは私の所感ですが MCP や SDK など、開発者に近い世界を取りにいっているように見えます。
Node を外した後に見えてくる違い
「結局どちらも、Node がいらない単体の実行ファイルになったんだ」となりますが Claude Code は「単体で動く」という見た目は似ていても、Rust binary と同じ意味で runtime GC が消えるわけではなく面白いのは、Codex は OS に近い言語に書き換え、Claude Code は Bun を自社のインフラに取り込んだことです。
Codex は Rust に書き換えることで、ランタイム GC のない実行基盤、OS のサンドボックス化、プロセス制御といったシステム寄りに。(これは #1174 で OpenAI が説明している理由と重なる)
一方で Claude Code は、TypeScript 周辺の開発者体験を保ちながら、Bun executable として配布し、さらに Bun を Anthropic のインフラとして取り込んでいます。
おわりに
なぜ Codex は Rust で Claude Code は Bun なのか
これは完全に私の感想ですが、
Codex は「安全に深くたくさん動かす」ことに、Claude Code は「TypeScript エコシステムの速さと拡張のしやすさ」に重きを置いたように見えます。
一見すると地味な技術選定ですが、何の言語で書き、どう Node から離れるか「AI エージェントとは何か」をどう見ているかが、少し垣間見れたようで個人的にとても興味深かったです。
自分は普段 AI エージェントを使うとき、ハーネス設計そのものも大事だと思いつつ、究極的な所「自分がゴールを明確に握っておくこと」がかなり重要だと感じています。
何を達成したいのか、そこに向け今 AI が何を掴めていないのか、何を渡すのかを見極めるのは、まだ人間側の仕事だと思ってます。その前提でエージェントの挙動を見ると、それぞれの設計思想の違いも少し見えやすくなると思ってます。
実際自分は二刀流で、体感として、Codex は防御的な実装をしてくれる印象があり、レビューや深いロジックの探索、調査、設計で重宝しています。一方で Claude Code は手元のドラえもんのような感覚で使っています。
次回もよろしくお願いいたします!
Algomatic は 6 月より新体制となり非連続な成長へエンジニアやビジネス職全員が挑戦中です!
ぜひお気軽にカジュアル面談に足を運んでいただけると嬉しく思います!
参考にした主な情報源です。
- Codex の Rust 書き換えの理由:OpenAI の GitHub Discussion「Codex CLI is Going Native」(#1174)
- Codex の公開リポジトリ:openai/codex
- Claude Code が native binary を配るようになった件:Claude Code の v2.1.113 リリースノート
- Claude Code の SDK / TypeScript SDK と platform native binary:Agent SDK overview
- Anthropic による Bun の買収:Anthropic 公式「Anthropic acquires Bun」
- Bun 側の発表:「Bun is joining Anthropic」
- Bun executable の仕組み:Bun single-file executable docs
原文を表示
株式会社Algomaticの高比良です。
先月システム変革本部にエンジニアとして参画しました。
6月から新体制で、毎日が挑戦です。楽しいです。
Algomatic初夏のアドベントカレンダー7本目の投稿となります
前回の菊池さんの記事はこちらです!私は自戒しかありませんでした!
さて今回は初夏のアドベントカレンダーということで最近気になっていた AI コーディングエージェントの実装まわりについて書きます。
はじめに
2025年半ば、Claude CodeがProプランのサブスクリプションでも使えるようになって盛り上がり始めていた時期に、私ももれなくClaude CodeとCodexの両方を業務で触り始めました。
両ツールはよく対比されますが、黎明期なのもあってか、使用感やアウトプットには違いがあります。それは単なるモデルの差というより、中の設計思想の違いから来ている気がして、ちょっと調べてみたくなりました。
実際、土台の作り方は対照的で、ざっくり言うと、Codex は Rust rewrite によって実行基盤を固め、Claude Code は TypeScript 周辺の product surface を保ちながら Bun executable として配る方向に進んでいます。そこに、それぞれの「AI エージェント」への考えが見えた気がしたので少し小話的に語っていきます。
CodexはNodeからRustに
Codexは、もともとTypeScriptとNode.jsで書かれており、OpenAIは2025年5月末、Codex CLIをRustに書き換えていることを公表しています(GitHub の Discussion #1174 に経緯が残っています)。(Rust は、OS に近い低い層を安全に書くのに向いた言語です。)
書き換えた理由はどれも、「エージェントを長時間、安全に、たくさん動かす」ことに関わっていました。
Node.jsを前提にする場合、利用者の環境にランタイムが入っていないと動かず、これが導入の壁になってきます。
次にメモリ周り、エージェントは会話の履歴やツールの実行結果を抱えながら長く動くため、
Node.js のようなランタイムGCのある環境では、レイテンシやメモリ消費の見通しが難しくなる場面があり、短い処理なら気にならなくても、延々と動くエージェントでは効いてきます。
RustだとOSのサンドボックスと深く結びつけられる利点もあります。
実際、Codex のリポジトリを覗くと、sandboxing や execpolicy、mcp-server、app-server、network-proxy といった部品が並んでいます。macOS なら Seatbelt、Linux なら Landlock といった OS の隔離機能と合わせているあたりにも、その本気度が滲んでます。
Claude Code は TypeScript を捨てなかった
一方でClaude Codeは、npm やTypeScript周辺の開発者体験を強く持っています。
最近のv2.1.113 リリースノートでは、bundled JavaScriptを直接動かすのではなく、platformごとのnative binaryを起動する形に変わったことが明記されています。
さらにBun 公式は、Claude CodeがBun executableとして配布されていると説明しています。
Bun は高速な JavaScript / TypeScript のランタイム兼ツールキットです。
詰まるところClaude Code は、TypeScript的な開発速度やSDK/MCPとの親和性を保ちながら、Node.js runtimeへの依存だけを外したということです。
Claude Code のドキュメントでも、npmでインストールした場合も最終的にはplatform別のnative binaryが入り、インストール後のclaude binary自体はNodeを呼ばないと説明されています。
さらに2025年12月、AnthropicはBunを買収しています。Bun 公式ブログでは「Bun が壊れたら Claude Code も壊れる」とまで書かれていて、BunがClaude Code の土台にかなり深く入っているように見えます。
つまりClaude CodeはTypeScriptを捨てるどころかその足回りであるJavaScript runtimeまで自社のインフラに取り込んでます。
拡張のしかたも同じ方向を向いていて、これは私の所感ですがMCPやSDKなど、開発者に近い世界を取りにいっているように見えます。
Nodeを外した後に見えてくる違い
「結局どちらも、Nodeがいらない単体の実行ファイルになったんだ」となりますがClaude Codeは「単体で動く」という見た目は似ていても、Rust binaryと同じ意味でruntime GCが消えるわけではなく面白いのは、CodexはOSに近い言語に書き換え、Claude Code は Bun を自社のインフラに取り込んだことです。
CodexはRustに書き換えることで、ランタイムGCのない実行基盤、OSのsandboxing、プロセス制御といったsystems寄りに。(これは #1174でOpenAIが説明している理由と重なる)
一方でClaude Codeは、TypeScript周辺の開発者体験を保ちながら、Bun executableとして配布し、さらに Bun を Anthropic のインフラとして取り込んでいます。
おわりに
なぜCodexはRustでClaude CodeはBunなのか
これは完全に私の感想ですが
Codex は「安全に深くたくさん動かす」ことに、Claude Codeは「TypeScript エコシステムの速さと拡張のしやすさ」に重きを置いたように見えます。
一見すると地味な技術選定ですが、何の言語で書き、どうNodeから離れるか「AI エージェントとは何か」をどう見ているかが、少し垣間見れたようで個人的にとても興味深かったです。
自分は普段AI エージェントを使うとき、ハーネス設計そのものも大事だと思いつつ、究極的な所「自分がゴールを明確に握っておくこと」がかなり重要だと感じています。
何を達成したいのか、そこに向け今AIが何を掴めていないのか、何を渡すのかを見極めるのは、まだ人間側の仕事だと思ってます。その前提でエージェントの挙動を見ると、それぞれの設計思想の違いも少し見えやすくなると思ってます。
実際自分は二刀流で、体感として、Codex は防御的な実装をしてくれる印象があり、レビューや深いロジックの探索、調査、設計で重宝しています。一方でClaude Codeは手元のドラえもんのような感覚で使っています。
次回もよろしくお願いいたします!
Algomaticは6月より新体制となり非連続な成長へエンジニアやビジネス職全員が挑戦中です!
ぜひお気軽にカジュアル面談に足を運んでいただけると嬉しく思います!
参考にした主な情報源です。
- Codex の Rust 書き換えの理由:OpenAI の GitHub Discussion「Codex CLI is Going Native」(#1174)
- Codex の公開リポジトリ:openai/codex
- Claude Code が native binary を配るようになった件:Claude Code の v2.1.113 リリースノート
- Claude Code の SDK / TypeScript SDK と platform native binary:Agent SDK overview
- Anthropic による Bun の買収:Anthropic 公式「Anthropic acquires Bun」
- Bun 側の発表:「Bun is joining Anthropic」
- Bun executable の仕組み:Bun single-file executable docs
News to Guide
ニュースの次に確認する
発表内容を、現在の料金や仕様と照らし合わせられる関連ガイドです。
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み