Community研究&データ分析github.com

Token Usage Report

エージェントスキル:ZCode、Codex、Claude Code、OpenCode の会話ごとのトークン使用量、キャッシュヒット率、推定コスト(DeepSeek ピーク/オフピーク料金)を報告します。

Token Usage Report とは?

このスキルは、AIエージェント(ZCode、Codex、Claude Code、OpenCode、DeepSeek Harness)のローカルロールアウトファイルを解析し、直近の会話セグメントとセッション全体のトークン使用量、キャッシュヒット率、および推定コストを2行でレポートします。料金はDeepSeekの公式ピーク/オフピーク料金表に基づいて計算され、セッション開始時刻で適用されるため、実請求額と比較することでコスト管理に役立ちます。キャッシュヒット率の表示により、トークン使用の効率性を一目で把握でき、開発者やパワーユーザーにとって重要な情報です。このスキルは各エージェントの標準的なデータ保存形式(JSONLファイルやSQLiteデータベース)を自動検出し、Python 3.9+ と標準ライブラリのみで動作するシンプルな設計で、統合も容易です。

対応✓Claude Code✓Codex CLI~Cursor✓OpenCode
npx skills add 1Lany2a/token-usage-report

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Token Usage Report は何をしますか?

エージェントのローカルロールアウトファイルを読み取り、直近の会話セグメント と セッション全体の使用量(2行)を表示します:

本段会话:输入 123456 / 缓存命中 98765 / 输出 4321 / 命中率 80.0% / 费用 ¥0.12
整个会话:输入 987654 / 缓存命中 876543 / 输出 43210 / 命中率 88.8% / 费用 ¥0.50

なぜ両方の行が必要か?セッション全体の数値はスクリプトによってローカルで計算されるため(追加のモデル呼び出しなし)、報告にかかるトークンオーバーヘッドはわずか数十文字程度で無視できます。ユーザーは現在のターンとセッション合計を比較できます。

実行タイミング

  • 各セッションの最終応答を作成する前に 実行します。
  • トリガーフレーズ:「token usage」「用量」「费用」「cost」「billing」「多少 tokens」「汇报」「spent」
  • 理由:これにより、ユーザーはプロバイダーの実際の請求書と照合できるターンごとの使用量ラインを取得できます。コストは 推定値(価格スナップショット)であり、請求書ではありません。

実行方法

スクリプト:scripts/usage_report.py — Python 3.9+、標準ライブラリのみ(インストール不要)。ただし、DeepSeek Harness(dsh)ログにはオプションの zstandard パッケージが必要です。

python3 <this-skill-dir>/scripts/usage_report.py --latest   # 最新のセグメント/セッション(デフォルト)
python3 <this-skill-dir>/scripts/usage_report.py --whole    # 最新セッション全体
python3 <this-skill-dir>/scripts/usage_report.py --all      # セッションごとの一覧
python3 <this-skill-dir>/scripts/usage_report.py --agent zcode|codex|claude|opencode|dsh
python3 <this-skill-dir>/scripts/usage_report.py --session <substring>   # 特定のセッションを指定

常にこのスキルディレクトリへの 絶対パス を使用してください。最初に cd で移動しないでください。エージェントセッション内から実行する場合は、必ず --agent を明示的に指定してください(自動検出は最も最近変更されたファイルを選択しますが、これは 別の 同時実行中のエージェントに属する可能性があります)。--session で特定のセッションファイルを固定します。

スクリプトの出力を最終応答に そのまま 追加します。両方の行をそれぞれ別の行に配置します(上記「本段会话」を上、「整个会话」を下)。応答がマークダウンの場合、単一の改行はスペースとしてレンダリングされ2行が結合されるため、フェンスで囲まれたコードブロック内に配置するか、間に空白行を入れてください:

本段会话:输入 123456 / 缓存命中 98765 / 输出 4321 / 命中率 80.0% / 费用 ¥0.12
整个会话:输入 987654 / 缓存命中 876543 / 输出 43210 / 命中率 88.8% / 费用 ¥0.50
  • 終了コード0 → 数値が前回の報告と同一に見えても、常に 行を含めてください(ユーザーは毎ターンそれを必要とします)。
  • Codex は 単一 の行(セッション全体)を報告します — セグメントデータはありません。
  • 終了コード1 /「No usage data found」→ エラーを表示せずにスキップします。ユーザーに問い合わせないでください。
  • その他のエラー → 応答する前に原因(Pythonが見つからない、スキルディレクトリが移動されたなど)を修正してください。エラーを無視してスキップしないでください。

サポートされているエージェント

エージェントデータソース--latest の意味
ZCode~/.zcode/cli/rollout/model-io-*.jsonl最後の セグメント:最新のリクエスト(そのターンとツールコールを含む)の 最後の メッセージがユーザープロンプトであるもの以降のレコード
Codex~/.codex/sessions/**/rollout-*.jsonl最後の セッション(全体) — Codex ロールアウトは 累積 のランニングトータルを保存するため、最後のレコードのみが単一行で報告されます。セグメントデータは利用不可
Claude~/.claude/projects/**/*.jsonl最後の セグメント:最新の "type":"user" レコード以降のレコード
OpenCode<data>/opencode/opencode.db(SQLite; Windowsの場合は %LOCALAPPDATA%、それ以外の場合は $XDG_DATA_HOME または ~/.local/share)最新セッションの最後の セグメント(最新のユーザーメッセージから)
DSH~/.dsh/sessions/**/session.jsonl[.zstd](zstd圧縮; オプションの zstandard が必要)最後の ターン(1ユーザー交換)+ セッション全体

これらはすべて、文書化され、ローカルで検証された、またはよく知られた形式から解析されます。DeepSeek Harness(dsh)やその他のエージェントは、小さなパーサーで追加できます — 詳細は README.md を参照してください。

精度と制限事項

このレポートは ローカルロールアウトデータと公開価格からの推定値 であり、プロバイダーの請求書ではありません。公式の使用量ページとの差異は以下の理由による可能性があります:

  • Codex の合計は累積値:各 total_token_usage レコードはセッションのランニングトータルであるため、スクリプトは最後のレコードを使用します(決して合計しません)。Codex ではリクエストごとやセグメントごとの数値は利用できません。
  • ピーク/オフピークはセッション開始時刻に適用 されますが、プロバイダーは各リクエストをその時刻で価格設定します。ピーク境界(北京時間 09:00–12:00 / 14:00–18:00)をまたぐセッションでは、またがった部分の価格が誤って計算されます。
  • 推論出力トークン は Codex の output に含まれます(出力レートで課金)。ZCode ロールアウトには推論フィールドはありません。
  • ローカルロールアウトはキー上のすべてのリクエストを捕捉できない場合があります(中断されたストリーム、非対話型呼び出し)。そのため、合計は完全なキー使用量よりも低くなる可能性があります。
  • 料金はスナップショットです。ゲートウェイ/アグリゲーターキーや別のモデル ID は異なる料金で課金される場合があります。

コストモデル

DeepSeek 公式のピーク/オフピーク料金(2026-08-17 00:00 北京時間 有効、2026-08-13 発表)。ピーク時間帯:北京時間 09:00–12:00 および 14:00–18:00。それ以外の時間はオフピークで 半額 です。2026-08-17 より前のセッションは、固定のレガシー料金が適用されます。

モデル期間キャッシュ入力ミス入力出力(CNY / 100万トークン)
deepseek-v4-flashオフピーク0.051.54.5
deepseek-v4-flashピーク0.103.09.0
deepseek-v4-proオフピーク0.154.513.5
deepseek-v4-proピーク0.309.027.0

課金期間はセッション開始時刻(マシンのローカル時刻)から決定されます。公式料金が変更された場合は、scripts/usage_report.py 内の PRICES_* テーブルを更新してください。権威ある情報源は platform.deepseek.com です。

統合(セッションごとに自動報告)

以下のルールをエージェントのユーザーレベル指示ファイル(~/.zcode/AGENTS.md、~/.codex/AGENTS.md、CLAUDE.md、またはプロジェクトの AGENTS.md)に追加します:

各最終応答の前に python3 <skill-dir>/scripts/usage_report.py --agent <your-agent> --latest を実行し(--agent は必ず指定 — 自動検出は別の同時実行中のエージェントのデータを読み取る可能性があります)、その2行の出力をそのまま追加します: 本段会话:输入 X / 缓存命中 Y / 输出 Z / 命中率 N% / 费用 ¥M 整个会话:输入 X / 缓存命中 Y / 输出 Z / 命中率 N% / 费用 ¥M スクリプトが「No usage data found」と出力した場合のみスキップします。

セキュリティ

  • このスクリプトは、ユーザーのホームディレクトリ以下の ローカルロールアウトJSONファイルのみ を読み取ります。APIキー、.env ファイル、認証情報を読み取ったり、出力したり、必要としたりすることはありません。
  • ロールアウトファイルにはプロンプトテキストが含まれる場合があります — その内容をエコーしないでください。スクリプトが出力する集計数値のみを表示します。

関連スキル