はじめに
2026年7月9日、OpenAIはCodexをChatGPTデスクトップアプリ(macOS/Windows)に統合したと発表した1。GitHub PRをサイドバーでレビューできるようになったほか、リリースノートでは「rollout token budget(トークン使用量の上限設定と自動中断)」「multi-agent delegation(マルチエージェント委任の制御)」「indexed web search(サーバー承認済みURLのみのライブ検索)」が主要機能として挙げられている。
このうち rollout token budget は、openai/codex リポジトリで実装の経緯を直接追える。3段階のPRに分けてマージされていた。
- #28746 「add rollout token budget configuration (1/N)」(2026-06-18マージ): 設定スキーマ定義のみ。PR本文に 「This PR only defines and validates configuration. It does not track usage, inject reminders, or stop a rollout.」 と明記。
- #28494 「rollout budget implementation (2/N)」(2026-06-18マージ): 使用量の追跡とリマインダー通知を実装。中断(abort)は「stacked follow-up」=次のPRに委譲。
- #28707 「abort turns when rollout budgets expire (3/3)」(2026-06-19マージ): ここでようやく中断ロジックが入る。ただしPR本文には 「This is intentionally a soft boundary: ... every thread aborts at its next usage-accounting boundary.」(ソフトな境界であり、次の使用量チェックのタイミングで中断される)という注記がある。
つまりコード自体は6月19日時点で「上限を使い切ったら中断する」機能としてマージ済みだ。ChatGPTデスクトップの発表から3週間、CLI側でも同じロジックが動いているはずなので、実際にインストールして検証してみた。
この記事で学べること
- Codex CLI 0.144.1 の
codex features listで見える「stable」と「under development」の内訳 -
rollout_budget/token_budgetを有効化する手順と、必須パラメータの発見 - 上限を極端に低く設定しても中断されなかった実測ログ
- ChatGPTデスクトップの発表内容とCLIの実装状況にギャップがあるという事実
前提環境
- OS: Linux(Ubuntu 24.04)
- Node.js: v22.x
- Codex CLI:
@openai/codexv0.144.1(npm) - 認証:
OPENAI_API_KEYをcodex login --with-api-keyで登録
TL;DR
- rollout token budgetの中断ロジックは
openai/codexに 2026年6月19日にマージ済み(PR #28707)。だがcodex features listでは2026年7月11日時点もrollout_budget/token_budgetは 「under development」=デフォルト無効 のまま。 - 有効化すると
features.rollout_budget.limit_tokensの指定が 設定スキーマ上は必須 になる(未指定だとエラーで起動しない)。 - しかし単発の
codex execタスクでは、limit_tokens=500でもlimit_tokens=5でも 1万トークン超を平然と使い切って完走した。中断もリマインダーも出なかった。 - PRの「soft boundary」という設計上、単発execタスクでは使用量チェックの機会自体が訪れない可能性がある。ChatGPTデスクトップ統合の発表文だけを読んで「CLIでもコスト上限を機械的に守れる」と早合点すると事故る、という実測結果。
検証環境のセットアップ
まず CLI をインストールし、バージョンとログイン状態を確認する。
npm install -g @openai/codex
codex --version
# => codex-cli 0.144.1
printenv OPENAI_API_KEY | codex login --with-api-key
codex login status
# => Logged in using an API key - sk-proj-***
feature flag を一覧する
Codex CLI には codex features list というサブコマンドがあり、実装中の機能も含めて一覧できる。ChatGPTデスクトップの発表で名前が挙がった機能を探すと、以下が見つかった。
codex features list | grep -iE "budget|delegat|rollout|token|websearch|web_search|multi_agent"
multi_agent stable true
multi_agent_mode removed false
multi_agent_v2 under development false
rollout_budget under development false
standalone_web_search under development false
token_budget under development false
web_search_cached deprecated false
web_search_request deprecated false
この時点でひとつ分かることがある。changelog で「マルチエージェント委任を disabled / explicit-request-only / proactive で制御できる」と書かれていた multi_agent は すでに stable で常時有効。一方、コスト管理の要である rollout_budget と token_budget、そして indexed web search に対応する standalone_web_search は 3つとも under development のままデフォルト無効 だった。同じ発表文の中でも機能の成熟度にはかなりの差がある。
rollout_budget を有効化してみる
feature flag を有効化するコマンドは用意されている。
codex features enable rollout_budget
codex features enable token_budget
Enabled feature `rollout_budget` in config.toml.
Under-development features enabled: rollout_budget. Under-development features are incomplete
and may behave unpredictably. To suppress this warning, set
`suppress_unstable_features_warning = true` in ~/.codex/config.toml.
Enabled feature `token_budget` in config.toml.
...
Error: features.rollout_budget.limit_tokens is required when rollout_budget is enabled
~/.codex/config.toml に [features] rollout_budget = true は書き込まれたものの、直後のコマンド実行で「limit_tokens を指定しないと動かせない」というエラーが出た。設定スキーマ自体はきちんと存在している。ここまでは「実装途中だが作り込まれている」という印象だった。
実測: 上限を守ってくれるか
-c オプションで limit_tokens を指定し、codex exec(非対話実行)でタスクを投げてみる。まずは 500 トークン。
codex exec --skip-git-repo-check \
-c features.rollout_budget.limit_tokens=500 \
"List the first 20 prime numbers, one per line, with a short comment on each."
結果、20行のコメント付きリストが最後まで生成され、末尾にはこう表示された。
tokens used
11,132
上限500に対して実測11,132トークン。中断もリマインダーも一切出なかった。 念のため、上限をさらに極端な 5 にして、より長いタスク(300語のエッセイ生成)でも試した。
codex exec --skip-git-repo-check \
-c features.rollout_budget.limit_tokens=5 \
"Write a 300-word essay about the history of the Roman Empire."
tokens used
11,522
結果は同じだった。上限を5トークンに設定しても、ローマ帝国史のエッセイが最後まで生成され、11,522トークン消費して正常終了した。エラーも警告も、budgetを使い切ったことを示すメッセージも出力されなかった。token_budget を同時に有効化していたにもかかわらずである。
なぜ動かないのか
PR #28707 の「soft boundary」という説明が手がかりになる。中断は即座には起きず、「次の使用量チェック(usage-accounting boundary)」のタイミングで発火する 設計だとPR本文に書かれている。多数のツール呼び出し・複数ターンにまたがる長いエージェントセッションなら、途中のどこかでこのチェックが走り中断されるだろう。しかし今回試した codex exec は「1プロンプト→1レスポンスで完結する非対話タスク」であり、レスポンスが生成し切られるまで次の使用量チェックの機会がそもそも訪れなかった可能性が高い。
さらに codex features list を見ると、rollout_budget と token_budget は実装コードがマージされて3週間以上経った今も 「under development」のまま(=デフォルト無効、suppress_unstable_features_warning を求める警告つき)で、multi_agent のように stable へは昇格していない。コードはあるのに機能フラグが上がっていないのは、まさに「単発 codex exec のような境界チェックが発生しにくいケースで機能しない」ことをOpenAI自身が把握しているからかもしれない——あくまで推測だが、PRの設計意図と実測結果は矛盾しない。
ChatGPTデスクトップ統合の発表文だけを読むと「上限を設定すれば安全にコストを制御できる」と受け取りやすいが、実際には タスクの形(単発exec vs 長い多ターンセッション)によって効くかどうかが変わる、という注意点がある。
実務への示唆
現時点(Codex CLI 0.144.1)で codex exec のような単発タスクに rollout_budget / token_budget を過信するのは避けたほうがよい。代わりに以下のような運用が現実的だ。
-
codex execの出力末尾に出るtokens usedをログに落とし、外部スクリプトで閾値監視する - OpenAI 組織のUsage APIやダッシュボードで日次上限をアカウント側から強制する
- 長時間の対話的セッション(多ターン・マルチエージェント)で使う場合は改めて中断が効くか再検証する
-
codex features listを定期的に確認し、対象フラグがstableに昇格したタイミングで再検証する
まとめ
- rollout token budget の中断ロジックは
openai/codexに2026年6月19日(PR #28707)にはマージ済みだったが、codex features listでは2026年7月11日時点もrollout_budget/token_budgetは「under development」のまま。 - 単発の
codex execタスクではlimit_tokens=5に設定しても中断されず、11,522トークン消費して正常終了した(limit_tokens=500でも同様に11,132トークン)。 - PRの「soft boundary」という設計上、単発execタスクでは使用量チェックの機会自体が訪れない可能性がある。長い多ターンセッションでは挙動が異なるかもしれない。
-
multi_agentは同じ発表内の機能でもすでにstable。ChatGPTデスクトップの発表文だけで機能の完成度を判断せず、codex features listで個々のフラグの成熟度を確認する習慣が実務では重要。 -
codex execはOPENAI_API_KEYをcodex login --with-api-keyで登録するだけで動く。手元で同じ検証を再現できる。
著者視点の発見ポイント
筆者が最初に想定していたのは「limit_tokens を低く設定すればすぐにエラーで止まる」だった。実際に試すまでは、コスト管理機能として素直に信用しかけていた。中断されない実測結果を見た時点で「バグか、未実装か」のどちらかだと思ったが、openai/codex のPR履歴(#28746 → #28494 → #28707)を遡ると、中断ロジック自体は6月19日にきちんとマージされていることが分かった。ここで初めて「機能が無い」のではなく「soft boundary という設計上、単発execタスクでは境界チェックの機会が訪れない」という、より解像度の高い仮説にたどり着けた。ニュース発表の要約だけで終わらせず、実装のPR本文まで遡って一次情報を確認したことで、「動かない」という結果を「なぜ動かないと考えられるか」まで踏み込んで説明できた。
参考リンク
- Codex is now part of the ChatGPT desktop app(OpenAI公式) — ChatGPTデスクトップ統合・PRレビューサイドバーの発表(2026-07-09)
- PR #28746「add rollout token budget configuration (1/N)」 — 設定スキーマ定義(2026-06-18マージ)
- PR #28494「rollout budget implementation (2/N)」 — 使用量追跡・リマインダー実装(2026-06-18マージ)
- PR #28707「abort turns when rollout budgets expire (3/3)」 — 中断ロジック実装・soft boundaryの設計説明(2026-06-19マージ)
- Codex Changelog(OpenAI Developers) — 公式changelog
- @openai/codex(npm) — 本記事で使用したCLIパッケージ
-
Codex is now part of the ChatGPT desktop app(OpenAI、2026-07-09) ↩