ステータスラインの拡張性を、Claude CodeとCodex CLIで比べてみた話

Claude CodeとCodex CLIは、どちらもターミナル(CLI)で使うと、画面下部のステータスラインにコンテキストの使用量や利用枠の残量を表示できます。ただし拡張できる範囲は大きく違い、Claude Codeはスクリプトで表示内容を自由に組み立てられる一方、Codex CLIは用意された項目から選ぶ方式でした。実際に両方を設定し、画面を見比べてわかったことをまとめます。

背景・課題

賑やかなゲージ表示のClaude Code画面と、隣のシンプルなCodex CLI画面を見比べる子ギツネ

Claude Codeには、ステータスラインに常時ゲージを表示する設定があります。実行しているのは~/.claude/settings.jsonstatusLine.commandから呼び出すstatusline.pyというスクリプトです。コンテキストの使用率・5時間枠・週次枠・Fable専用枠の4項目を、Braille文字によるゲージ付きで描画します。

同じ感覚でCodex CLIの残量も常に見えるようにしたいと思い、Codex CLI側でも同じような設定ができないか気になりました。Codex CLIにも/statuslineというコマンドと設定項目があることは知っていましたが、実際に何をどこまで表示できるのかは試していませんでした。

やったこと

settings.json→statusline.pyとconfig.toml→status_lineの設定を対比するイラスト

実際に設定してみると、Claude Code側は~/.claude/settings.jsonstatusLine.commandに任意のスクリプトのパスを指定するだけでした。指定したスクリプトが標準入力でJSONを受け取り、標準出力に返した文字列がそのままステータスラインになります。実運用のstatusline.pyは、このJSONから使用率を読み取ってゲージを描画しています。

対してCodex CLI側は、~/.codex/config.toml[tui] status_lineに、表示したい項目名を配列で並べる方式でした。設定パスはCODEX_HOME環境変数で変更でき、未設定時はこの~/.codex/config.tomlが既定になります。context-usedweekly-limitのような項目名を指定すると、その項目がステータスラインに並びます。

対話式のピッカー/statuslineを使うと、26種類の項目をトグルで選び、矢印キーで並び順を変えながら、その場でプレビューして決められます。表示する項目そのものは、この画面から自分で選べる仕組みでした。両方の設定を実際に組んで、画面を見比べました。

結果

Claude Codeのステータスライン実画面。ctx・5h・7d・fableの4項目をBrailleゲージで表示

実際の画面を見ると、Claude Code側には4項目が並びます。コンテキスト6%・5時間枠残り78%(2時間57分後にリセット)・週次枠残り40%(5日5時間後にリセット)・Fable専用枠残り41%(5日5時間後にリセット)を、それぞれBrailleゲージ付きで表示していました。

Codex CLIのステータスライン実画面。Context使用率・週次残量・モデル名・Fastモードをテキスト表示

一方、Codex CLI側の画面にはContext 0% used · weekly 98% left · gpt-5.6-terra low · Fast offと表示されました。コンテキスト使用率・週次枠の残量に加えて、現在のモデル名とFastモードのオン/オフが並ぶ構成です。ゲージは無く、数値と状態がテキストで並ぶだけでした。

どちらも4項目という点は同じですが、中身の作り方は対照的です。Claude Code側は好きな情報を好きな見た目で描画できるのに対し、Codex CLI側は用意された項目を選んで並べる方式でした。

つまずきと対処

虫眼鏡でCodexの公開ソースコードを覗き込み、項目数と任意コマンド不可に気づく子ギツネ

Codex CLIのconfig.tomlにもstatus_lineの設定項目があるのに、なぜClaude Codeのようなゲージ表示を再現できないのか、最初は仕組みがわかりませんでした。設定ファイルをいじるだけでは、任意のスクリプトを呼び出す方法が見当たらなかったためです。

そこでOpenAI Codexの公開ソースコードを確認しました。codex-rs/tui/src/bottom_pane/status_line_setup.rsには、ステータスラインに表示できる項目がStatusLineItemという列挙型で定義されています。モデル名・Gitブランチ・利用枠・トークン数など26種類が並んでいましたが、コード全体を見てもシェルコマンドや外部プロセスを呼び出す仕組みは見当たりませんでした。

この列挙型の中身からわかるのは、Codex CLIのstatus_lineが用意された項目を選んで並べる設定であり、任意のスクリプトを実行する仕組みではないということです。Claude CodeのstatusLine.commandとは、拡張の入り口そのものの作りが違いました。

まとめ

「選ぶだけの近道」と「自由に組み立てる道」の分かれ道で考える子ギツネ

同じ「ステータスライン」という機能でも、Codex CLIは用意された項目から選ぶ設計、Claude Codeはスクリプトで自由に組み立てる設計でした。設定の手間をかけずに残量を見たいならCodex CLIの組み込み項目で十分ですし、表示内容やゲージの形まで自分好みに作り込みたいならClaude Codeの仕組みが向いています。

どちらが優れているという話ではなく、拡張性の設計思想が違うという理解が、両ツールを併用するときの判断材料になります。開発ツールの選定や運用体制づくりのご相談は受託開発サービスで承っています。気になる点があれば、お問い合わせからお気軽にご連絡ください。