OpenAI が Codex CLI に書いたハードウェア要件は遠慮がちです。最低 4GB、推奨 8GB。この一文が保証するのはプロセスが立ち上がることだけであり、リポジトリで「コードを読む → ファイルを直す → テストを回す → コミットする」まで完走できることではありません。推論はクラウド側です。メモリを食い潰すのは、ローカルで立ち上げる インデックス、テスト、Docker、Xcode、MCP の子プロセスです。
先に結論:8GB はスクリプト、ドキュメントサイト、単一サービスの小さなリポジトリ向け。日常の Web プロジェクトの快適ラインは 16GB。モノレポ、iOS、「Codex + コンテナ + ブラウザ MCP」を同時に載せるなら 32GB。公式数字は起動の敷居であり、プロジェクトのチェックリストではありません。
2026年9月9日時点でも、Codex 公式インストール手順は macOS 12+ / Ubuntu 20.04+(Windows は WSL2)、メモリは 最低 4GB、推奨 8GB と書いています。CLI 本体はすでに Rust のネイティブバイナリで、アイドル時は数百 MB 程度です。Claude Code や Cursor と同じで、高いのは「Agent プロセス」ではなく、Agent が手を動かすたびに起動するローカルツールチェーンです。別の Agent の購入スペックを見たいなら、Claude Code 16GB / 24GB / 64GB 実測を対照してください。プライベートな PR レビュー基盤なら別記事です:OpenCode Review 4GB / 8GB / 16GB 選定。本稿が答えるのは一事だけです。Codex CLI は 8 / 16 / 32GB で、どの種類のプロジェクトを最後まで終えられるか。
公式の 4GB / 8GB は起動できることしか保証しない
「推奨 8GB」を「8GB ならどんなプロジェクトでも書ける」と読むのが、いちばん多い誤解です。公式表が解いているのは、OS + Node / ランタイム依存 + Codex プロセス自体が生き残れるかどうかです。次のような実作業は対象外です。
- リポジトリに
node_modules、DerivedData、.next、あるいは数万のソースがある。Agent はパスで読み、ツールで検索する; - 「落ちた CI を直して」と頼むと、
npm test、pytest、xcodebuildを実行する; - Playwright / Chrome DevTools / XcodeBuild MCP を入れていると、セッションごとに Node のプロセスツリーがもう一本立つ;
- ブラウザ、IDE、ローカル dev server も同時に開いている——これらは「最低 4GB」に入っていない。
推論は OpenAI 側で起きるので、GPU を大きくしても助けになりません。ローカルメモリが決めるのは、ツールチェーンが立つ場所があるかどうかです。同じ公式文が、スクリプト用リポジトリと iOS モノリスで真逆の体感になる理由でもあります。
メモリの内訳:CLI、インデックス、子プロセス、MCP
インタラクティブなセッションの常駐メモリは、四枚の請求書に分けられます。分けて見ると、いきなりメモリを足す前に、どこを切るべきかが分かります。
| 請求書 | 典型的な規模 | いつ暴騰するか | 8GB での戦略 |
|---|---|---|---|
| Codex CLI 本体 | 0.4–1.2 GB | 超長セッション、内部状態が回収されない | タスクが終わったら /new するか終了する |
| リポジトリ読み取り / インデックス | 0.3–2 GB | 巨大リポジトリ、無視していないビルド成果物 | .gitignore を整え、作業ディレクトリを狭める |
| 起こされた子プロセス | 1–12 GB | npm / Docker / xcodebuild | Agent にコンテナとシミュレータを起こさせない |
| MCP プロセスツリー | 0.5–数 GB | ブラウザ、Xcode、回収されない子 Agent | デフォルトはオフ、使うときだけオン |
コミュニティには、すでに無視できない報告があります。約 1.2GB のローカルリポジトリで、Codex ネイティブランタイムの匿名 RSS が 18GB、さらには 29GB まで膨れ、cgroup に殺された報告があります(openai/codex#21233)。もう一系統は MCP のライフサイクルです。セッションをサスペンドしたあと、あるいは子 Agent が終わったあと、npx / Playwright / xcodebuildmcp のプロセスツリーが残る。16GB 機は孤児プロセスにスワップへ引きずり込まれます。だから「32GB なら安全」も成立しません——反応できる時間が長くなるだけです。
ここが「何 GB のパソコンを買うか」系の記事との違いです。チップ型番でマシンを勧めるのではなく、プロジェクトのツールチェーンで帳簿を付けます。
実測の進め方:3段階の上限、6つのプロジェクト
同じ Codex CLI(ChatGPT ログイン、デフォルトのコーディングモデル)で、固定した 6 つのタスクを、8 / 16 / 32 GiB の利用可能メモリにそれぞれキャップして回しました。Linux 側は systemd-run --scope -p MemoryMax=、macOS 側はアクティビティモニタのメモリプレッシャーとスワップを対照しました。指標は四つだけです。Codex + 子プロセスのピーク RSS、激しいスワップが始まったか、タスクを終えられたか、ウォールクロック時間。
6 つのプロジェクトは、開発者が本当に Agent へ投げる仕事を意図して選びました。Hello World ではありません。
- P0 空セッション:
codexをコールドスタートし、リポジトリ構造を一問。テストは走らせない。 - P1 小さな Python CLI:約 180 ソースファイル。パースバグを直し、
pytest -qを回す。 - P2 中規模 Next.js:約 800 ソースファイル。API ルートを一本追加し、
npm test(E2E ブラウザなし)。 - P3 P2 + Docker Compose:Postgres + アプリコンテナ。Codex にマイグレーションを直させ、スタックを再起動させる。
- P4 iOS App:中規模 UIKit プロジェクト。画面を一箇所直し、
xcodebuildを実行(シミュレータ一式は起動しない)。 - P5 P2 + Playwright MCP:ブラウザ MCP を開き、ページを見ながらコンポーネントを直させる。
数字はピークの区間であり、計測器の校正値ではありません。環境には OS と薄いターミナルを残し、Chrome タブ 40 枚は同時に開いていません。Slack、Figma、dev server 3 本がまだ載っているなら、下表の各グレードをさらに一段上へ見積もってください。
横断結果:成功、停滞、強制終了
| プロジェクト | 8GB | 16GB | 32GB | ピーク RSS(約) |
|---|---|---|---|---|
| P0 空セッション | 順調 | 順調 | 順調 | 0.5–0.9 GB |
| P1 小さな Python + pytest | 終えられる | 余裕 | 余裕 | 1.6–2.4 GB |
| P2 Next.js + 単体テスト | 終えられるが、ページング開始 | 順調 | 順調 | 5.5–7.8 GB |
| P3 + Docker Compose | OOM / 殺される | 終えられるが、メモリプレッシャー黄 | 安定 | 11–15 GB |
| P4 iOS + xcodebuild | 終えられない | コンパイル中にスワップ、たまに固まる | 終えられる | 16–24 GB |
| P5 + Playwright MCP | 終えられない | 短いセッションは可、長いとプロセス漏れ | 短いセッションは安定、それでも回収が必要 | 8–14 GB、リーク後は上限なし |
この表では二つを掴んでください。第一に、P2 はすでに 8GB の天井に近い——Codex が 8GB を食べたのではなく、node のテストプロセスとファイル読み取りが、残りわずかな空きを食い尽くす。第二に、P4 / P5 の失敗のほとんどは「モデルが Swift を書けない / ページをクリックできない」ではなく、コンパイラとブラウザが先にマシンを押し潰し、Agent が最後の一歩まで届かないことです。
8GB で回せるプロジェクト
8GB は公式の「推奨」帯であり、薄型ノート、入門 VPS、旧世代ユニファイドメモリ Mac の現実でもあります。終えられるプロジェクトの特徴ははっきりしています。ソースが少なく、コンテナがなく、IDE シミュレータがなく、テストはプロセス内で完結する。
8GB に任せてよいプロジェクト
- スクリプト、クローラ、小さなツール、単ファイルのリファクタ;
- ドキュメントサイト(Astro / VitePress / Docusaurus)の文言と設定変更;
- 小型の Flask / Express / FastAPI。
pytestか少量の Node 単体テスト。ブラウザは起動しない; codex execで一回限りのパッチ:数ファイル読んで直したら終了。対話 TUI は張らない;- コードレビューのコメント、コミットメッセージ、エラーログをパッチ草案へ翻訳する。
8GB では最初から捨てるプロジェクト
- Docker Desktop / Compose が必要なフルスタック;
- Xcode、iOS シミュレータ、Android エミュレータ;
- Playwright、Cypress、Chrome DevTools MCP;
- pnpm / npm の大型 monorepo 全量テスト;
- 「VS Code とタブ十数枚を開きながら Codex にリポジトリを直させる」——先にページングが始まり、Agent が遅くなったと思ったら、ディスクがメモリの代わりをしている。
8GB でいちばん効く使い方は「大きなリポジトリを我慢して回す」ことではなく、大きなリポジトリを小さなタスクに割ることです。サブディレクトリだけ開く、MCP を切る、codex exec で終えたら去る。対話の長セッションは 8GB の天敵です。セッションが長いほど、内部状態と子プロセスが残りやすい。
16GB で回せるプロジェクト
16GB は、私たちが勧める日常 Web のデフォルト帯です。P2 のような「中規模フロント / フルスタック + 単体テスト」が、この帯でようやくスワップと時間を奪い合わなくなります。Nuvcloud クラウド Mac mini の入門仕様も 16GB ユニファイドメモリで、この帯に揃えています。手元の薄型ノートが足りないときは、Codex セッションをツールチェーンごと専有ノードへ移した方が、8GB ノートで無理をするより楽です。
16GB が楽なプロジェクト
- 中規模 Next.js / Nuxt / Rails / Django。単体テスト + ローカル dev server;
- データベースコンテナ 1 つ、または非常に薄い docker-compose(Redis + Elasticsearch + ブラウザを重ねない);
- VS Code / Zed + ターミナルの Codex。システムに 2–3GB を残す;
- 中程度の Python データスクリプト(pandas の中規模表。ローカルの大きなモデルは載せない);
- 短時間だけ MCP を 1 つ開く(Git やドキュメント検索など)。使い終わったらすぐ閉じる。
16GB でできるが、ルールを守るプロジェクト
P3 は 16GB で「終えられる」——ただしメモリプレッシャーが黄になることを受け入れ、二組目のコンテナを並列しないことが前提です。iOS の小さな変更で、xcodebuild の単一ターゲットだけなら、ときどき押し切れます。シミュレータを開いた瞬間、「スワップ + 固まり」区間に戻ります。Playwright MCP の短いセッション(十数分)は可能です。一度 Ctrl+Z でセッションをサスペンドしたり、連続で spawn_agent したりすると、孤児の Node が 16GB を突き破ります。コミュニティは 16GB + 8GB zram のマシンで、マシン全体が使えなくなる再現をすでに持っています。
一言で言えば、16GB は「メインプロジェクト 1 つ + テスト 1 セット」向け。「メイン + コンテナ一式 + ブラウザ Agent + IDE インデックス」向けではない。
32GB を用意すべきプロジェクト
32GB は見栄のスペックではありません。次のプロジェクトの入場券です。共通点は、Codex は請求書のごく一部で、コンパイラとランタイムが本体であることです。
- モノリス / マルチパッケージリポジトリ:一度の
npm testやturbo run testが Node worker を一列立ち上げる; - iOS / macOS プロジェクト:
xcodebuild、DerivedData、コードインデックス。ピークは簡単に十数 GB。画面を見ながらシミュレータも開くなら、32GB で計画する; - Codex + Docker の複数サービス:アプリ、DB、メッセージキューが同時にあり、Agent にマイグレーションを直させ、スタックを再起動させる;
- ブラウザ MCP / E2E:Playwright や Chrome DevTools がプロセスツリーをもう一本複製する。短いセッションなら 32GB で足りる。長いセッションは、それでも手で回収する;
- 複数セッション並列:2 つの Codex が 2 つのリポジトリを見る、あるいは対話セッション 1 つに
codex execのバッチを足す。
32GB でも、既知の無制限増加は止められません。作業領域そのものが 1GB 級なら、Codex にメモリ上限を付けてください。タスクが失敗する方が、デスクトップごと凍るよりましです。Linux ではこう包めます。
# 32GB マシンで Codex に 20G を残し、残りをシステム / IDE / コンテナへ systemd-run --user --scope \ --same-dir \ --unit="codex-$(date +%H%M%S)" \ -p MemoryMax=20G \ -p MemorySwapMax=2G \ -p CPUQuota=300% \ codex
macOS には同程度に使いやすいユーザー空間 cgroup がありません。現実的なのは、重い仕事を専有のクラウド Mac へ置くことです。手元はエディタと閲覧だけ。Nuvcloud が現在公開しているベアメタル構成は 16GB と 24GB です。24GB は大半の P3 をカバーします。P4 でシミュレータも同時に開くなら、Xcode と Codex を常時起動のリモート機へ置き、16GB ノートに両端を兼任させない方がよい。Agent ノードを別会計にすると、GitHub Actions macOS Runner のホステッドとセルフホストコストとも対照しやすい。CI は使い捨ての runner、対話 Codex は日貸しの Mac mini。両方の帳簿を、満載のノート 1 台に混ぜないことです。
リポジトリとツールチェーンでメモリ帯を選ぶ
先に「16 を買うか 32 か」と聞かないでください。先に聞くのは、リポジトリが何を起動するかです。下表は意思決定の順です。上から、最初に当たった行で止まってください。
| リポジトリ / 働き方 | 選ぶ | 理由 |
|---|---|---|
| スクリプト、ドキュメント、小さなサービス。テストはブラウザを起こさない | 8GB で可 | ピークは通常 < 3GB。公式の推奨メモリ帯でちょうどカバーできる |
| 中規模 Web。単体テスト + dev server 1 本 | 16GB | P2 は 8GB ですでにページング。快適ラインは 16GB |
| さらにデータベースコンテナ 1 つ | 16GB は耐え、32GB の方が安定 | P3 ピーク 11–15GB。16GB は黄、32GB はデスクトップを奪わない |
| iOS / Xcode。単一ターゲットのコンパイルだけでも | 32GB またはリモート Mac | コンパイラの方が CLI より飢える。16GB は運任せ |
| Playwright / ブラウザ MCP をデフォルトで開いている | 32GB + 使い終わったら閉じる | リークはピークより危険 |
2 リポジトリ並列、または TUI + codex exec | 32GB | 請求書をほぼ掛け算し、さらにシステムの余裕を足す |
見落とされがちな変数がもう一つあります。ディスクとファイルディスクリプタです。MCP がリークすると、macOS のデフォルトソフトリミット 256 個で先に Too many open files が出ます。「Codex が壊れた」ように見えて、パイプと孤児プロセスが枠を食っています。メモリの前に、ulimit -n と ps の npx / mcp 本数を見てください。
メモリの少ないマシンでの延命設定
当面 8GB、あるいは逼迫した 16GB で働くしかないなら、先に振る舞いを変え、それから増設を語ってください。次のリストは「効果 / 痛み」順です。
- デフォルトは MCP ゼロ。 ブラウザや Xcode ツールが要るときだけ開き、終わったら
~/.codex/config.tomlから外す。xcodebuildmcp や Playwright をグローバルデフォルトに書かない。 - 対話セッションは短く、バッチは
codex exec。 一回限りのパッチに TUI は不要。バッチは UI 状態を一層節約できる。 - Codex を Ctrl+Z でサスペンドしない。 止めたあとも MCP 子プロセスは生き続けることが多い。終了するか、tmux で detach する。
- 作業ディレクトリを狭める。 4 万ファイルの monorepo ルートではなく、サブパッケージで起動する。
dist、coverage、.nextを読み取り範囲から外す。 - ツール出力を制限する。 コミュニティでは
tool_output_token_limitに上限を付け、一度のログ読みでコンテキストとローカルバッファを同時に破裂させない。 - 「遅い」だけでなくプロセスを見る。
ps aux | egrep 'codex|npx|mcp|node'に MCP ツリーが十数組並んでいたら、孤児を殺してから続ける。
ps aux | egrep 'codex|npx|playwright|mcp-server|xcodebuildmcp' | grep -v egrep # セッション終了後も残っていたら、先に回収してから次を開く # macOS はアクティビティモニタで「メモリ」順に並べ、node と Codex を見る
これらの手順は P4 を 8GB フレンドリーにはしません。ただし P1 / P2 を「起動できる」から「終えられる」へは変えられます。メモリ増設が解くのはピーク、設定変更が解くのはリークと並行です。
Codex をクラウド Mac に移すタイミング
次のうち任意の 2 つが当てはまったら、Codex と重いツールチェーンをノートから切り離してください。
- 手元は 8GB か 16GB なのに、仕事はすでに P3 / P4 / P5;
- 通勤中、Windows ホスト、共有 PC で同じセッションを続けたい;
- Xcode の版を手元の日常開発から隔離したい(SDK 週、beta 週は特に顕著);
- 誰かが MCP をグローバルデフォルトにしており、共有マシンが午後になると孤児で埋まる。
クラウド Mac mini の価値は「高い Codex」ではありません。専有のユニファイドメモリ、ネイティブな Unix ツールチェーン、日単位で捨てられる汚れた環境です。手元の 8GB ノートはメールとドキュメント。16GB または 24GB のリモートノードが Codex、テスト、Xcode を専任する。Apple Silicon は待機電力が低く、一晩タスクを掛けやすい。SSH / VNC は、すでにページングしているノートでぐるぐるを見つめるより正直です。
8GB ノートは出張用、重い仕事は常時起動のクラウド Mac へ
Codex CLI のモデルはクラウドにありますが、npm test、xcodebuild、MCP はあなたが選んだそのマシン上にあります。Nuvcloud のベアメタル Mac mini は 16GB / 24GB ユニファイドメモリ、ネイティブ macOS、専有 Apple Silicon、日次課金——本稿の「日常 Web」と「コンテナ / 軽量 iOS」の2グレードをちょうどカバーします。Agent セッションをリモートノードへ置けば、手元は Docker やシミュレータとスワップを奪い合いません。macOS の安定性も、長いタスクを掛けるのに向いています。
先にプロジェクトでメモリ帯を選び、メモリを膝の上に残すか、ラックに残すかを決めてください—— プランを見る。Codex が奪うのはツールチェーンの資源だけにして、デスクトップの資源は奪わせない。
よくある質問
Codex CLI の公式最低メモリは?8GB で足りるか?
公式インストール文書は最低 4GB、推奨 8GB です。8GB はスクリプト、ドキュメントサイト、小さなサービスの単体テストまで。中規模 Next.js はページングが始まります。Docker、Xcode、ブラウザ MCP は 16GB または 32GB で計画してください。
モデルはクラウドで動くのに、なぜ手元に 32GB が要るのか?
推論はクラウドです。手元のメモリはリポジトリ読み取り、テストプロセス、コンテナ、コンパイラ、MCP 用です。iOS ビルドや Docker Compose のピークは、Codex プロセス本体より一桁高いことがよくあります。
16GB で iOS プロジェクトは回るか?
Swift を数ファイル直し、単一ターゲットの xcodebuild をたまに押し込むなら、終えられることはあります。ただしメモリプレッシャーは黄になり、シミュレータを開くと固まりやすい。Xcode と Codex を 24GB / 32GB かクラウド Mac へ置いた方が予測しやすいです。
MCP を入れたあと、16GB 機がだんだん遅くなるのはなぜ?
よくある原因は、セッションをサスペンドしたあと、あるいは子 Agent が終わったあと、npx / Playwright / xcodebuildmcp が終了しないことです。先に ps で孤児を掃除し、ブラウザ系 MCP はデフォルトで有効にせず、必要なときだけ開いてください。
Codex は自分でメモリを数十 GB まで食べるか?
公開 issue に、中規模の大きなリポジトリで匿名 RSS が 18–29GB まで増え、cgroup に殺された記録があります。32GB は保険ではありません。Linux では Codex に単独の MemoryMax を付けることを推奨します。macOS では、重いセッションを専有マシンへ置く方が安定です。
Nuvcloud に 8GB や 32GB プランはあるか?
現在公開しているベアメタル Mac mini は 16GB と 24GB です。8GB に相当するのは、手元の薄型ノートや VPS です。32GB 級の iOS + シミュレータ負荷は、24GB リモートノードに Xcode を任せ、手元ではコンテナを重ねない方が、32GB ノートをもう一台買うより割安なことが多いです。