Context leftが測定するもの
すべてのCodexチャットにはコンテキストウィンドウがあります。これは、モデルが一度に考慮できる会話、ツールの出力、および指示の量です。Codexの設定リファレンスでは、ウィンドウ設定を「アクティブなモデルで利用可能なコンテキストウィンドウトークン」と説明しています。
Context leftの数値は、そのウィンドウのうち現在のチャットでまだ使用されていない割合を示します。チャットが成長するにつれて低下し、チャットがコンパクション(圧縮)されたり、新しいチャットを開始したりすると上昇します。
これはチャットごとの数値です。別のターミナルで開いている2つ目のチャットには独自の数値があり、新しいチャットを開始すれば新鮮なウィンドウが与えられます。
ではないもの
これはアカウントの使用量ではありません。Codexはそれを別途追跡しており、コマンドリファレンスには「アカウントのトークン使用量を確認、またはレート制限リセットを使用する」ための /usage がリストされています。ステータスラインにはレート制限用の独自の項目があります。アカウントが制限に近くてもチャットに余裕がある場合もあれば、その逆もあります。
Codexによる数値の計算方法
Codexのターミナルクライアントはオープンソースであり、計算式はコード内に記述されています。2つの詳細が、なぜこの数値が紛らわしくなるのかを説明しています。
固定のベースラインが確保されている
計算では、12,000トークンの固定ベースラインが確保されます。Codexは、パーセンテージを算出する前に、ウィンドウ全体および使用中のトークンからこの数値を差し引きます。その結果、チャットの最初の12,000トークンは数値に影響を与えません。
これが、最初のメッセージを送る前になぜ新しいチャットが上端から始まるのかという理由です。Codexは作業を開始する前に AGENTS.md ファイルと独自の指示を読み込みます。ドキュメントには「Codexは作業を行う前に AGENTS.md ファイルを読み込む」とあります。これらの素材はスペースを占有しますが、ベースライン内にあるため、使用済みとして表示されません。
つまり、この数値は相対的なものです。ウィンドウ全体の生の割合ではなく、ベースラインより上の部分に残っている容量を測定しています。
アクティブなモデルのウィンドウに従う
パーセンテージは、使用しているモデルのコンテキストウィンドウに対して測定されます。ウィンドウが大きければ、同じ会話でも占める割合は小さくなります。モデルを切り替えたり、デフォルト設定が変更されたりした後に数値が違って見えるのはそのためです。
クライアントに表示するパーセンテージがない場合は、代わりに使用されたトークン数が表示されます。
ウィンドウを埋めるもの
自分で入力したもの以外も含め、新しい内容がチャットに入るたびに数値は低下します。
- ツール出力: テストの実行、ログ、ファイルの読み取り、コマンド出力はすべてコンテキストに蓄積されます。長いデバッグセッションでは、自分のメッセージよりもツール出力の方が多くなることがあります。
- Codexが読み取るファイル: コードを理解するためにCodexが開く各ファイルがスペースを占有します。
- 会話: あなたのメッセージと、計画を含むCodexの返答。
- 推論 (Reasoning): 推論を行うモデルはトークンを消費し、それらも計算に含まれます。
数値が低下すると何が起こるか
コンパクション(圧縮)
チャットが制限に近づくと、Codexはそれをコンパクションします。つまり、チャットを継続できるように以前のやり取りを要約します。自分自身で実行することも可能です。コマンドリファレンスでは /compact を「表示されているチャットを要約してトークンを解放する」と説明しており、期待される結果は「Codexが以前のやり取りを簡潔な要約に置き換え、重要な詳細を保持しつつコンテキストを解放する」となっています。
コンパクションの後、数値は上昇します。以前のやり取りは要約に変わっています。
下端に達する前にコンパクションが起こる場合がある
自動コンパクションが実行されるポイントは、ウィンドウ設定とは別の設定になっています。Codexの設定リファレンスでは model_auto_compact_token_limit を「自動履歴コンパクションをトリガーするトークンしきい値(未設定の場合はモデルのデフォルトを使用)」と説明しています。
ドキュメントには、このしきい値がフッターのゼロ表示と一致するとは書かれていません。この数値は、コンパクションへの正確なカウントダウンではなく、どれくらいの余裕があるかの目安として扱ってください。数値が底をつくのを待ってから行動しようとすると、すでにコンパクションが発生している可能性があります。
しきい値のカウント方法に関する関連設定もあります。リファレンスによると、 model_auto_compact_token_limit_scope は「自動コンパクションのしきい値が、アクティブなコンテキスト全体をカウントするか(total、デフォルト)、または引き継がれたコンパクションウィンドウのプレフィックス後の増加分のみをカウントするか(body_after_prefix)を制御する」とされています。
最近の計算処理の修正
2026年10月29日にリリースされたCodex 0.166.0には、この領域の修正が含まれています。リリースノートには「再開(resume)やフォーク(fork)をまたいで推論トークンの計算を保持し、早期のコンパクションを回避するようにした」とあります。以前のバージョンで、再開またはフォークしたチャットが予想より早くコンパクションされた場合は、アップデートが第一歩となります。
数値をより詳細に確認する
/status
フッターには1つの数値が表示されますが、 /status を使えばより多くの情報が得られます。コマンドリファレンスによると、これは「セッション設定とトークン使用量」を表示し、「アクティブなモデル、承認ポリシー、書き込み可能なルート、および残りのコンテキスト容量」を確認するために使用されます。
フッターの数値に驚いたときは、これを実行してください。また、どのモデルがアクティブであるかも確認できるため、数値の急激な変化の理由が判明することがよくあります。
/statusline
フッターに何を表示するかは自分で選択できます。 /statusline コマンドでピッカーが開き、ドキュメントには「利用可能なステータスライン項目には、モデル、モデル+推論、コンテキスト統計、レート制限、gitブランチ、トークンカウンター、セッションID、現在のディレクトリ/プロジェクトルート、Codexバージョンが含まれる」と記載されています。選択内容は config.toml の tui.status_line に保存されます。
長いセッションで作業する場合は、コンテキスト統計項目とモデル項目を隣同士にしておくとよいでしょう。そうすれば、数値の跳ね上がりの理由がすぐ隣で確認できます。
容量が少なくなる前にすべきこと
数値が低下すること自体は問題ではありません。リスクは、チャットがコンパクションされたときに、書き留めていなかった詳細が要約によって消えてしまうことです。
チャットで判明したことを書き留める
決定事項、その背後にある理由、発見した制約事項などは、要約によって圧縮される可能性があります。長いチャットがコンパクションされる前に、リポジトリに適用される内容であれば AGENTS.md に、そうでなければ他の場所にメモとして残しておきましょう。
コピーをエクスポートする
/export は会話を保存します。ドキュメントには「Codexは完全な会話をMarkdownとしてエクスポートする」とあります。クリップボードにコピーしたり、ファイルに保存したりできます。Codexチャットのエクスポートガイドでは、その後のトランスクリプトの扱いについて解説しています。
コンパクションせずに振り返る
チャットを変更せずに自分用に要約が欲しい場合は、 /recap を使用してください。コマンドリファレンスでは、これを「コンテキストをコンパクションせずにチャットの内容を把握する」方法として説明しています。
自然な区切りでコンパクションする
ステップの途中で自動的に発生させるよりも、ステップの終わりに自分で /compact を実行する方が賢明です。重要な部分がすでに確定しているタイミングを自分で選ぶことができます。
ブランチを作成するか、新しく始める
新しい方向に進む場合は、 /fork でチャットを新しいものにコピーします。Codexチャットのフォークガイドで、何が引き継がれるかを解説しています。メインのチャットに追加すべきでない簡単な質問には、 /side で一時的なサイドチャットを開始します。無関係な作業には、 /new で新しいチャットを開始してください。
長期的なタスクを追跡している場合は、 /goal を使うことでチャットが進んでもターゲットを保持し続けることができます。Codexのゴールモードとはで、その仕組みを説明しています。
よくある間違い
数値をアカウントの使用量制限と読み違える。 これは現在のチャットウィンドウの空き容量です。アカウントの使用量は /usage で確認します。
新しいチャットで指示のコストが表示されると期待する。 ベースラインによって最初の12,000トークンは隠されるため、新しいチャットは上端から始まります。
ゼロになるまで何もしない。 コンパクションは独自のしきい値で実行されます。余裕があるうちに行動しましょう。
モデル間で数値を比較する。 各モデルのウィンドウに対して測定されるため、同じチャットでもモデルが異なれば数値も異なります。
すべてを1つのチャットに詰め込む。 1タスク1チャットにすることで、数値の意味が保たれ、要約の焦点も絞られます。
解決策:Context leftを「作業を保存する合図」として扱う
ステップ1:コンテキスト統計を見える場所に配置する
/statusline を実行し、フッターにコンテキスト統計とモデル項目を表示させます。数値が予期せず動いたときは /status を確認してください。
ステップ2:コンパクション前に決定事項を保存する
数値が低くなったとき、またはステップの終わりに、チャットで確定したこと(決定事項、理由、制約)を書き留めます。リポジトリのルールは AGENTS.md に記述します。完全な記録が必要な場合はチャットをエクスポートしてください。
ステップ3:意図的にコンパクションするか新しく始める
自動コンパクションを待つのではなく、自然な区切りで /compact を実行します。新しいタスクには新しいチャットを開始し、各チャットを1つの作業単位に保ちます。
MemoryLakeでのセットアップ
Context leftの数値は1つのチャットを測定するものです。チャットがコンパクションされたり終了したりしたときに残るのは、あなたが書き留めた内容だけです。1つのリポジトリを超えて適用される決定事項や、他のツールで必要になる決定事項には、チャットの外、かつ単一の AGENTS.md の外に場所が必要です。
MemoryLake は、それらの決定事項を1つのリストとして維持するための記憶レイヤーであり、Codexや、接続した ChatGPT、Claude Code などの他のアシスタントから利用可能です。
エントリーはあなた自身の言葉で記述します。Codexのチャット、 AGENTS.md ファイル、Codexのローカルメモリ、またはベンダーのストレージから内容が読み取られたり、書き込まれたり、削除されたりすることはありません。コンパクションとContext leftの数値は、OpenAIが説明している通りに機能し続けます。
ステップ1:APIキーを作成する
サインインし、ダッシュボードからキーを生成します。このキーは MemoryLake ワークスペースに属し、 ChatGPT や Codex のサインインとは別物です。

ステップ2:最初の記憶をアップロードする
解決策のステップ2で書き留めた内容のうち、1つのリポジトリを超えて適用されるもの(決定事項、理由、制約)から始めます。1エントリーにつき1項目、日付を入れます。

ステップ3:AIとエージェントを接続する
Codexや、使用している他のアシスタントを接続します。決定事項は、次のチャットでも、コンパクションの後でも、他のツールでも利用可能になります。

Codex memories v2 ガイドでは、Codex自体がマシン上に保持するものについて解説しており、これはあなたが維持するリストと併用できます。
実務で何が変わるか
第一の変化は、数値を見て慌てることがなくなる点です。これがベースラインを除いた、アクティブなモデルのウィンドウに対する1つのチャットの余裕を測定していることがわかっているからです。
第二に、コンパクションによって決定事項を失うことがなくなります。自然な区切りで重要なことを保存するため、要約にそれらを引き継がせる必要がありません。
第三に、チャットがより短く、より集中したものになります。1チャット1タスクにすることで、数値が意味を持ち続け、作業の再開も容易になります。
CodexにおけるContext leftのベストプラクティス
フッターにコンテキスト統計を表示する。 /statusline を使用してください。
数値が跳ね上がったら /status を確認する。 モデルの変更をまず疑ってください。
使用量と混同しない。 アカウント制限は /usage で確認します。
低くなる前に行動する。 自動コンパクションには独自のしきい値があります。
自然な区切りで決定事項を保存する。 リポジトリのルールは AGENTS.md に、その他はメモに残します。
後で必要になる長いチャットはエクスポートする。 /export で会話全体をMarkdownとして保存できます。
Codexをアップデートする。 バージョン 0.166.0 では、再開やフォーク後の早期コンパクションの原因となる計算処理が修正されました。
結論
CodexにおけるContext leftは、現在のチャットのコンテキストウィンドウに残っている容量の推定値です。オープンソースのクライアントは、固定のベースラインを確保した上で、アクティブなモデルのウィンドウに対してこれを測定します。そのため、新しいチャットは上端から始まり、モデルによって数値が異なります。
数値が低下するにつれてコンパクションが近づきますが、自動コンパクションはゼロではなく独自のしきい値で実行されます。この数値を「合図」として扱いましょう。チャットで行われた決定を保存し、記録が必要ならエクスポートし、自分で選んだタイミングでコンパクションするか新しく始めてください。