tokentracker-cli 0.65.0 → 0.65.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.de.md +476 -0
- package/README.ja.md +1 -1
- package/README.ko.md +1 -1
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/dashboard/dist/assets/{ActivityHeatmap-Ccf0I3uP.js → ActivityHeatmap-CggJI8SR.js} +1 -1
- package/dashboard/dist/assets/{Card-BSF8dYEt.js → Card-5au9t9nC.js} +1 -1
- package/dashboard/dist/assets/{ConfirmModal-Bjp6eg2f.js → ConfirmModal-DdczuiTm.js} +1 -1
- package/dashboard/dist/assets/{DashboardPage-BInQkoDe.js → DashboardPage-VAYxz_kf.js} +2 -2
- package/dashboard/dist/assets/{DevicePage-B0yxbDDR.js → DevicePage-DQJlqpU3.js} +1 -1
- package/dashboard/dist/assets/{DialogTitle-uw-Oa5Qv.js → DialogTitle-DR64sBQk.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-DPIBqXRl.js → FadeIn-CGzcyAaJ.js} +1 -1
- package/dashboard/dist/assets/{HeaderGithubStar-DDXfJ1uC.js → HeaderGithubStar-DiJi3EYZ.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-KC93tPlt.js → IpCheckPage-CoGzED0h.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-Itx2uPWI.js → LandingPage-D_h4MI77.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardAvatar-Bv44b_Kl.js → LeaderboardAvatar-BuSHrfaq.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardPage-DDq5gzyz.js → LeaderboardPage-aP0oQNBq.js} +2 -2
- package/dashboard/dist/assets/{LeaderboardProfileModal-LQyYrCf1.js → LeaderboardProfileModal-zWSPrjXm.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardProfilePage-3you3mbA.js → LeaderboardProfilePage-BNR__NEp.js} +1 -1
- package/dashboard/dist/assets/{LimitsPage-CrLvR8vE.js → LimitsPage-CbwEV4tL.js} +1 -1
- package/dashboard/dist/assets/{LocalOnlyNotice-Di1gnfIi.js → LocalOnlyNotice-DFxhTdeP.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-f9QHz_uZ.js → LoginPage-6m5w2iay.js} +1 -1
- package/dashboard/dist/assets/{PopoverPopup-7rjAxAqk.js → PopoverPopup-6bH8WcTu.js} +1 -1
- package/dashboard/dist/assets/{ResetPasswordPage-DKA7HGpJ.js → ResetPasswordPage-ByOumS6-.js} +1 -1
- package/dashboard/dist/assets/{Select-2gikPo1a.js → Select-DrNJJE2o.js} +1 -1
- package/dashboard/dist/assets/{SelectItemText-DZx33XF1.js → SelectItemText-BTHh_2vw.js} +1 -1
- package/dashboard/dist/assets/SettingsPage-BIxrrxUF.js +1 -0
- package/dashboard/dist/assets/{SkillsPage-B6BJ9UZp.js → SkillsPage-Cg8iXYaS.js} +1 -1
- package/dashboard/dist/assets/{WidgetsPage-D8p3Tx7E.js → WidgetsPage-Bi8d2YwV.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-cXEfhti9.js → WrappedPage-Cc2kLDpE.js} +1 -1
- package/dashboard/dist/assets/{agent-logos-D3iFlaWg.js → agent-logos-CzNQ3IaQ.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-D87Aw_ZN.js → arrow-up-right-FgMhJ3Pu.js} +1 -1
- package/dashboard/dist/assets/{download-BtcEs1OB.js → download-Bo9t1yfc.js} +1 -1
- package/dashboard/dist/assets/{main-DqnXui98.js → main-6K89gDOX.js} +21 -20
- package/dashboard/dist/assets/{main-CGx8BJ4O.css → main-BHwig9Um.css} +1 -1
- package/dashboard/dist/assets/{use-limits-display-prefs-DAxlRSu2.js → use-limits-display-prefs-DN1nv1HE.js} +1 -1
- package/dashboard/dist/assets/{use-native-settings-CgvB_B6W.js → use-native-settings-6ygLVyJu.js} +1 -1
- package/dashboard/dist/assets/{use-ordered-list-DOfX6aSy.js → use-ordered-list-li19cWJh.js} +1 -1
- package/dashboard/dist/assets/{use-quality-per-dollar-pref-kEbwQwk2.js → use-quality-per-dollar-pref-rNMT2kff.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-la-KPfJj.js → use-usage-limits-kVHyIhp3.js} +1 -1
- package/dashboard/dist/assets/{useCurrency-LDRg7ST0.js → useCurrency-g0G5pwGx.js} +1 -1
- package/dashboard/dist/assets/{useScrollLock-lP1Is9IY.js → useScrollLock-Dg7JyjFK.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist/share.html +2 -2
- package/package.json +1 -1
- package/src/commands/init.js +3 -2
- package/src/commands/serve.js +59 -1
- package/src/commands/status.js +26 -17
- package/src/commands/sync.js +672 -98
- package/src/lib/openclaw-session-plugin.js +2 -2
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/src/lib/rollout.js +602 -178
- package/src/lib/wsl-probe.js +181 -0
- package/dashboard/dist/assets/SettingsPage-CwHPmuZV.js +0 -1
package/README.de.md
ADDED
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# Token Tracker
|
|
4
|
+
|
|
5
|
+
[English](./README.md) · [简体中文](./README.zh-CN.md) · [日本語](./README.ja.md) · [한국어](./README.ko.md) · **Deutsch**
|
|
6
|
+
|
|
7
|
+
### Sieh genau, was du für KI ausgibst – über jedes CLI hinweg
|
|
8
|
+
|
|
9
|
+
Sammle automatisch Token-Zahlen von **25 KI-Coding-Tools**, aggregiere sie lokal und sieh echte Kostentrends in einem schönen Dashboard. Kein Cloud-Konto, keine API-Keys, kein Setup – nur ein Befehl.
|
|
10
|
+
|
|
11
|
+
[](https://www.npmjs.com/package/tokentracker-cli)
|
|
12
|
+
[](https://www.npmjs.com/package/tokentracker-cli)
|
|
13
|
+
[](https://github.com/mm7894215/homebrew-tokentracker)
|
|
14
|
+
[](https://opensource.org/licenses/MIT)
|
|
15
|
+
[](https://www.npmjs.com/package/tokentracker-cli)
|
|
16
|
+
[](https://github.com/mm7894215/TokenTracker/releases/latest)
|
|
17
|
+
[](https://github.com/mm7894215/TokenTracker/releases/latest)
|
|
18
|
+
[](https://github.com/mm7894215/TokenTracker/stargazers)
|
|
19
|
+
[](https://github.com/ruanyf/weekly/blob/master/docs/issue-393.md)
|
|
20
|
+
[](https://github.com/mm7894215/TokenTracker)
|
|
21
|
+
|
|
22
|
+
<br/>
|
|
23
|
+
|
|
24
|
+
<video src="https://github.com/user-attachments/assets/3275979d-bbed-4639-83e2-8b7d83bed6af" controls muted playsinline poster="https://raw.githubusercontent.com/mm7894215/tokentracker/main/docs/screenshots/dashboard-dark.png" width="820">
|
|
25
|
+
<img src="https://raw.githubusercontent.com/mm7894215/tokentracker/main/docs/screenshots/dashboard-dark.png" alt="Token Tracker Dashboard" width="820" />
|
|
26
|
+
</video>
|
|
27
|
+
|
|
28
|
+
<br/><br/>
|
|
29
|
+
|
|
30
|
+
⭐ **Wenn TokenTracker dir Zeit spart, [gib ihm einen Star auf GitHub](https://github.com/mm7894215/TokenTracker) – das hilft anderen Entwicklern, es zu finden.**
|
|
31
|
+
|
|
32
|
+
<br/>
|
|
33
|
+
|
|
34
|
+
[](https://ko-fi.com/M4M11XSNWD)
|
|
35
|
+
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## ⚡ Schnellstart
|
|
41
|
+
|
|
42
|
+
> **Voraussetzungen**: Node.js **20+** (CLI läuft auf macOS / Linux / Windows; native Desktop-Apps gibt es für macOS (Menüleiste) und Windows (System Tray). Cursor-Token nutzt das systemeigene `sqlite3` CLI, wo verfügbar, und nutzt `node:sqlite` als Fallback auf unterstützten Node-Versionen).
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npx tokentracker-cli
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Das war's. Beim ersten Start werden Hooks installiert, deine Daten synchronisiert und das Dashboard unter `http://localhost:7680` geöffnet.
|
|
49
|
+
|
|
50
|
+
**Das bekommst du in 30 Sekunden:**
|
|
51
|
+
|
|
52
|
+
- 📊 Ein lokales Dashboard auf `localhost:7680` mit Nutzungstrends, Modellaufschlüsselung, Kostenanalyse
|
|
53
|
+
- 🔌 Auto-erkannte Hooks für jedes installierte KI-Tool
|
|
54
|
+
- 🏠 100 % lokal – kein Konto, keine API-Keys, keine Netzwerkaufrufe (außer optionalem Leaderboard)
|
|
55
|
+
- 🧩 *Optional:* Ein Skills-Tab zum Durchsuchen von 250+ öffentlichen Skills – synchronisiert über Claude · Codex · Grok · Antigravity · Gemini · OpenCode · Hermes
|
|
56
|
+
|
|
57
|
+
> **Möchtest du eine native Desktop-App?**
|
|
58
|
+
> - **macOS** — [Lade `TokenTrackerBar.dmg` herunter](https://github.com/mm7894215/TokenTracker/releases/latest/download/TokenTrackerBar.dmg) → in Programme ziehen. Menüleisten-Symbol, Desktop-Widgets und das Dashboard in einer WKWebView.
|
|
59
|
+
> - **Windows** — [Lade `TokenTracker-Setup.exe` herunter](https://github.com/mm7894215/TokenTracker/releases/latest/download/TokenTracker-Setup.exe) → per-user Installer ausführen (kein Admin nötig). System-Tray-App mit Dashboard in WebView2. Portables Zip gibt's auf der [Releases-Seite](https://github.com/mm7894215/TokenTracker/releases/latest).
|
|
60
|
+
|
|
61
|
+
Für kürzere Befehle global installieren:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npm i -g tokentracker-cli
|
|
65
|
+
|
|
66
|
+
tokentracker # Dashboard öffnen
|
|
67
|
+
tokentracker sync # Manuelle Synchronisation
|
|
68
|
+
tokentracker status # Hook-Status prüfen
|
|
69
|
+
tokentracker status --json # Maschinenlesbare Ausgabe (für jq, AI-Agenten)
|
|
70
|
+
tokentracker status --light # Reine ASCII-Tabelle (CI / SSH, kein Spinner)
|
|
71
|
+
tokentracker doctor # Health Check
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 🍺 Homebrew (macOS)
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# macOS Menüleisten-App (DMG)
|
|
78
|
+
brew install --cask mm7894215/tokentracker/tokentracker
|
|
79
|
+
|
|
80
|
+
# Nur CLI
|
|
81
|
+
brew install mm7894215/tokentracker/tokentracker
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Aktualisieren mit `brew upgrade --cask mm7894215/tokentracker/tokentracker`. Der Tap wird innerhalb einer Stunde nach jedem Release automatisch aktualisiert.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## ✨ Features
|
|
89
|
+
|
|
90
|
+
- 🔌 **25 KI-Tools out of the box** — Claude Code, Codex CLI, Cursor, Gemini CLI, Antigravity, Kiro, OpenCode, OpenClaw, Every Code, Hermes Agent, GitHub Copilot, Kimi Code, CodeBuddy, WorkBuddy, Grok Build, oh-my-pi, pi, Craft Agents, Kilo CLI, Kilo Code, Roo Code, Zed Agent, Goose, Mimo Code, ZCode
|
|
91
|
+
- 🏠 **100 % lokal** — Token-Daten verlassen nie deinen Rechner. Kein Konto, keine API-Keys.
|
|
92
|
+
- 🚀 **Zero Config** — Hooks installieren sich beim ersten Start automatisch. Von null zum Dashboard in 30 Sekunden.
|
|
93
|
+
- 📊 **Schönes Dashboard** — Nutzungstrends, Kostenaufschlüsselung nach Modell, GitHub-ähnliche Aktivitäts-Heatmap, Projektzuordnung
|
|
94
|
+
- 🖥️ **Native Desktop-App** — macOS Menüleiste (+ Widgets) und Windows System Tray, jeweils mit eingebautem Server und Dashboard in einer nativen WebView
|
|
95
|
+
- 🎨 **4 Desktop-Widgets** — Nutzung / Aktivitäts-Heatmap / Top-Modelle / Nutzungslimits auf dem Schreibtisch
|
|
96
|
+
- 📈 **Echtzeit-Rate-Limit-Tracking** — Claude / Codex / Cursor / Gemini / Kiro / Copilot / Antigravity mit Reset-Countdowns
|
|
97
|
+
- 💰 **Kosten-Engine** — 2.200+ Modelle bepreist via [LiteLLM](https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json) (täglich aktualisiert) + kuratierte Overrides für Nischen-Tools; 24h-Disk-Cache + Offline-Snapshot für genaue USD-Angaben ohne Internetverbindung. Modelle ohne veröffentlichte Preise (z. B. Tencent hy3-preview) werden nach Token erfasst, zeigen aber 0 $ Kosten bis der Anbieter einen Preis veröffentlicht.
|
|
98
|
+
- 🌐 **Optionales Leaderboard** — Vergleiche dich mit Entwicklern weltweit; Spalten per Drag-and-Drop neu anordnen (Opt-in, Anmeldung erforderlich)
|
|
99
|
+
- 🧩 **Optionaler Skills-Tab** — 250+ öffentliche Skills von `anthropics/skills`, `ComposioHQ/awesome-claude-skills`, `skills.sh` und jedem GitHub-Repo durchsuchen; mit einem Klick über Claude / Codex / Grok / Antigravity / Gemini / OpenCode / Hermes synchronisieren
|
|
100
|
+
- 🔒 **Privacy-First** — Nur Token-Zahlen und Zeitstempel. Nie Prompts, Responses oder Dateiinhalte.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 🖼️ Vorschau
|
|
105
|
+
|
|
106
|
+
<table>
|
|
107
|
+
<tr>
|
|
108
|
+
<td width="50%">
|
|
109
|
+
|
|
110
|
+
**Dashboard** — Nutzungstrends, Modellaufschlüsselung, Kostenanalyse
|
|
111
|
+
|
|
112
|
+
<img src="https://raw.githubusercontent.com/mm7894215/tokentracker/main/docs/screenshots/dashboard-light.png" alt="Dashboard" />
|
|
113
|
+
|
|
114
|
+
</td>
|
|
115
|
+
<td width="50%">
|
|
116
|
+
|
|
117
|
+
**Desktop-Widgets** — Nutzung auf dem Schreibtisch
|
|
118
|
+
|
|
119
|
+
<img src="https://raw.githubusercontent.com/mm7894215/tokentracker/main/docs/screenshots/widgets-overview.png" alt="Desktop-Widgets" />
|
|
120
|
+
|
|
121
|
+
</td>
|
|
122
|
+
</tr>
|
|
123
|
+
<tr>
|
|
124
|
+
<td width="50%">
|
|
125
|
+
|
|
126
|
+
**Menüleisten-App** — Animierter Clawd-Begleiter + native Panels
|
|
127
|
+
|
|
128
|
+
<img src="https://raw.githubusercontent.com/mm7894215/tokentracker/main/docs/screenshots/menubar.gif" alt="Menüleisten-App" />
|
|
129
|
+
|
|
130
|
+
</td>
|
|
131
|
+
<td width="50%">
|
|
132
|
+
|
|
133
|
+
**Globales Leaderboard** — Vergleich mit Entwicklern weltweit
|
|
134
|
+
|
|
135
|
+
<img src="https://raw.githubusercontent.com/mm7894215/tokentracker/main/docs/screenshots/leaderboard.png" alt="Leaderboard" />
|
|
136
|
+
|
|
137
|
+
</td>
|
|
138
|
+
</tr>
|
|
139
|
+
<tr>
|
|
140
|
+
<td colspan="2">
|
|
141
|
+
|
|
142
|
+
**Skills-Manager** — 250+ öffentliche Skills von GitHub & `skills.sh` durchsuchen, einmal installieren, mit Claude / Codex / Grok / Antigravity / Gemini / OpenCode / Hermes synchronisieren. Ein-/Ausschalten pro Tool, Undo mit einem Klick.
|
|
143
|
+
|
|
144
|
+
<img src="https://raw.githubusercontent.com/mm7894215/tokentracker/main/docs/screenshots/skills.png" alt="Skills-Manager" />
|
|
145
|
+
|
|
146
|
+
</td>
|
|
147
|
+
</tr>
|
|
148
|
+
</table>
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 🔌 Unterstützte KI-Tools
|
|
153
|
+
|
|
154
|
+
| Tool | Erkennung | Methode |
|
|
155
|
+
|---|---|---|
|
|
156
|
+
| **Claude Code** | ✅ Auto | SessionEnd-Hook in `settings.json` |
|
|
157
|
+
| **Codex CLI** | ✅ Auto | TOML-Notify-Hook in `config.toml` |
|
|
158
|
+
| **Cursor** | ✅ Auto | API + SQLite-Auth-Token |
|
|
159
|
+
| **Kiro** | ✅ Auto | SQLite + JSONL hybrid |
|
|
160
|
+
| **Gemini CLI** | ✅ Auto | SessionEnd-Hook |
|
|
161
|
+
| **OpenCode** | ✅ Auto | Plugin-System + SQLite |
|
|
162
|
+
| **OpenClaw** | ✅ Auto | Session-Plugin |
|
|
163
|
+
| **Every Code** | ✅ Auto | TOML-Notify-Hook |
|
|
164
|
+
| **Hermes Agent** | ✅ Auto | SQLite Sessions-Tabelle (`~/.hermes/state.db`) |
|
|
165
|
+
| **GitHub Copilot** | ✅ Auto | OpenTelemetry-Datei-Exporter (`COPILOT_OTEL_FILE_EXPORTER_PATH`) |
|
|
166
|
+
| **Kimi Code** | ✅ Auto | Passiver `wire.jsonl`-Reader (`~/.kimi/sessions/**/wire.jsonl`) |
|
|
167
|
+
| **oh-my-pi (Pi Coding Agent)** | ✅ Auto | Passiver Reader (`~/.omp/agent/sessions/**/*.jsonl`) |
|
|
168
|
+
| **CodeBuddy** (Tencent) | ✅ Auto | SessionEnd-Hook in `~/.codebuddy/settings.json` (Claude-Code-Fork) |
|
|
169
|
+
| **WorkBuddy** (Tencent) | ✅ Auto | SessionEnd-Hook in `~/.workbuddy/settings.json` (Claude-Code-Fork) + passiver `projects/**/*.jsonl`-Scan |
|
|
170
|
+
| **Grok Build** (xAI) | ✅ Auto | SessionEnd-Hook + passiver `updates.jsonl` / `signals.json`-Scan (`~/.grok/sessions/**/`) |
|
|
171
|
+
| **Kilo CLI** (kilo.ai) | ✅ Auto | Passiver SQLite-Reader (`~/.local/share/kilo/kilo.db`, OpenCode-Fork-Schema) |
|
|
172
|
+
| **Kilo Code** (VS Code Extension) | ✅ Auto | Passiver `ui_messages.json`-Reader (Cursor/Code/CodeBuddy/Windsurf globalStorage) |
|
|
173
|
+
| **Antigravity** | ✅ Auto | Passiver Transcript-Reader (`~/.gemini/{antigravity,antigravity-ide,antigravity-cli}/brain/**/transcript.jsonl`) |
|
|
174
|
+
| **pi** (`@mariozechner/pi-coding-agent`) | ✅ Auto | Passiver Reader (`~/.pi/agent/sessions/**/*.jsonl`) |
|
|
175
|
+
| **Craft Agents** | ✅ Auto | Passiver Session-Reader (`~/.craft-agent` + Workspace-Session-Logs) |
|
|
176
|
+
| **Roo Code** (VS Code Extension) | ✅ Auto | Passiver `ui_messages.json`-Reader (`rooveterinaryinc.roo-cline`) |
|
|
177
|
+
| **Zed Agent** | ✅ Auto | Passiver SQLite-Reader (`threads.db`, nur `zed.dev`-Modelle) |
|
|
178
|
+
| **Goose** (Block) | ✅ Auto | Passiver SQLite-Reader (`sessions.db`, kumulative Deltas) |
|
|
179
|
+
| **Mimo Code** (mimocode) | ✅ Auto | Passiver SQLite-Reader (`~/.local/share/mimocode/mimocode.db`, OpenCode-Fork-Schema; zählt nur mimo-native Turns – gespiegelte Claude/claude-mem-Verläufe werden ausgeschlossen) |
|
|
180
|
+
| **ZCode** (Z.ai) | ✅ Auto | Passiver SQLite-Reader (`~/.zcode/cli/db/db.sqlite`, OpenCode-Fork-Schema; zählt nur Z.ai/BigModel-GLM-Turns – gebündelte Claude/Codex/Gemini-Sub-Agenten werden ausgeschlossen) |
|
|
181
|
+
|
|
182
|
+
> **Muss ich Plugins oder Hooks manuell installieren?** Nein. `tokentracker` (oder `tokentracker init`) erledigt alles beim ersten Start:
|
|
183
|
+
> - **Hook-basiert** (Claude Code, Codex, Gemini, Every Code, CodeBuddy, WorkBuddy, Grok Build) — wir schreiben einen SessionEnd-Hook oder TOML-Notify-Eintrag in die Konfiguration des Tools.
|
|
184
|
+
> - **Plugin-basiert** (OpenCode, OpenClaw) — das Plugin ist im npm-Paket enthalten (`~/.tokentracker/app/openclaw-plugin/`). Wir verlinken es per CLI (`openclaw plugins install --link …` + `enable`). Kein Download, kein Drag-and-Drop.
|
|
185
|
+
> - **Passive Reader** (Cursor, Kiro, Hermes, Kimi Code, Copilot, Grok Build, oh-my-pi, pi, Craft Agents, Kilo CLI, Kilo Code, Roo Code, Antigravity, Zed Agent, Goose, Mimo Code, ZCode) — wir installieren nichts in diesen Tools. Wir lesen nur Dateien, die sie bereits produzieren (SQLite-DB, JSONL, OTEL-Export, Session-Logs).
|
|
186
|
+
>
|
|
187
|
+
> Führe `tokentracker status` aus, um den Status jeder Integration zu prüfen. Zeigt ein Tool `skipped`, erklärt die `detail`-Spalte warum.
|
|
188
|
+
>
|
|
189
|
+
> Tiefergehend: [OpenClaw-Integration & Troubleshooting](docs/openclaw-integration.md).
|
|
190
|
+
|
|
191
|
+
Fehlt dein Tool? [Erstelle ein Issue](https://github.com/mm7894215/TokenTracker/issues/new) — neue Provider sind meist nur eine Parser-Datei entfernt.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 🆚 Warum TokenTracker?
|
|
196
|
+
|
|
197
|
+
> **Suchst du eine ccusage-Alternative mit GUI?** TokenTracker unterstützt 25 Tools (nicht nur Claude Code), bietet eine native macOS-Menüleisten-App + Desktop-Widgets und dedupliziert Token-Datensätze korrekt über alle Provider hinweg – damit deine Zahlen mit dem Billing der Provider übereinstimmen.
|
|
198
|
+
|
|
199
|
+
| | **TokenTracker** | ccusage | Cursor Stats |
|
|
200
|
+
|---|---|---|---|
|
|
201
|
+
| **Unterstützte KI-Tools** | **25** | 1 (Claude) | 1 (Cursor) |
|
|
202
|
+
| **Lokal, kein Konto** | ✅ | ✅ | ❌ |
|
|
203
|
+
| **Native Desktop-App** | ✅ macOS + Windows | ❌ | ❌ |
|
|
204
|
+
| **Desktop-Widgets** | ✅ 4 Widgets | ❌ | ❌ |
|
|
205
|
+
| **Rate-Limit-Tracking** | ✅ 7 Provider | ❌ | Nur Cursor |
|
|
206
|
+
| **Präzises Multi-Provider-Dedup** | ✅ | ❌ ¹ | — |
|
|
207
|
+
|
|
208
|
+
<sub>¹ `reqId`-basierte Deduplizierung zählt Provider ohne Request-ID (DeepSeek / Kimi / MiniMax / Claude-Sub-Agenten) 1,6–3,7× über. TokenTracker dedupliziert über einen zusammengesetzten Schlüssel, sodass die Summen mit dem Billing der jeweiligen Provider übereinstimmen.</sub>
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 🏗️ Wie es funktioniert
|
|
213
|
+
|
|
214
|
+
```mermaid
|
|
215
|
+
flowchart LR
|
|
216
|
+
A["KI-CLI-Tools<br/>Claude · Codex · Cursor · Gemini · Kiro<br/>OpenCode · OpenClaw · Every Code · Hermes · Copilot<br/>Kimi Code · CodeBuddy · WorkBuddy · Grok Build · Kilo CLI · Kilo Code<br/>Antigravity · oh-my-pi · pi · Craft · Roo Code · Zed · Goose · Mimo · ZCode"]
|
|
217
|
+
A -->|Hooks lösen aus| B[Token Tracker]
|
|
218
|
+
B -->|Logs parsen<br/>30-Min-UTC-Buckets| C[(Lokales SQLite)]
|
|
219
|
+
C --> D[Web-Dashboard]
|
|
220
|
+
C --> E[Menüleisten-App]
|
|
221
|
+
C --> F[Desktop-Widgets]
|
|
222
|
+
C -.->|Opt-in| G[(Cloud-Leaderboard)]
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
1. KI-CLI-Tools erzeugen Logs während der normalen Nutzung
|
|
226
|
+
2. Leichtgewichtige Hooks erkennen Änderungen und lösen Sync aus (Cursor nutzt API statt Hooks)
|
|
227
|
+
3. Token-Zahlen werden lokal geparst – nie Prompt- oder Response-Inhalte
|
|
228
|
+
4. In 30-Minuten-UTC-Buckets aggregiert
|
|
229
|
+
5. Dashboard, Menüleisten-App und Widgets lesen vom gleichen lokalen Snapshot
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 🛡️ Datenschutz
|
|
234
|
+
|
|
235
|
+
| Schutz | Beschreibung |
|
|
236
|
+
|---|---|
|
|
237
|
+
| **Kein Content-Upload** | Nur Token-Zahlen und Zeitstempel. Nie Prompts, Responses oder Dateiinhalte. |
|
|
238
|
+
| **Standardmäßig lokal** | Alle Daten bleiben auf deinem Rechner. Das Leaderboard ist vollständig optional. |
|
|
239
|
+
| **Überprüfbar** | Open Source. Sieh selbst in [`src/lib/rollout.js`](src/lib/rollout.js) – nur Zahlen und Zeitstempel. |
|
|
240
|
+
| **Keine Telemetrie** | Kein Analytics, kein Crash-Reporting, kein Phone-Home. |
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## 📦 Konfiguration
|
|
245
|
+
|
|
246
|
+
Die meisten Nutzer brauchen das nie – die Standardwerte sind sinnvoll. Für fortgeschrittene Setups:
|
|
247
|
+
|
|
248
|
+
| Variable | Beschreibung | Standard |
|
|
249
|
+
|---|---|---|
|
|
250
|
+
| `TOKENTRACKER_DEBUG` | Debug-Ausgabe aktivieren (`1` zum Aktivieren) | — |
|
|
251
|
+
| `TOKENTRACKER_HTTP_TIMEOUT_MS` | HTTP-Timeout in Millisekunden | `20000` |
|
|
252
|
+
| `CODEX_HOME` | Codex CLI-Verzeichnis überschreiben | `~/.codex` |
|
|
253
|
+
| `GEMINI_HOME` | Gemini CLI-Verzeichnis überschreiben | `~/.gemini` |
|
|
254
|
+
| `TOKENTRACKER_GROK_HOME` | Grok Build-Verzeichnis für Grok-Integration und Skills-Manager | `~/.grok` |
|
|
255
|
+
| `GROK_HOME` | Legacy-Grok-Build-Verzeichnis, falls `TOKENTRACKER_GROK_HOME` nicht gesetzt | `~/.grok` |
|
|
256
|
+
| `TOKENTRACKER_ANTIGRAVITY_HOME` | Einzelnes Antigravity-Skills-Verzeichnis erzwingen (sonst Auto-Erkennung von `~/.gemini/antigravity` + `~/.gemini/antigravity-ide`) | auto |
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## 🛠️ Entwicklung
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
git clone https://github.com/mm7894215/TokenTracker.git
|
|
264
|
+
cd TokenTracker
|
|
265
|
+
npm install
|
|
266
|
+
|
|
267
|
+
# Dashboard bauen + CLI ausführen
|
|
268
|
+
cd dashboard && npm install && npm run build && cd ..
|
|
269
|
+
node bin/tracker.js
|
|
270
|
+
|
|
271
|
+
# Tests
|
|
272
|
+
npm test
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### macOS-App bauen
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
cd TokenTrackerBar
|
|
279
|
+
npm run dashboard:build # Dashboard-Bundle bauen
|
|
280
|
+
./scripts/bundle-node.sh # Node.js + tokentracker-Quellen bündeln
|
|
281
|
+
xcodegen generate # Xcode-Projekt generieren
|
|
282
|
+
ruby scripts/patch-pbxproj-icon.rb # Icon-Composer-Asset einspielen
|
|
283
|
+
xcodebuild -scheme TokenTrackerBar -configuration Release clean build
|
|
284
|
+
./scripts/create-dmg.sh # .app in DMG verpacken
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Erfordert **Xcode 16+** und [XcodeGen](https://github.com/yonaskolb/XcodeGen).
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## 🔧 Fehlerbehebung
|
|
292
|
+
|
|
293
|
+
### CLI
|
|
294
|
+
|
|
295
|
+
<details>
|
|
296
|
+
<summary><b>Fehler „engines.node" oder nicht unterstützte Node-Version</b></summary>
|
|
297
|
+
|
|
298
|
+
<br/>
|
|
299
|
+
|
|
300
|
+
TokenTracker benötigt **Node 20+**. Prüfe deine Version:
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
node --version
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Falls niedriger, aktualisiere via [nvm](https://github.com/nvm-sh/nvm), [fnm](https://github.com/Schniz/fnm) oder deinem Paketmanager (`brew upgrade node`, `apt install nodejs`).
|
|
307
|
+
|
|
308
|
+
</details>
|
|
309
|
+
|
|
310
|
+
<details>
|
|
311
|
+
<summary><b>Port 7680 bereits belegt</b></summary>
|
|
312
|
+
|
|
313
|
+
<br/>
|
|
314
|
+
|
|
315
|
+
Der Dashboard-Server wählt automatisch den nächsten freien Port (`7681`, `7682`, …), wenn `7680` belegt ist. Der tatsächliche Port wird beim Start ausgegeben. Um einen bestimmten Port zu erzwingen:
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
PORT=7700 tokentracker serve
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
Herausfinden, was `7680` blockiert:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
lsof -i :7680
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
</details>
|
|
328
|
+
|
|
329
|
+
<details>
|
|
330
|
+
<summary><b>Ein Provider wird nicht erkannt</b></summary>
|
|
331
|
+
|
|
332
|
+
<br/>
|
|
333
|
+
|
|
334
|
+
Integrationsstatus prüfen:
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
tokentracker status
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
Für einen tiefergehenden Health Check:
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
tokentracker doctor
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
Zeigt ein Provider `not configured`, obwohl du ihn nutzt, versuche `tokentracker activate-if-needed`. Falls immer noch fehlend, [erstelle ein Issue](https://github.com/mm7894215/TokenTracker/issues/new) mit der `doctor`-Ausgabe.
|
|
347
|
+
|
|
348
|
+
</details>
|
|
349
|
+
|
|
350
|
+
<details>
|
|
351
|
+
<summary><b>Hooks deinstallieren und Konfiguration löschen</b></summary>
|
|
352
|
+
|
|
353
|
+
<br/>
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
tokentracker uninstall
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
Entfernt alle von TokenTracker installierten Hooks sowie die lokale Konfiguration und Daten. Kann bedenkenlos wiederholt werden.
|
|
360
|
+
|
|
361
|
+
</details>
|
|
362
|
+
|
|
363
|
+
### macOS-App
|
|
364
|
+
|
|
365
|
+
<details>
|
|
366
|
+
<summary><b>„TokenTrackerBar kann nicht geöffnet werden" – nicht verifizierter Entwickler</b></summary>
|
|
367
|
+
|
|
368
|
+
<br/>
|
|
369
|
+
|
|
370
|
+
TokenTrackerBar ist **ad-hoc signiert** (nicht notariell beglaubigt mit einer Apple Developer ID – das erfordert ein kostenpflichtiges Developer-Konto). Gatekeeper blockiert sie beim ersten Start.
|
|
371
|
+
|
|
372
|
+
1. **Systemeinstellungen → Datenschutz & Sicherheit** öffnen
|
|
373
|
+
2. Zum Bereich **Sicherheit** scrollen – dort steht *„TokenTrackerBar wurde blockiert, um deinen Mac zu schützen."*
|
|
374
|
+
3. **Trotzdem öffnen** klicken
|
|
375
|
+
4. Mit **Öffnen** im Folgedialog bestätigen (Authentifizierung erforderlich)
|
|
376
|
+
|
|
377
|
+
Nur einmal nötig. Alternative unter älterem macOS: Rechtsklick auf die App im Finder → **Öffnen** → **Öffnen** im Bestätigungsdialog.
|
|
378
|
+
|
|
379
|
+
</details>
|
|
380
|
+
|
|
381
|
+
<details>
|
|
382
|
+
<summary><b>„TokenTrackerBar ist beschädigt und kann nicht geöffnet werden"</b></summary>
|
|
383
|
+
|
|
384
|
+
<br/>
|
|
385
|
+
|
|
386
|
+
Das ist Gatekeeper, das auf das `com.apple.quarantine`-Attribut reagiert – kein echtes Problem. Einmalig beheben mit:
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
xattr -cr /Applications/TokenTrackerBar.app
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
Danach öffnet die App normal.
|
|
393
|
+
|
|
394
|
+
</details>
|
|
395
|
+
|
|
396
|
+
<details>
|
|
397
|
+
<summary><b>„TokenTrackerBar möchte auf Daten anderer Apps zugreifen"</b></summary>
|
|
398
|
+
|
|
399
|
+
<br/>
|
|
400
|
+
|
|
401
|
+
Das wird für die **Cursor**- und **Kiro**-Integration benötigt. Sie speichern Auth-Tokens / Nutzungsdaten in eigenen `~/Library/Application Support/`-Ordnern, die macOS mit der App-Management-Berechtigung schützt.
|
|
402
|
+
|
|
403
|
+
- ✅ **Erlauben** klicken, wenn du Cursor oder Kiro nutzt
|
|
404
|
+
- ❌ **Nicht erlauben** klicken, wenn nicht – diese Provider werden übersprungen, alles andere funktioniert
|
|
405
|
+
|
|
406
|
+
Nach einmaliger Gewährung wird die Berechtigung gemerkt. Ad-hoc-signierte Builds fragen nach jedem Update erneut, da jeder Build eine neue Signatur hat.
|
|
407
|
+
|
|
408
|
+
</details>
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
## 🪪 README-Badges
|
|
413
|
+
|
|
414
|
+
Zeig deine Token-Nutzung auf deinem GitHub-Profil oder in deiner Projekt-README.
|
|
415
|
+
|
|
416
|
+
So findest du `DEINE_USER_ID`:
|
|
417
|
+
1. Führe `tokentracker` aus, öffne das Dashboard und melde dich beim Leaderboard an.
|
|
418
|
+
2. Gehe zu **Einstellungen → Konto**.
|
|
419
|
+
3. Nutze die dort angezeigte **User ID**. Auf Headless-Maschinen schreibt `tokentracker device-login` die `user_id` ebenfalls nach `~/.tokentracker/tracker/config.json`.
|
|
420
|
+
|
|
421
|
+
Dann füge eines davon ein:
|
|
422
|
+
|
|
423
|
+
```markdown
|
|
424
|
+
[](https://github.com/mm7894215/TokenTracker)
|
|
425
|
+
[](https://github.com/mm7894215/TokenTracker)
|
|
426
|
+
[](https://github.com/mm7894215/TokenTracker)
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
> Der Link verweist standardmäßig auf das TokenTracker-Repo, damit jeder Klick anderen Entwicklern hilft, das Tool zu entdecken. Du kannst ihn gegen dein Leaderboard-Profil, deine Website oder `https://www.tokentracker.cc` austauschen.
|
|
430
|
+
|
|
431
|
+
Shields.io-kompatible Badges mit deinen aktuellen Gesamtwerten (60s Cache):
|
|
432
|
+
|
|
433
|
+
| Parameter | Werte | Standard |
|
|
434
|
+
|---|---|---|
|
|
435
|
+
| `metric` | `tokens` / `cost` / `rank` | `tokens` |
|
|
436
|
+
| `period` | `week` / `month` / `total` | `total` |
|
|
437
|
+
| `style` | `flat` / `flat-square` | `flat` |
|
|
438
|
+
| `label` | beliebiger kurzer Text | Metrik-Name |
|
|
439
|
+
| `color` | hex, z. B. `ff6b35` | Marken-Grün |
|
|
440
|
+
|
|
441
|
+
> **Datenschutz**: Badges werden nur für Profile aufgelöst, bei denen das Leaderboard-Sharing **aktiv** ist (`Einstellungen → Konto → Öffentliches Profil`). Private Profile zeigen einen „private"-Platzhalter.
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## ⭐ Stern-Verlauf
|
|
446
|
+
|
|
447
|
+
<a href="https://star-history.com/#mm7894215/TokenTracker&Date">
|
|
448
|
+
<img src="https://api.star-history.com/svg?repos=mm7894215/TokenTracker&type=Date" alt="Star-History-Diagramm" width="600" />
|
|
449
|
+
</a>
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
## 🤝 Beitragen & Support
|
|
454
|
+
|
|
455
|
+
- **Bugs / Feature-Wünsche**: [Issue erstellen](https://github.com/mm7894215/TokenTracker/issues/new)
|
|
456
|
+
- **Sicherheit**: Siehe [SECURITY.md](SECURITY.md) – bitte keine öffentlichen Issues für Sicherheitsmeldungen
|
|
457
|
+
- **Pull Requests**: Siehe [CONTRIBUTING.md](CONTRIBUTING.md) für Setup, Tests und das Hinzufügen neuer KI-Tool-Integrationen
|
|
458
|
+
- **Fragen / Vorstellungen**: [GitHub Discussions](https://github.com/mm7894215/TokenTracker/discussions)
|
|
459
|
+
|
|
460
|
+
## 🙏 Danksagungen
|
|
461
|
+
|
|
462
|
+
Das Clawd-Charakterdesign gehört Anthropic. Dies ist ein Community-Projekt ohne offizielle Verbindung zu Anthropic.
|
|
463
|
+
|
|
464
|
+
## Lizenz
|
|
465
|
+
|
|
466
|
+
[MIT](LICENSE)
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
<div align="center">
|
|
471
|
+
|
|
472
|
+
**Token Tracker** – Quantifiziere deine KI-Ausgaben.
|
|
473
|
+
|
|
474
|
+
<a href="https://www.tokentracker.cc">tokentracker.cc</a> · <a href="https://www.npmjs.com/package/tokentracker-cli">npm</a> · <a href="https://github.com/mm7894215/TokenTracker">GitHub</a>
|
|
475
|
+
|
|
476
|
+
</div>
|
package/README.ja.md
CHANGED
package/README.ko.md
CHANGED
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Token Tracker
|
|
4
4
|
|
|
5
|
-
**English** · [简体中文](./README.zh-CN.md) · [日本語](./README.ja.md) · [한국어](./README.ko.md)
|
|
5
|
+
**English** · [简体中文](./README.zh-CN.md) · [日本語](./README.ja.md) · [한국어](./README.ko.md) · [Deutsch](./README.de.md)
|
|
6
6
|
|
|
7
7
|
### Know exactly what you're spending on AI — across every CLI
|
|
8
8
|
|
package/README.zh-CN.md
CHANGED