mcpField
C
codexwatch

codexwatch

ローカル
github.comデータ・分析03 日前に更新

codexwatch について

codexwatch は OpenAI Codex のローカルログを分析するコマンドラインツールとダッシュボードです。トークン使用量、API 換算コスト、プラン上限、クォータの変化を確認でき、端末内で利用状況を把握したい Codex ユーザー向けです。

主な機能

  1. 01日別・プロジェクト別のトークンとコスト集計
  2. 02ローカルセッションログからプラン上限を取得
  3. 03クォータ変化と説明できない使用量の確認
  4. 04ローカルダッシュボードでのレポート表示
  5. 05予算設定と通知
  6. 06使用データの CSV または JSON 出力

活用シーン

  1. 015 時間および週次上限に対する使用状況の追跡
  2. 02プロジェクトやモデル別のトークン・コスト傾向の確認
  3. 03セッション間の説明できないクォータ変化の調査
  4. 04プロジェクトや期間ごとの使用予算の設定

MCP 対応

`codexwatch mcp` コマンドで MCP サーバーを起動し、使用量の概要、プラン上限、クォータ分析、セッション、日次データ、予算状況をエージェントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"psychofict-codexwatch": {
"command": "uvx",
"args": [
"codexwatch-cli"
]
}
}
}
起動コマンドuvx codexwatch-cli

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypicodexwatch-cli1.0.2

ツール

6

掲載時のツール一覧 · 4 日前に更新

パラメーター型必須説明
periodenumいいえ今日、過去 7 日間または 30 日間、今月、または全期間today | 7d | 30d | month | all

詳細

codexwatch:すべての Codex トークンを一度だけカウント

PyPI バージョン CI MIT ライセンス Python 3.9 以降 依存関係なし

codexwatch は、OpenAI Codex の利用状況を、日別、プロジェクト別、モデル別、セッション別、ツール別のトークン数と API 相当のコスト、現在のプランにおける5時間および週ごとの上限、さらに各上限の1%あたりのコストとともに表示します。デフォルトでは、Codex がすでにお使いのマシンに書き込んでいるセッションログだけを読み込み、ログイン画面を開かず、ネットワークリクエストも行いません。価格の取得と codexhop アカウントの更新は、必要なときに実行するよう指示できます。

pipx install codexwatch-cli  # or: pip install --user codexwatch-cli
codexwatch                   # the overview in your terminal
codexwatch dashboard         # the web dashboard

このマシンにある Codex のログ以外は必要ないため、最初のコマンドを実行すればすぐに利用状況を確認できます。Linux では、クローンしたリポジトリで ./install.sh --tray --desktop を実行すると、アプリメニューの項目、デスクトップショートカット、トレイアイコンも追加されます。

ターミナル上の codexwatch:プランの上限、合計、30日分の一覧、上位のモデルとプロジェクト

ほかとは異なる点

すべての応答を一度だけカウント

Codex は各モデル応答に ID を割り当てます。codexwatch は各行をその ID で識別するため、親セッションの履歴を複製した分岐セッション、サブエージェント、重複したトークンイベント、別のマシンから同期された同じログによって、トークンが二重に加算されることはありません。これらは Codex の利用状況が過剰にカウントされてきた4つの原因であり、それぞれを再現するテストがあります。

プランの上限は自分のログから取得

応答のたびに、Codex はプランのレート制限の状況をセッションログに書き込みます。5時間および週ごとの利用枠がどれだけ埋まっているか、またいつリセットされるかが記録されています。codexwatch はこれらを読み取るため、最新の数値を確認するのにネットワークリクエストもログインも必要ありません。

クォータの詳細分析

各記録が特定の応答に対応しているため、codexwatch はウィンドウ内で消費されたトークン数と、ウィンドウの変化量を比較できます。ウィンドウごと、日ごとの交換レート(プラン利用率1%あたりの API 利用額)と、別のマシンや ChatGPT 自体からの利用など、ローカルログで説明できない増加を示すフラグを確認できます。

大量のログでも高速

行の先頭のバイトで絞り込むため、ツールの出力や推論テキストはデコードされません。また、増え続けるセッションも前回のスキャンが止まった箇所から読み取ります。ビルドに使用したマシンでは、59セッション分の1.85 GBのログを初回スキャンするのに約2秒かかりました(実測、2026-11-04)。2回目以降のスキャンでは、新しい行だけを読み取ります。

確認できる価格

同梱されている価格はすべて、日付と参照ページとともに OpenAI の料金ページから転記しています。公開価格のないモデルは価格不明として表示し、ドル換算の合計から除外します。0ドルとしてカウントすることはありません。Fast モードには Fast ティアの価格を適用し、272K トークンを超えるプロンプトには長文コンテキストの料金を適用します。

ダッシュボード

codexwatch dashboard は 127.0.0.1 でページを開きます。オフラインで動作し、システムのライトテーマまたはダークテーマの設定に従い、作業に合わせて更新されます。

ダッシュボード:5時間と週間のウィンドウ、codexhop アカウント、プラン価値の帯

ページ上部にはプランが表示されます。両方のウィンドウとリセット時刻、直近1時間の消費速度、そのペースでウィンドウが満杯になる時刻、リセット後に使用した金額を確認できます。その下の赤い帯は、直近30日間の使用量とプラン料金を比較します。続いて、選択した期間の合計、日別チャート、モデルとプロジェクト、クォータの詳細分析、最近のセッション、曜日と時間帯のマップ、ツール呼び出し、作業の実行方法(CLI、IDE、または codex exec、Standard または Fast、メインセッションまたはサブエージェント)が表示されます。

クォータの詳細分析:週間ウィンドウの1パーセントあたりのドル額と、ログでは説明できない増加

ライトテーマとスマートフォン

ライトテーマのダッシュボード スマートフォン幅で表示したダッシュボード

共有カード

codexwatch card は今月分の 1200 × 630 画像を書き出します。ダッシュボードの「共有カード」ボタンからは、SVG または PNG として保存できます。まずプランがもたらした価値を表示します。--projects を指定しない限り、プロジェクト名はカードに表示されません。プロジェクト名にクライアントの名前が含まれる場合があるためです。

共有カード:プラン価値、合計、最多使用モデル、30日間の推移

プラン料金は OpenAI の Codex 料金ページから取得します。Enterprise と Edu には公開料金がないため、codexwatch config set plan_price 60 で設定してください。

メニューバー、トレイ、ステータスバー、プロンプトでの表示

codexwatch bar -f FORMAT は、それぞれのバーに合った形式で1行、または小さなメニューを出力します。新しいログ行だけを読み取るため、数秒ごとに呼び出しても負荷はわずかです。

場所方法
macOS メニューバーSwiftBar または xbar をインストールし、extras/swiftbar/codexwatch.30s.sh をプラグインフォルダーにコピーします(または ./install.sh --swiftbar を実行します)。
Linux トレイcodexwatch tray を実行します。または ./install.sh --tray を実行すると、今すぐ起動し、ログインのたびに起動します(--desktop を指定すると、デスクトップにもショートカットが作成されます)。リングには5時間ウィンドウが表示され、メニューには両方のウィンドウ、本日の価値、codexhop アカウントが表示されます。codexwatch 自体を pipx でインストールした場合でも、ディストリビューションの GTK バインディング(python3-gi と AppIndicator パッケージ)が使用されます。
waybar"custom/codex": {"exec": "codexwatch bar -f waybar", "return-type": "json", "interval": 30}
tmuxset -g status-right '#(codexwatch bar -f tmux)'
polybar、i3blocks-f polybar、-f i3blocks
シェルプロンプトPS1='$(codexwatch bar -f prompt --no-scan) \$ '

ウィンドウの使用率が75%、90%、100%を超えると、それぞれのウィンドウにつき各段階で1回、デスクトップ通知が表示されます。通知はトレイから送信されます。または、タイマーから codexwatch notify を実行してください。

Codex または Claude から質問する

codexwatch mcp は MCP サーバーなので、エージェントはセッション中に使用状況を確認できます。

codex mcp add codexwatch -- codexwatch mcp     # OpenAI Codex
claude mcp add codexwatch -- codexwatch mcp    # Claude Code

「5時間ウィンドウの残りはどのくらい?」や「今週はいくらかかった?」と質問できます。ツールは usage_summary、plan_limits、quota_forensics、sessions、daily、budget_status です。このサーバーは公式の MCP Registry に io.github.psychofict/codexwatch として登録されています。

複数の ChatGPT アカウント

codexhop は Codex 用の複数の ChatGPT ログインを管理し、アカウントを切り替えます。インストールすると、codexwatch に各アカウントの最新の使用状況と最も余裕のあるアカウントが表示され、使用量レポートでは各プランの利用枠をどのアカウントが使用しているかが示されます。また、codexwatch limits --refresh を実行すると、codexhop にすべてのアカウントの最新状況を問い合わせます。codexwatch 自体がログインファイルを開くことはなく、必要な処理はすべて codexhop を実行して行います。

codexwatch autohop は、現在のアカウントの利用枠がなくなる前にアカウントを切り替えます。実行するまでは無効で、--apply を指定しない場合は、切り替えた場合の動作を表示するだけです。

$ codexwatch autohop
15:41:56  stay  work is at 31% of its 5-hour window and 29% weekly; below 92% / 97%, so stay

--apply を指定すると、現在のアカウントが5時間の利用枠の92%、または週間利用枠の97%に達したとき、5時間の利用枠が25%以上残っているアカウントに切り替えます。切り替えは20分に1回までです。各数値は config.json の autohop ブロックで変更できます。extras/systemd は3分ごとに実行され、codexwatch フォルダーに autohop.off という名前のファイルを作成すると停止します。

予算

codexwatch budget add --name "Monthly" --usd 300 --every month
codexwatch budget add --name "atlas daily" --usd 20 --every day --scope project:atlas-api
codexwatch budget add --name "5h headroom" --pct 80 --window 5h
codexwatch budget list

ドルまたはトークンの予算では、ローカルの暦日に基づく日、週(月曜日から)、または月の API 換算使用量を、全体またはプロジェクト別、モデル別に集計します。パーセント予算では、プラン独自の利用枠を監視します。どちらも上限の80%に達したとき(--notify-pct)、および上限を使い切ったときに通知します。codexwatch budget check は、いずれかの予算が超過すると終了コード1を返すため、スクリプトや CI で使用できます。

複数のマシン

別のマシンの ~/.codex(または sessions フォルダーのみ)をコピーまたは同期して、追加します。

codexwatch sources add ~/sync/laptop-codex --machine laptop
codexwatch machines

両方の場所にある応答は、応答 ID に基づいて1回だけ集計されます。

コマンド

すべてのレポートで -p/--period(today、7d、30d、week、month、year、all、2026-10、2026-10-31)、--since と --until、フィルター(--project、--model、--client、--machine、--account)、および --json を指定できます。

コマンド表示内容
codexwatchプランの利用上限、今日・過去7日間・今月・全期間の合計、過去30日間の推移、使用量上位のモデルとプロジェクト
daily、weekly、monthly期間ごとのトークン数(入力、キャッシュ済み、出力、推論)と API 換算額。--csv
projects、models、clients、machines、tiers、efforts、agents同じ内容を別の項目でグループ化して表示
sessionsタイトル、モデル、ターン数、トークン数、金額、圧縮回数を含む最近のセッション。サブエージェントは親の下に表示
toolsCodex が呼び出したツールとその呼び出し回数
latencyモデルごとのターン時間と最初のトークンが届くまでの時間の中央値および90パーセンタイル
hoursCodex を使用する曜日と時間帯のマップ
limits各プランの利用枠、消費速度、利用枠がいっぱいになる時刻、codexhop アカウント。--refresh
quota各利用枠および日ごとの1%あたりの金額、ログでは説明できない増加
live数秒ごとに再描画される全画面表示
dashboard127.0.0.1:7878 のウェブダッシュボード
card共有用カード。--projects、--theme light、--plan-price
barステータスバーまたはプロンプト用の1行表示
trayLinux のトレイアイコン
budgetadd、list、rm、check
notify送信予定の通知を1回送信
autohop利用枠がなくなる前に codexhop アカウントを切り替え(--apply を指定しない場合はドライラン)
mcpMCP サーバー
demo仮のデータを使ったダッシュボード。概要を表示するには --terminal
exportすべての応答を CSV または JSON で出力
prices価格リスト。update は LiteLLM の価格リストを取得し、path は独自設定の保存先を表示
sources別のマシンのログを add または rm
scan新しいログ行をすぐに読み込み。すべて再読み込みするには --full
config、doctor、reprice設定、セットアップの確認、価格変更後の再計算

数値の算出方法

金額は、同じトークンをOpenAI APIの公開されている標準価格で利用した場合の費用です。ChatGPTのプランは定額制なので、請求額ではなく利用量の目安としてお考えください。入力トークンにはキャッシュ済みトークンとキャッシュ書き込みトークンが含まれ、出力トークンにはOpenAIの使用状況オブジェクトと同様に推論トークンが含まれます。

プランの数値はログの読み取り結果に基づくため、このマシンでCodexにリクエストした時点までの最新情報です。別のマシン、ChatGPT、クラウドタスクでの使用量も同じプランの上限に算入されますが、ここで次のリクエストを行うまでログには反映されません。クォータレポートの「ログでは説明できない増加」は、その分を示します。Fastモードではプランの上限を標準レートの2.5倍の速さで消費するため、クォータレポートでもそのように換算します。

docs/how-it-works.mdでは、ログ形式、すべての計算ルール、詳細な調査方法について説明しています。

価格

同梱のリストには、gpt-5やo3からgpt-6-astraまで、2026-11-04時点でCodexが使用したモデルが含まれています。codexwatch pricesを実行すると、出典とともに一覧が表示されます。価格を変更するには、codexwatchフォルダー内のprices.jsonに記述してください(codexwatch prices path):

{"models": {"gpt-6-astra": {"input": 10.0, "cached": 1.0, "cache_write": 12.5, "output": 50.0}}}

価格はトークン100万個あたりのUSDです。codexwatch prices updateを実行すると、LiteLLMのリストをダウンロードして不足分を補います。独自のファイルの設定が優先され、codexwatch repriceを実行すると、変更後の価格で利用履歴を再計算できます。

プライバシー

codexwatchは~/.codex/sessions(およびarchived_sessions)を読み取り、データの書き込みは専用フォルダー(Linuxでは~/.config/codexwatch、macOSでは~/Library/Application Support/codexwatch、Windowsでは%APPDATA%\codexwatch)にのみ行います。prices updateを実行するか、limits --refresh、ダッシュボードのボタン、またはautohopでcodexhopに読み取りを要求しない限り、ネットワークリクエストは行いません。ダッシュボードは127.0.0.1のみでリッスンし、専用ページ以外からは読み取れないトークンを使って、そのページからのデータリクエストにのみ応答します。詳細はSECURITY.mdをご覧ください。

プラットフォーム

LinuxmacOSWindows
CLI、ライブ表示、ダッシュボード、カード、MCP、予算はいはいはい
メニューバーまたはトレイトレイ(GTK)SwiftBarまたはxbarなし
Autohop(codexhopが必要)はいはいいいえ

Python 3.9以降が必要です。標準ライブラリ以外のパッケージは不要です。

FAQ

パッケージ名がcodexwatch-cliなのはなぜですか? PyPIでは、codexwatchがcodex-watchという無関係なプロジェクトと同じ名前として扱われるため、パッケージ名に接尾辞を付けています。コマンドはcodexwatchで、codexwatch-cliも使用できます。インストールせずに一度だけ実行するには、uvx codexwatch-cliを使います。

ほかのツールと金額が異なるのはなぜですか? 多くの場合、そのツールがフォークされたセッション、サブエージェント、または繰り返されたイベントを二重に数えている、Fastモードを標準レートで計算している、あるいは価格が設定されていないモデルを$0として扱っていることが原因です。codexwatch doctorでは価格未設定のモデルを一覧表示し、exportでは確認用にすべての応答を出力します。

VS CodeのCodex、codex exec、デスクトップアプリでも動作しますか? はい。いずれも同じログを書き込みます。codexwatch clientsを使うと、実行環境ごとに使用量を分けて確認できます。Codexのクラウドタスクはローカルログを書き込まないため、プランの利用期間への影響を通じてのみ表示されます。

ChatGPTのプランではなく、APIキーを使っています。 その場合、プランの利用期間はなく、金額は実際の請求額に近い値になります。

Codexのログがなくても試せますか? codexwatch demoを実行すると、実際の利用履歴とは分けて保存された、架空の2か月分の使用状況を使ってダッシュボードが開きます。

コントリビューション

イシューやプルリクエストを歓迎します。CONTRIBUTING.mdでは、テスト(python -m pytest)の実行方法と、ログ形式や価格の追加方法を説明しています。

codexwatch は Ebenworks が開発しています。同社は codexhop と claudehop も開発しており、Statotech Systems とともに Claude Usage Widget & Token Tracker も開発しています。ダッシュボードでは、SIL Open Font License の下で Geist フォントを使用しています。

MIT ライセンスです。OpenAI との提携、推奨、スポンサー関係はありません。「OpenAI」、「Codex」、「ChatGPT」は OpenAI の商標であり、本ソフトウェアが対応する対象を示す目的でのみ使用しています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。