CommunityRecherche & Datenanalysegithub.com

Token Usage Report

Berichtet den Token-Verbrauch, die Cache-Trefferquote und die geschätzten Kosten (DeepSeek Peak/Off-Peak) pro Konversation für ZCode, Codex, Claude Code und OpenCode.

Was ist Token Usage Report?

Die Fertigkeit "Token Usage Report" liest die lokalen Rollout-Dateien eines KI-Agenten aus und gibt die Nutzungsdaten des letzten Konversationssegments **plus** der gesamten Sitzung als zwei Zeilen aus. Dies ermöglicht dem Benutzer, die aktuellen Kosten pro Runde mit der Gesamtsitzung zu vergleichen, ohne zusätzliche Modellaufrufe zu verursachen. Sie unterstützt die Agenten ZCode, Codex, Claude Code, OpenCode und DeepSeek Harness (DSH) und ermittelt die Daten aus den jeweiligen lokalen Journals (JSONL-Dateien, SQLite-Datenbank oder zstd-komprimierte Logs). Der Bericht liefert eine Schätzung basierend auf den aktuellen Listenpreisen von DeepSeek (Peak/Off-Peak) und den lokalen Rollout-Daten; Abweichungen zur offiziellen Rechnung sind möglich. Die Fertigkeit wird idealerweise vor jeder endgültigen Antwort ausgeführt, wobei der Agent den Parameter `--agent` explizit setzen sollte, um Fehlzuordnungen bei parallel laufenden Agenten zu vermeiden.

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

Installed? Explore more Recherche & Datenanalyse skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Token Usage Report - Bericht zum Token-Verbrauch

Liest die lokalen Rollout-Dateien des Agenten aus und gibt die Nutzung des letzten Konversationssegments plus der gesamten Sitzung (zwei Zeilen) aus:

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

Warum beide Zeilen? Die Gesamtsitzungszahlen werden lokal vom Skript berechnet (keine zusätzlichen Modellaufrufe). Daher kostet die Ausgabe nur ein paar Dutzend zusätzliche Zeichen in der Antwort – ein vernachlässigbarer Token-Overhead, und der Benutzer kann den aktuellen Zug mit der Sitzungssumme vergleichen.

Wann ausführen

  • Führe das Skript vor dem Erstellen der endgültigen Antwort jeder Sitzung aus.
  • Auslöser-Phrasen: "token usage", "用量", "费用", "cost", "billing", "多少 tokens", "汇报", "spent".
  • Warum: Es gibt dem Benutzer eine Nutzungszeile pro Zug, die er mit der tatsächlichen Rechnung des Anbieters abgleichen kann. Die Kosten sind eine Schätzung (Preisnotierung), nicht die Rechnung.

Wie ausführen

Skript: scripts/usage_report.py — Python 3.9+, nur Standardbibliothek (keine Installation erforderlich), außer dem optionalen Paket zstandard, das für DeepSeek Harness (dsh) Logs benötigt wird.

python3 <this-skill-dir>/scripts/usage_report.py --latest   # letztes Segment/Sitzung (Standard)
python3 <this-skill-dir>/scripts/usage_report.py --whole    # gesamte letzte Sitzung
python3 <this-skill-dir>/scripts/usage_report.py --all      # Liste pro Sitzung
python3 <this-skill-dir>/scripts/usage_report.py --agent zcode|codex|claude|opencode|dsh
python3 <this-skill-dir>/scripts/usage_report.py --session <substring>   # bestimmte Sitzung auswählen

Verwende immer den absoluten Pfad zum Verzeichnis dieser Fertigkeit. Wechsle nicht zuerst mit cd dorthin. Übergib --agent explizit, wenn du es aus einer Agenten-Sitzung heraus ausführst (die automatische Erkennung wählt die zuletzt geänderte Datei aus, die möglicherweise zu einem anderen gleichzeitig laufenden Agenten gehört); --session fixiert eine bestimmte Sitzungsdatei.

Hänge die Ausgabe des Skripts wortwörtlich an die endgültige Antwort an – beide Zeilen, auf separaten Zeilen (oben 本段会话, unten 整个会话). Wenn die Antwort im Markdown-Format ist, rendert ein einzelner Zeilenumbruch als Leerzeichen und verbindet die beiden Zeilen. Setze sie daher in einen umschlossenen Codeblock (oder lasse eine Leerzeile dazwischen):

```text
本段会话:输入 123456 / 缓存命中 98765 / 输出 4321 / 命中率 80.0% / 费用 ¥0.12
整个会话:输入 987654 / 缓存命中 876543 / 输出 43210 / 命中率 88.8% / 费用 ¥0.50
```
  • Exit-Code 0 → immer die Zeilen einfügen, auch wenn die Zahlen identisch zum vorherigen Bericht erscheinen (der Benutzer möchte sie bei jedem Zug).
  • Codex meldet eine einzelne Zeile (gesamte Sitzung) – es gibt keine Segmentdaten.
  • Exit-Code 1 / "No usage data found" → Stille überspringen; den Benutzer nicht fragen.
  • Jeder andere Fehler → die Ursache beheben (fehlendes Python, verschobenes Fertigkeitsverzeichnis), bevor du antwortest; nicht stillschweigend überspringen.

Unterstützte Agenten

AgentDatenquelle--latest bedeutet
ZCode~/.zcode/cli/rollout/model-io-*.jsonlletztes Segment: Datensätze seit der letzten Anfrage, deren letzte Nachricht ein Benutzerprompt ist (dieser Zug inkl. seiner Tool-Aufrufe)
Codex~/.codex/sessions/**/rollout-*.jsonlletzte Sitzung (gesamte) – Codex-Rollouts speichern kumulative laufende Summen, daher wird nur die letzte Summe als einzelne Zeile gemeldet; Segmentdaten sind nicht verfügbar
Claude~/.claude/projects/**/*.jsonlletztes Segment: Datensätze seit dem letzten "type":"user" Datensatz
OpenCode<data>/opencode/opencode.db (SQLite; %LOCALAPPDATA% unter Windows, $XDG_DATA_HOME oder ~/.local/share sonst)letztes Segment der letzten Sitzung (ab der letzten Benutzernachricht)
DSH~/.dsh/sessions/**/session.jsonl[.zstd] (zstd-komprimiert; benötigt optionales zstandard)letzter Zug (ein Benutzeraustausch) + gesamte Sitzung

Alle vier werden aus dokumentierten, lokal verifizierten oder gut bekannten Formaten geparst. DeepSeek Harness (dsh) und andere Agenten können mit einem kleinen Parser hinzugefügt werden – siehe README.md für das Rezept.

Genauigkeit & Einschränkungen

Der Bericht ist eine Schätzung basierend auf lokalen Rollout-Daten + Listenpreisen, nicht die Rechnung des Anbieters. Abweichungen zur offiziellen Nutzungsseite können auftreten durch:

  • Codex-Summen sind kumulativ: Jeder total_token_usage-Datensatz ist die laufende Sitzungssumme, daher verwendet das Skript den letzten Datensatz (niemals summiert). Einzelanfragen- und Segmentzahlen sind für Codex nicht verfügbar.
  • Peak/Off-Peak wird pro Sitzungsstartzeit angewendet, während der Anbieter jede Anfrage nach ihrer eigenen Zeit bepreist. Eine Sitzung, die eine Peak-Grenze überschreitet (09:00–12:00 / 14:00–18:00 Beijing), wird für den überschnittenen Teil falsch bepreist.
  • Reasoning-Ausgabe-Token sind in output für Codex enthalten (zum Ausgabesatz abgerechnet); ZCode-Rollouts legen kein Reasoning-Feld offen.
  • Lokale Rollouts erfassen möglicherweise nicht jede Anfrage auf dem Schlüssel (abgebrochene Streams, nicht-interaktive Aufrufe), sodass die Summen niedriger sein können als die vollständige Schlüsselnutzung.
  • Preise sind eine Momentaufnahme; ein Gateway-/Aggregator-Schlüssel oder eine andere Modell-ID kann zu anderen Preisen abgerechnet werden.

Kostenmodell

Offizielle DeepSeek Peak/Off-Peak-Preise, gültig ab 2026-08-17 00:00 Beijing-Zeit (angekündigt am 2026-08-13). Peak-Zeiten: 09:00–12:00 und 14:00–18:00 Beijing; alle anderen Zeiten sind Off-Peak zum halben Preis. Sitzungen vor dem 2026-08-17 verwenden die flachen Legacy-Preise.

ModellZeitraumcached-inmiss-inout(CNY / 1M Token)
deepseek-v4-flashoff-peak0.051.54.5
deepseek-v4-flashpeak0.103.09.0
deepseek-v4-prooff-peak0.154.513.5
deepseek-v4-propeak0.309.027.0

Der Abrechnungszeitraum ergibt sich aus der Sitzungsstartzeit (maschinenlokale Zeit). Wenn die offiziellen Preise geändert werden, aktualisiere die PRICES_*-Tabellen in scripts/usage_report.py; die maßgebliche Quelle ist platform.deepseek.com.

Integration (automatischer Bericht für jede Sitzung)

Füge diese Regel zur Benutzer-Level-Anweisungsdatei des Agenten hinzu (~/.zcode/AGENTS.md, ~/.codex/AGENTS.md, CLAUDE.md oder einer Projekt AGENTS.md):

Führe python3 <skill-dir>/scripts/usage_report.py --agent <your-agent> --latest (IMMER --agent übergeben – die automatische Erkennung könnte Daten eines anderen gleichzeitig laufenden Agenten lesen) vor jeder endgültigen Antwort aus und hänge seine beiden Ausgabezeilen wortwörtlich an: 本段会话:输入 X / 缓存命中 Y / 输出 Z / 命中率 N% / 费用 ¥M 整个会话:输入 X / 缓存命中 Y / 输出 Z / 命中率 N% / 费用 ¥M. Überspringe nur, wenn das Skript "No usage data found" ausgibt.

Sicherheit

  • Das Skript liest nur lokale Rollout-JSON-Dateien im Home-Verzeichnis des Benutzers. Es liest, druckt oder benötigt niemals API-Schlüssel, .env-Dateien oder Anmeldeinformationen.
  • Rollout-Dateien können Prompt-Text enthalten – gib deren Inhalt niemals aus. Gib nur die aggregierten Zahlen aus, die das Skript ausgibt.

Verwandte Skills