codex-token-usage について
codex-token-usageは、ローカルのCodexセッションログからトークン使用量を集計するスキルです。付属スクリプトで既定のHTMLダッシュボードを生成し、MarkdownやJSONでも出力できます。
主な機能
- 01ローカルのCodexログを読み取り
- 02期間とタイムゾーンを指定して集計
- 03HTMLダッシュボードを生成
- 04MarkdownとJSONに対応
- 05日別データをCSVで出力
活用シーン
- 01週や月の使用量を確認
- 02集計結果を自動処理に利用
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huajiexiewenfeng/ codex-token-usage-skill --skill codex-token-usageインストール後、Claude Code で/codex-token-usageを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlassets/dashboard.htmlscripts/codex_token_usage.pytest_codex_token_usage.py詳細
Codex トークン使用量
概要
同梱のスクリプトを使用して、ローカルの Codex セッションログを読み取り、一貫したトークン使用量レポートを生成します。その場限りの rg による要約よりも、再現性のあるスクリプト出力を優先してください。
デフォルトでは、固定の HTML ダッシュボードを生成し、システムのデフォルトの外部ブラウザで開きます。 これは「统计本周用量」や「统计下 token」のような単純なリクエストにも適用されます。ユーザーが明示的にテキスト、Markdown、JSON、またはブラウザを開かないことを要求しない限り、Markdown の表だけで回答しないでください。古いタスクを再利用する際は、このインストール済みファイルを再読してください。以前のタスクの指示は、古い Markdown デフォルトについて記述している可能性があります。
ワークフロー
- ユーザーのリクエストからレポート対象期間を特定します。
- ユーザーが暦月を指定せずに「1 か月」または「先月」と要求した場合は、今日を終点とする直近 30 日間のローカル暦日を使用します。
- ユーザーが「今月」と要求した場合、または特定の月を指定した場合は、その暦月を使用し、それが現在の月であれば今日までに切り詰めます。
- コンテキストで利用可能な場合はユーザーのタイムゾーンを使用し、タイムゾーンが指定されていない場合に限り、ローカルマシンのタイムゾーンをデフォルトとします。
- 「今週」はそのタイムゾーンでの月曜日から今日までを意味します。明示的な
--startと--endの日付を渡してください。
- ユーザーのワークスペースから、レポート対象の日付とタイムゾーンを指定して、インストール済みの
scripts/codex_token_usage.pyを実行します。スクリプトは、このファイルを含むスキルディレクトリから解決してください。ログについては、存在する場合はアクティブなCODEX_HOMEを使用してください。レガシーなスキルのインストールパスからログの場所を推測しないでください。 - 明示的に上書きされない限り、HTML(CLI のデフォルト)を使用します。スクリプトは作業ディレクトリの下に
output/token-usage-<start>-<end>.htmlを書き込み、システムのデフォルトの外部ブラウザで開くよう要求します。--outputはファイルパスを上書きします。レポートはスキルのソースディレクトリの外に保ってください。 - アプリ内ブラウザのプレビューで代用しないでください。開くことに失敗した場合やブロックされた場合は、保存されたファイルのリンクを提示し、開かれなかったことを正確に述べてください。ホストの制限を回避しないでください。OS の起動要求が成功したことだけでは、ページがレンダリングされた証拠にはなりません。
- クリック可能な絶対 HTML ファイルリンク、正確な日付範囲、および短い要約を返します。ダッシュボードには日別のカウント、ピーク期間、指標の定義が含まれます。それを長い Markdown の表で置き換えないでください。
- 明示的なテキスト/Markdown のリクエストには
--format markdownを渡し、機械可読なリクエストには--format jsonを渡します。これらのフォーマットは、--outputが指定されない限り標準出力に出力され、ブラウザを開きません。自動化や、ブラウザを開かないというユーザーのリクエストには、HTML とともに--no-openを使用してください。
スクリプト
ユーザーのワークスペースから、インストール済みスクリプトの絶対パスを指定して実行します(以下の相対的な例は省略形です)。
python scripts/codex_token_usage.py --days 30 --timezone Asia/Shanghai
便利なオプション:
python scripts/codex_token_usage.py --start 2026-03-30 --end 2026-04-28 --timezone Asia/Shanghai
python scripts/codex_token_usage.py --month 2026-04 --timezone Asia/Shanghai
python scripts/codex_token_usage.py --codex-home C:\Users\admin\.codex --days 30
python scripts/codex_token_usage.py --days 30 --format json
python scripts/codex_token_usage.py --days 30 --format markdown --language en
python scripts/codex_token_usage.py --days 30 --timezone Asia/Shanghai --format html --output /path/to/output/token-usage.html
python scripts/codex_token_usage.py --days 30 --timezone Asia/Shanghai --no-open
python が PATH にない場合は、利用可能であれば同梱の Codex ランタイムを使用してください。
C:\Users\admin\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe scripts\codex_token_usage.py --days 30 --timezone Asia/Shanghai
定義
total:token_countイベント全体にわたるlast_token_usage.total_tokensの合計。input:last_token_usage.input_tokensの合計。cached input:last_token_usage.cached_input_tokensの合計。output:last_token_usage.output_tokensの合計。reasoning output:last_token_usage.reasoning_output_tokensの合計。non-cached input:input - cached input。net usage:non-cached input + output。cache hit rate:cached input / input。daily average total:total / レポート対象範囲のローカル暦日数。
各イベントの total_token_usage を合計することは避けてください。これはセッション内で累積されるため、過大にカウントされます。代わりに last_token_usage を合計してください。
レスポンス形式
デフォルトでは、外部ブラウザを要求した後、HTML ファイルのリンクと短い要約を提示します。明示的なテキスト/Markdown のリクエストの場合に限り、以下の簡潔な表を使用してください。行ラベルはユーザーの言語にローカライズしてください。
| Metric | Tokens | Notes |
|---|---:|---|
| Total | 730,366,547 | Sum of `total_tokens` |
| Input | 724,204,405 | Input tokens, including cached input |
| Cached input | 640,615,168 | Cached input tokens |
| Output | 3,239,893 | Output tokens |
| Reasoning output | 456,198 | Reasoning output tokens |
| Non-cached input | 83,589,237 | `Input - Cached input` |
| Net usage | 86,829,130 | `Non-cached input + Output` |
| Cache hit rate | 88.44% | `Cached input / Input` |
| Daily average total | 24,345,552 | `Total / days in range` |
続いて、ピーク日と最も忙しい週について 1 文を追加します。
The peak day was 2026-04-01: 72,000,000 tokens.
The busiest week was 2026-03-30 to 2026-04-05: 244,371,620 tokens.
結果を別のスクリプト、自動化、またはレポートジェネレーターに渡す場合は --format json を使用してください。テキスト回答には Markdown を使用してください。すべてのフォーマットは、UTF-8 ファイル出力のための --output をサポートしています。
HTML ダッシュボード
単一の HTML ファイルに CSS、JavaScript、集計レポートデータが埋め込まれており、ビルド手順、サーバー、CDN なしでオフラインで開けます。JavaScript を有効にする必要があります。--language zh(デフォルト)または --language en を使用してください。
HTML は常に同梱のスクリプトと assets/dashboard.html を通じて生成してください。すべてのレポートでこの固定テンプレートを再利用し、集計データと言語のみを置き換えます。ユーザーがデザイン変更を要求しない限り、ページを再設計したり、その場で HTML を生成したり、レイアウト、色、インタラクションを変更したりしないでください。レスポンシブレイアウトは引き続きビューポートサイズに適応します。
每日明细(デイリー詳細)テーブルを含むコンパクトなトークン値では、100,000,000 で 亿、10,000,000 で 千万、1,000,000 で 百万を使用し、小数点以下は最大 2 桁とします。100 万未満の場合は、桁区切り付きの完全な数値を表示します。B、M、K は使用しないでください。テーブルのツールチップと CSV は正確なトークン数を保持します。イベント数とセッション数は完全な数値のままです。
これには、合計/純使用量、キャッシュヒット率、セッション数、日次平均、合計/純モードとキーボードでアクセス可能な日選択を備えた日次積み上げ棒グラフ、トークン構成、ピーク日/週、並べ替え可能な日次テーブル、CSV エクスポートが含まれます。エクスポートでは、選択されたレポートタイムゾーンが使用されます。使用量ゼロの日も平均に含まれ、すべての出力に残ります。JSON は既存のフィールドを保持し、timezone と generated_at を追加します。daily には範囲内のすべての日付が含まれるようになりました。
グラフの構成要素は 非キャッシュ入力 + キャッシュ入力 + 出力 です。キャッシュ入力は入力の一部であり、推論は出力の一部です。どちらのサブセットも親の上に積み上げないでください。ソースの合計が構成要素の合計と異なる場合、ダッシュボードはその差分を表示します。トークンイベントをツール呼び出しと呼んだり、既存のパーサーからモデル/プロジェクトのランキング、アクティブ時間、成功率を求めたりしないでください。これは生成されたスナップショットであり、ライブモニターではありません。
生成されたレポートには使用量の集計のみが含まれ、プロンプト、セッション ID、ソースパスは含まれません。ユーザーが共有を求めない限り、ローカルに留まります。スキルをインストールする際は、assets/dashboard.html を scripts/ とともに保持してください。