tokentracker-cli 1.4.11 → 1.4.12

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.
Files changed (121) hide show
  1. package/README.de.md +5 -4
  2. package/README.ja.md +5 -4
  3. package/README.ko.md +5 -4
  4. package/README.md +6 -4
  5. package/README.zh-CN.md +5 -4
  6. package/dashboard/dist/assets/{AchievementBadge-DALWiLQQ.js → AchievementBadge-BwrL59nq.js} +1 -1
  7. package/dashboard/dist/assets/{AchievementsPage-CjWobmn1.js → AchievementsPage-DG0dvG3d.js} +2 -2
  8. package/dashboard/dist/assets/{AchievementsSection-CTryGWII.js → AchievementsSection-NrjlZjZK.js} +1 -1
  9. package/dashboard/dist/assets/{BadgeDetailModal-D4lMxewA.js → BadgeDetailModal-BjgBAb-0.js} +1 -1
  10. package/dashboard/dist/assets/{BotAnimated-CsLNf9WH.js → BotAnimated-D7gMmkaM.js} +1 -1
  11. package/dashboard/dist/assets/{Card-BOnNTrmF.js → Card-CgvwIS5W.js} +1 -1
  12. package/dashboard/dist/assets/{CloudCheckoutPage-CrY15xqT.js → CloudCheckoutPage-DKDpT0HI.js} +1 -1
  13. package/dashboard/dist/assets/{CloudPage-hNSCMzVG.js → CloudPage-BOfqPAAH.js} +2 -2
  14. package/dashboard/dist/assets/{CommandPalette-CE4UfPXk.js → CommandPalette-BfRKy_dn.js} +1 -1
  15. package/dashboard/dist/assets/{CommunityStatsModal-CLUegC6z.js → CommunityStatsModal-BcVSszit.js} +1 -1
  16. package/dashboard/dist/assets/{ConfirmModal-D3wwfiYB.js → ConfirmModal-Be4EVpPT.js} +1 -1
  17. package/dashboard/dist/assets/{Controls-B_ta_8zw.js → Controls-vrG8LLBe.js} +1 -1
  18. package/dashboard/dist/assets/{DashboardPage-RevVPZFt.js → DashboardPage-DvhF72XX.js} +1 -1
  19. package/dashboard/dist/assets/{DateRangePopover-CYud1FKu.js → DateRangePopover-CZVMdPEq.js} +1 -1
  20. package/dashboard/dist/assets/{DevicePage-D_eSLfM3.js → DevicePage-BeNIjTqa.js} +1 -1
  21. package/dashboard/dist/assets/{DialogClose-Bu1ct4DA.js → DialogClose-BaNPZ3Bu.js} +1 -1
  22. package/dashboard/dist/assets/DialogDescription-LHQ-SC4e.js +1 -0
  23. package/dashboard/dist/assets/{DialogTitle-BJxM52J1.js → DialogTitle-B3IwNXro.js} +1 -1
  24. package/dashboard/dist/assets/{ElectricLogo-DYVZebgD.js → ElectricLogo-DC-03HL_.js} +1 -1
  25. package/dashboard/dist/assets/{FadeIn-CVaq5ALh.js → FadeIn-DhUnSf2V.js} +1 -1
  26. package/dashboard/dist/assets/{HeaderGithubStar-BCwYSguq.js → HeaderGithubStar-BiWRLl7V.js} +1 -1
  27. package/dashboard/dist/assets/{HoverTooltip-YsG-TdOX.js → HoverTooltip-DLPiBqDu.js} +1 -1
  28. package/dashboard/dist/assets/{IpCheckPage-C0qiyZXr.js → IpCheckPage-DKjg0V9L.js} +1 -1
  29. package/dashboard/dist/assets/{LandingPage-BlRJWwvx.js → LandingPage-XQuTnBMQ.js} +2 -2
  30. package/dashboard/dist/assets/{LeaderboardPage-DcCCKL2q.js → LeaderboardPage-xAbo5mzo.js} +2 -2
  31. package/dashboard/dist/assets/{LeaderboardProBadge-I_oW0KCc.js → LeaderboardProBadge-mMiEeaYS.js} +1 -1
  32. package/dashboard/dist/assets/{LeaderboardProfileModal-DM5Vc7MB.js → LeaderboardProfileModal-B7q0Kk6B.js} +3 -3
  33. package/dashboard/dist/assets/{LeaderboardProfilePage-DnYBBGNe.js → LeaderboardProfilePage-Bru_6wgX.js} +1 -1
  34. package/dashboard/dist/assets/{LimitsPage-Cyy3PI8p.js → LimitsPage-DQH6ziz4.js} +1 -1
  35. package/dashboard/dist/assets/{LocalOnlyNotice-083BoEX9.js → LocalOnlyNotice-B-lxih4W.js} +1 -1
  36. package/dashboard/dist/assets/{LoginCard-CN1db2Rj.js → LoginCard-ChNsRYE2.js} +1 -1
  37. package/dashboard/dist/assets/{LoginModal-Dfi7_ory.js → LoginModal-CRw3PgMi.js} +1 -1
  38. package/dashboard/dist/assets/{LoginPage-BzMdiYlx.js → LoginPage-CVsbYn-h.js} +1 -1
  39. package/dashboard/dist/assets/{PetPage-CsE95lfJ.js → PetPage-BwEnQLLY.js} +2 -2
  40. package/dashboard/dist/assets/{PopoverPopup-U7DTTTE0.js → PopoverPopup-CDOtxSL8.js} +1 -1
  41. package/dashboard/dist/assets/{ProviderIcon-CnLfT5d9.js → ProviderIcon-Dsu1p6gG.js} +1 -1
  42. package/dashboard/dist/assets/{ResetPasswordPage-De2RzCj-.js → ResetPasswordPage-BzpaSORs.js} +1 -1
  43. package/dashboard/dist/assets/{Select-BS5MWHdB.js → Select-62UH-yLs.js} +1 -1
  44. package/dashboard/dist/assets/{SelectItemText-D3i379K-.js → SelectItemText-aTexKmQ0.js} +1 -1
  45. package/dashboard/dist/assets/{SelfHostPage-CTL0dnp5.js → SelfHostPage-CmhV0dms.js} +1 -1
  46. package/dashboard/dist/assets/{ServiceStatusPage-BmEvOk3B.js → ServiceStatusPage-CLWO33w1.js} +1 -1
  47. package/dashboard/dist/assets/{SessionsPage-DIog3JA_.js → SessionsPage-BNCDKb58.js} +1 -1
  48. package/dashboard/dist/assets/{SettingsPage-Cgpiwh-C.js → SettingsPage-DybHncPO.js} +3 -3
  49. package/dashboard/dist/assets/{SkillsPage-DpagshiB.js → SkillsPage-BV5R3VhT.js} +1 -1
  50. package/dashboard/dist/assets/{TokenGalaxy-Do1U_-E3.js → TokenGalaxy-mNNAo6Ai.js} +1 -1
  51. package/dashboard/dist/assets/{TooltipPopup-MOAnEqf3.js → TooltipPopup-D00SVpLP.js} +1 -1
  52. package/dashboard/dist/assets/{TrendMonitor-B55RUbQm.js → TrendMonitor-aNIpzAO-.js} +1 -1
  53. package/dashboard/dist/assets/{WidgetsPage-CehbGk-6.js → WidgetsPage-COjZIMo8.js} +1 -1
  54. package/dashboard/dist/assets/{WrappedPage-Cqt-U0Zx.js → WrappedPage-af-bDIfB.js} +1 -1
  55. package/dashboard/dist/assets/{__vite-browser-external-CR0vo15z.js → __vite-browser-external-KHpR2q-A.js} +2 -2
  56. package/dashboard/dist/assets/{agent-logos-DuW-DWAl.js → agent-logos-D9Uq5b6y.js} +1 -1
  57. package/dashboard/dist/assets/{arrow-left-DIvQjuji.js → arrow-left-Pt53BsA4.js} +1 -1
  58. package/dashboard/dist/assets/{arrow-right-BURLycHb.js → arrow-right-stBCZPot.js} +1 -1
  59. package/dashboard/dist/assets/{arrow-up-right-Bl1QMMkY.js → arrow-up-right-ltUBOD-o.js} +1 -1
  60. package/dashboard/dist/assets/{calendar-days-CmIWJC3A.js → calendar-days-BMEtkPFp.js} +1 -1
  61. package/dashboard/dist/assets/{check-DB2ZTWor.js → check-ax5wQf5Q.js} +1 -1
  62. package/dashboard/dist/assets/{chevron-down-BflN3NJt.js → chevron-down-gS62rNQt.js} +1 -1
  63. package/dashboard/dist/assets/{cloud-checkout-BugQolSC.js → cloud-checkout-DDtdbz7C.js} +1 -1
  64. package/dashboard/dist/assets/{composite-DJsqXsjA.js → composite-DVm8byy8.js} +1 -1
  65. package/dashboard/dist/assets/{copy-CtB-GPN2.js → copy-VbASSQO1.js} +1 -1
  66. package/dashboard/dist/assets/{download-x5Botpqc.js → download-D1g6OCRI.js} +1 -1
  67. package/dashboard/dist/assets/{external-link-DH9sRkJW.js → external-link-CGUQrKDL.js} +1 -1
  68. package/dashboard/dist/assets/{flame-DEcsokoL.js → flame-Dlvc-qIH.js} +1 -1
  69. package/dashboard/dist/assets/{format-tokens-BH0jc1MG.js → format-tokens-CB1QfZsj.js} +1 -1
  70. package/dashboard/dist/assets/{gift-BZk9muk9.js → gift-DydflDeL.js} +1 -1
  71. package/dashboard/dist/assets/{icons-BMf9-bfS.js → icons-B_xYF8_-.js} +1 -1
  72. package/dashboard/dist/assets/{index-axJYocSc.js → index-BRNltZbP.js} +1 -1
  73. package/dashboard/dist/assets/{index-BEtrik3j.js → index-ByXXZlPn.js} +1 -1
  74. package/dashboard/dist/assets/{index-Cm-9apOR.js → index-CuLrp2D2.js} +1 -1
  75. package/dashboard/dist/assets/{index-TErx-xPb.js → index-cidqWI7C.js} +1 -1
  76. package/dashboard/dist/assets/{info-DWdPAxu8.js → info-D6-LIywq.js} +1 -1
  77. package/dashboard/dist/assets/{link-2-c3ZZd-w-.js → link-2-BbuXAF5y.js} +1 -1
  78. package/dashboard/dist/assets/{loader-circle-BKdtxfky.js → loader-circle-DAeCHAyj.js} +1 -1
  79. package/dashboard/dist/assets/{local-usage-transfer-BFTJyQl3.js → local-usage-transfer-BejRwzi4.js} +1 -1
  80. package/dashboard/dist/assets/{modifiers.esm-C3yIfOiP.js → modifiers.esm-CV2S03sv.js} +1 -1
  81. package/dashboard/dist/assets/{monitor-smartphone-DbdL7Mei.js → monitor-smartphone-Dj_u5s6h.js} +1 -1
  82. package/dashboard/dist/assets/{play-qtWt2ArI.js → play-DrcSicai.js} +1 -1
  83. package/dashboard/dist/assets/{plus-C_-__5vi.js → plus-BwYQW7nf.js} +1 -1
  84. package/dashboard/dist/assets/{provider-display-IKHnhvaj.js → provider-display-Bgfy-2rn.js} +2 -2
  85. package/dashboard/dist/assets/{react-H6DfeMUm.js → react-BXby2gfP.js} +1 -1
  86. package/dashboard/dist/assets/{safePolygon-OEQJQTVa.js → safePolygon-B8DY85mD.js} +1 -1
  87. package/dashboard/dist/assets/{search-MZE76qNU.js → search-SCMosATz.js} +1 -1
  88. package/dashboard/dist/assets/{server-CUWYLMjG.js → server-DoD96f86.js} +1 -1
  89. package/dashboard/dist/assets/{shield-check-lA0Ja0RB.js → shield-check-CESJcEp7.js} +1 -1
  90. package/dashboard/dist/assets/{skills-api-CJJIPvSe.js → skills-api-DE71Ylhd.js} +1 -1
  91. package/dashboard/dist/assets/{sortable.esm-DTnvt1IN.js → sortable.esm-EgVv2jPt.js} +1 -1
  92. package/dashboard/dist/assets/{store-CC0YKrxA.js → store-mMQPBMoh.js} +1 -1
  93. package/dashboard/dist/assets/{terminal-yc2l_-3m.js → terminal-DxNM-IG2.js} +1 -1
  94. package/dashboard/dist/assets/{trash-Dl9f-o2h.js → trash-rywOpT2_.js} +1 -1
  95. package/dashboard/dist/assets/{use-community-stats-CZCKWCO7.js → use-community-stats-BQw06Twe.js} +1 -1
  96. package/dashboard/dist/assets/{use-latest-request-guard-DTrOu0gD.js → use-latest-request-guard-BvouGm-c.js} +1 -1
  97. package/dashboard/dist/assets/{use-limits-display-prefs-DGqP231e.js → use-limits-display-prefs-C5_9TDSy.js} +1 -1
  98. package/dashboard/dist/assets/{use-native-settings-BEATnxB6.js → use-native-settings-BxuddjkP.js} +1 -1
  99. package/dashboard/dist/assets/{use-ordered-list-C_HTFP5C.js → use-ordered-list-Cwqc5XA8.js} +1 -1
  100. package/dashboard/dist/assets/use-reduced-motion-DU3FvZwM.js +1 -0
  101. package/dashboard/dist/assets/{use-transform-DM0QGq_O.js → use-transform-Dl-SvALB.js} +1 -1
  102. package/dashboard/dist/assets/{use-usage-limits-BnjBG2fM.js → use-usage-limits-BqmHYYc3.js} +1 -1
  103. package/dashboard/dist/assets/{useCurrency-xQrRFokb.js → useCurrency-B1XK_Z0N.js} +1 -1
  104. package/dashboard/dist/assets/{usePositioner-DkVdsypM.js → usePositioner-BvqDMGZo.js} +1 -1
  105. package/dashboard/dist/assets/{useTokenFormat-CvA_kIPe.js → useTokenFormat-pPWJeWRe.js} +1 -1
  106. package/dashboard/dist/assets/{zap-BJNS4i_u.js → zap-DKYjQi1B.js} +1 -1
  107. package/dashboard/dist/index.html +13 -11
  108. package/dashboard/dist/ip-check.html +1 -1
  109. package/dashboard/dist/leaderboard.html +1 -1
  110. package/dashboard/dist/llms.txt +3 -2
  111. package/dashboard/dist/share.html +1 -1
  112. package/package.json +2 -2
  113. package/src/commands/init.js +1 -0
  114. package/src/commands/status.js +10 -0
  115. package/src/commands/sync.js +24 -0
  116. package/src/lib/pricing/curated-overrides.json +66 -0
  117. package/src/lib/pricing/seed-snapshot.json +1 -1
  118. package/src/lib/rollout.js +277 -0
  119. package/src/lib/trae-cn-config.js +36 -20
  120. package/dashboard/dist/assets/DialogDescription-GUHQVNGf.js +0 -1
  121. package/dashboard/dist/assets/use-reduced-motion-CfCWjE-a.js +0 -1
@@ -122,7 +122,7 @@
122
122
  "price": "0",
123
123
  "priceCurrency": "USD"
124
124
  },
125
- "description": "Local-first AI coding usage tracker for 46 tools, with a desktop pet, four widgets, achievements, native macOS and Windows apps, accurate cross-provider deduplication, and no prompt collection."
125
+ "description": "Local-first AI coding usage tracker for 47 tools, with a desktop pet, four widgets, achievements, native macOS and Windows apps, accurate cross-provider deduplication, and no prompt collection."
126
126
  },
127
127
  {
128
128
  "@type": "WebSite",
@@ -208,7 +208,8 @@
208
208
  { "@type": "ListItem", "position": 43, "name": "TRAE" },
209
209
  { "@type": "ListItem", "position": 44, "name": "WorkBuddy AI" },
210
210
  { "@type": "ListItem", "position": 45, "name": "DuMate" },
211
- { "@type": "ListItem", "position": 46, "name": "Muse Code" }
211
+ { "@type": "ListItem", "position": 46, "name": "Muse Code" },
212
+ { "@type": "ListItem", "position": 47, "name": "OpenSquilla" }
212
213
  ]
213
214
  },
214
215
  {
@@ -227,7 +228,7 @@
227
228
  "name": "Which AI coding CLIs does Token Tracker support?",
228
229
  "acceptedAnswer": {
229
230
  "@type": "Answer",
230
- "text": "Token Tracker supports 46 AI coding tools, including Claude Code, Codex CLI, AStudio, Cursor, Gemini CLI, Antigravity, Kiro, OpenCode, OpenClaw, Every Code, Hermes Agent, GitHub Copilot, Kimi Code, CodeBuddy, WorkBuddy, WorkBuddy AI, Grok Build, oh-my-pi, OmO, pi, Dots, Prime Agent, Craft Agents, Reasonix, Muse Code, Kilo CLI, Kilo Code, Roo Code, Zed Agent, Goose, Droid, Mimo Code, DuMate, ZCode, Qoder, AnythingLLM Desktop, Claude Science, DeepSeek Harness, TRAE Work CN, LM Studio, Unsloth Studio, Devin CLI, Cline, MiniMax Code, Command Code, and TRAE."
231
+ "text": "Token Tracker supports 47 AI coding tools, including Claude Code, Codex CLI, AStudio, Cursor, Gemini CLI, Antigravity, Kiro, OpenCode, OpenSquilla, OpenClaw, Every Code, Hermes Agent, GitHub Copilot, Kimi Code, CodeBuddy, WorkBuddy, WorkBuddy AI, Grok Build, oh-my-pi, OmO, pi, Dots, Prime Agent, Craft Agents, Reasonix, Muse Code, Kilo CLI, Kilo Code, Roo Code, Zed Agent, Goose, Droid, Mimo Code, DuMate, ZCode, Qoder, AnythingLLM Desktop, Claude Science, DeepSeek Harness, TRAE Work CN, LM Studio, Unsloth Studio, Devin CLI, Cline, MiniMax Code, Command Code, and TRAE."
231
232
  }
232
233
  },
233
234
  {
@@ -259,7 +260,7 @@
259
260
  "name": "How do I monitor AI token usage and cost across tools?",
260
261
  "acceptedAnswer": {
261
262
  "@type": "Answer",
262
- "text": "Install Token Tracker with npx tokentracker-cli. It is an AI token usage and cost tracker that monitors token consumption and spend across all 46 supported tools in one dashboard, with per-model pricing across 2,200+ models so you can see cost by model, project, and time window without manual tracking."
263
+ "text": "Install Token Tracker with npx tokentracker-cli. It is an AI token usage and cost tracker that monitors token consumption and spend across all 47 supported tools in one dashboard, with per-model pricing across 2,200+ models so you can see cost by model, project, and time window without manual tracking."
263
264
  }
264
265
  },
265
266
  {
@@ -275,7 +276,7 @@
275
276
  ]
276
277
  }
277
278
  </script>
278
- <script type="module" crossorigin src="/assets/__vite-browser-external-CR0vo15z.js"></script>
279
+ <script type="module" crossorigin src="/assets/__vite-browser-external-KHpR2q-A.js"></script>
279
280
  <link rel="stylesheet" crossorigin href="/assets/__vite-browser-external-C9a2vCBN.css">
280
281
  </head>
281
282
  <body>
@@ -283,7 +284,7 @@
283
284
  <h1>Token Tracker: monitor AI token usage and cost with a local dashboard and desktop companion</h1>
284
285
  <p>
285
286
  Token Tracker is a free, open-source, local-first dashboard that automatically tracks and monitors token usage
286
- and cost across 46 AI coding tools — including Claude Code, OpenAI Codex, AStudio, Cursor, Gemini CLI, LM Studio, and Unsloth Studio. A desktop pet
287
+ and cost across 47 AI coding tools — including Claude Code, OpenAI Codex, AStudio, Cursor, Gemini CLI, LM Studio, and Unsloth Studio. A desktop pet
287
288
  reacts to real token activity, four desktop widgets
288
289
  keep usage visible, and achievements turn coding history into progress. Native macOS and Windows apps
289
290
  sit on top of accurate cross-provider deduplication. Token counts only — never prompts or conversations.
@@ -308,7 +309,7 @@
308
309
  <li><strong>Desktop pet</strong> — a pixel companion that reacts to real token burn, streaks, and rest.</li>
309
310
  <li><strong>Four desktop widgets</strong> — usage, activity heatmap, top models, and limits at a glance.</li>
310
311
  <li><strong>Achievements</strong> — unlock milestones from local and optional account-wide activity.</li>
311
- <li><strong>Unified usage dashboard</strong> — input, output, cached, and cache-creation tokens across 46 AI coding tools.</li>
312
+ <li><strong>Unified usage dashboard</strong> — input, output, cached, and cache-creation tokens across 47 AI coding tools.</li>
312
313
  <li><strong>Cost analysis</strong> — per-model pricing across 2,200+ models with an offline snapshot.</li>
313
314
  <li><strong>Usage limits view</strong> — live quota and subscription status for 18 providers, with last-good caching for local providers such as Antigravity and Qoder.</li>
314
315
  <li><strong>Service Status page</strong> — live operational and incident status from eight official provider status pages.</li>
@@ -319,11 +320,11 @@
319
320
  </ul>
320
321
  <p><em>Privacy by design</em>: token counts only, never prompts or conversation content. Local-first; cloud sync is optional and powers only the public leaderboard.</p>
321
322
 
322
- <h2>Supported AI coding tools (46)</h2>
323
+ <h2>Supported AI coding tools (47)</h2>
323
324
  <p>
324
325
  Use Token Tracker as a Claude Code token tracker, Codex token tracker, Cursor token tracker,
325
326
  Gemini token tracker, OpenCode token tracker, GitHub Copilot token tracker, or DeepSeek Harness token tracker — one dashboard
326
- covers all 46 tools below.
327
+ covers all 47 tools below.
327
328
  </p>
328
329
  <ul>
329
330
  <li><strong>Claude Code</strong> — Anthropic's official coding agent CLI; integrated via SessionEnd hook.</li>
@@ -334,6 +335,7 @@
334
335
  <li><strong>Antigravity</strong> — passive transcript reader.</li>
335
336
  <li><strong>Kiro</strong> — SQLite and JSONL readers.</li>
336
337
  <li><strong>OpenCode</strong> — open-source coding agent; plugin + SQLite audit.</li>
338
+ <li><strong>OpenSquilla</strong> — passive SQLite usage reader for finalized model rows; never reads transcript content.</li>
337
339
  <li><strong>OpenClaw</strong> — session plugin integration.</li>
338
340
  <li><strong>Every Code</strong> — Codex-compatible TOML notify hook.</li>
339
341
  <li><strong>Hermes Agent</strong> — SQLite sessions table at <code>~/.hermes/state.db</code>.</li>
@@ -402,7 +404,7 @@
402
404
  <p>Run <code>npx tokentracker-cli</code>. The CLI auto-detects your AI coding tools, installs hooks, and opens the dashboard.</p>
403
405
 
404
406
  <h3>Which AI coding tools does Token Tracker support?</h3>
405
- <p>Token Tracker supports 46 tools: Claude Code, Codex CLI, AStudio, Cursor, Gemini CLI, Antigravity, Kiro, OpenCode, OpenClaw, Every Code, Hermes Agent, GitHub Copilot, Kimi Code, CodeBuddy, WorkBuddy, WorkBuddy AI, Grok Build, oh-my-pi, OmO, pi, Dots, Prime Agent, Craft Agents, Reasonix, Muse Code, Kilo CLI, Kilo Code, Roo Code, Zed Agent, Goose, Droid, Mimo Code, DuMate, ZCode, Qoder, AnythingLLM Desktop, Claude Science, DeepSeek Harness, TRAE Work CN, LM Studio, Unsloth Studio, Devin CLI, Cline, MiniMax Code, Command Code, and TRAE.</p>
407
+ <p>Token Tracker supports 47 tools: Claude Code, Codex CLI, AStudio, Cursor, Gemini CLI, Antigravity, Kiro, OpenCode, OpenSquilla, OpenClaw, Every Code, Hermes Agent, GitHub Copilot, Kimi Code, CodeBuddy, WorkBuddy, WorkBuddy AI, Grok Build, oh-my-pi, OmO, pi, Dots, Prime Agent, Craft Agents, Reasonix, Muse Code, Kilo CLI, Kilo Code, Roo Code, Zed Agent, Goose, Droid, Mimo Code, DuMate, ZCode, Qoder, AnythingLLM Desktop, Claude Science, DeepSeek Harness, TRAE Work CN, LM Studio, Unsloth Studio, Devin CLI, Cline, MiniMax Code, Command Code, and TRAE.</p>
406
408
 
407
409
  <h3>Is Token Tracker free and open source?</h3>
408
410
  <p>Yes. Source on GitHub at <a href="https://github.com/xiufengsun/TokenTracker">github.com/xiufengsun/TokenTracker</a>; npm package <code>tokentracker-cli</code>.</p>
@@ -414,7 +416,7 @@
414
416
  <p>Input, output, cached, and cache-creation tokens per model, project, and time window. It also surfaces usage limits for 18 providers, including Claude, Codex, Cursor, Gemini, Antigravity, Qoder, Qoder CN, Command Code, Devin, and WorkBuddy.</p>
415
417
 
416
418
  <h3>How do I monitor AI token usage and cost across tools?</h3>
417
- <p>Token Tracker is an AI token usage and cost tracker: install it with <code>npx tokentracker-cli</code>, and it monitors token consumption and spend across all 46 tools in one dashboard, with per-model pricing across 2,200+ models so you can see cost by model, project, and time window without manual tracking.</p>
419
+ <p>Token Tracker is an AI token usage and cost tracker: install it with <code>npx tokentracker-cli</code>, and it monitors token consumption and spend across all 47 tools in one dashboard, with per-model pricing across 2,200+ models so you can see cost by model, project, and time window without manual tracking.</p>
418
420
 
419
421
  <h3>Does Token Tracker work offline?</h3>
420
422
  <p>Yes. Token Tracker is local-first. All parsing, aggregation, and dashboard rendering happen on your machine. Cloud sync is optional and powers only the public leaderboard.</p>
@@ -164,7 +164,7 @@
164
164
  ]
165
165
  }
166
166
  </script>
167
- <script type="module" crossorigin src="/assets/__vite-browser-external-CR0vo15z.js"></script>
167
+ <script type="module" crossorigin src="/assets/__vite-browser-external-KHpR2q-A.js"></script>
168
168
  <link rel="stylesheet" crossorigin href="/assets/__vite-browser-external-C9a2vCBN.css">
169
169
  </head>
170
170
  <body>
@@ -135,7 +135,7 @@
135
135
  ]
136
136
  }
137
137
  </script>
138
- <script type="module" crossorigin src="/assets/__vite-browser-external-CR0vo15z.js"></script>
138
+ <script type="module" crossorigin src="/assets/__vite-browser-external-KHpR2q-A.js"></script>
139
139
  <link rel="stylesheet" crossorigin href="/assets/__vite-browser-external-C9a2vCBN.css">
140
140
  </head>
141
141
  <body>
@@ -1,7 +1,7 @@
1
1
  # Token Tracker LLMs Index
2
2
 
3
3
  Token Tracker is a free, open-source, local-first AI coding usage and cost
4
- tracker for 46 tools. Its distinctive desktop experience includes a pixel pet
4
+ tracker for 47 tools. Its distinctive desktop experience includes a pixel pet
5
5
  powered by real token activity, four desktop widgets, and achievements. The
6
6
  same data powers a cross-platform CLI, a native macOS menu bar app, a native
7
7
  Windows system tray app, and a dashboard. It records token counts and
@@ -23,7 +23,7 @@ timestamps, never prompts, responses, or source code.
23
23
  - [npm package](https://www.npmjs.com/package/tokentracker-cli)
24
24
  - [Latest release](https://github.com/xiufengsun/TokenTracker/releases/latest)
25
25
 
26
- ## Supported AI coding tools (46)
26
+ ## Supported AI coding tools (47)
27
27
  - Claude Code
28
28
  - Codex CLI
29
29
  - AStudio
@@ -32,6 +32,7 @@ timestamps, never prompts, responses, or source code.
32
32
  - Antigravity
33
33
  - Kiro
34
34
  - OpenCode
35
+ - OpenSquilla
35
36
  - OpenClaw
36
37
  - Every Code
37
38
  - Hermes Agent
@@ -75,7 +75,7 @@
75
75
  "description": "Shareable Token Tracker dashboard snapshot."
76
76
  }
77
77
  </script>
78
- <script type="module" crossorigin src="/assets/__vite-browser-external-CR0vo15z.js"></script>
78
+ <script type="module" crossorigin src="/assets/__vite-browser-external-KHpR2q-A.js"></script>
79
79
  <link rel="stylesheet" crossorigin href="/assets/__vite-browser-external-C9a2vCBN.css">
80
80
  </head>
81
81
  <body>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tokentracker-cli",
3
- "version": "1.4.11",
4
- "description": "Local-first AI coding token usage and cost tracker for 46 tools, with a dashboard, desktop pet, widgets, achievements, and native macOS/Windows apps.",
3
+ "version": "1.4.12",
4
+ "description": "Local-first AI coding token usage and cost tracker for 47 tools, with a dashboard, desktop pet, widgets, achievements, and native macOS/Windows apps.",
5
5
  "main": "src/cli.js",
6
6
  "bin": {
7
7
  "tokentracker-cli": "bin/tracker.js",
@@ -126,6 +126,7 @@ const SUPPORTED_PROVIDERS = [
126
126
  "Antigravity",
127
127
  "Kiro",
128
128
  "OpenCode",
129
+ "OpenSquilla",
129
130
  "OpenClaw",
130
131
  "Every Code",
131
132
  "Hermes Agent",
@@ -83,6 +83,7 @@ const {
83
83
  resolveZedDbPath,
84
84
  resolveLmstudioHome,
85
85
  resolveLmstudioLogFiles,
86
+ resolveOpenSquillaDbPaths,
86
87
  resolveUnslothDbPath,
87
88
  resolveQoderDbPaths,
88
89
  resolveQoderCnDbPaths,
@@ -828,6 +829,9 @@ async function cmdStatus(argv = []) {
828
829
  const lmstudioHome = resolveLmstudioHome(process.env);
829
830
  const lmstudioLogFiles = await resolveLmstudioLogFiles(process.env);
830
831
  const lmstudioInstalled = lmstudioLogFiles.length > 0;
832
+ const opensquillaDbPaths = resolveOpenSquillaDbPaths(process.env)
833
+ .filter((dbPath) => fssync.existsSync(dbPath));
834
+ const opensquillaInstalled = opensquillaDbPaths.length > 0;
831
835
  const unslothDbPath = resolveUnslothDbPath(process.env);
832
836
  const unslothInstalled = Boolean(unslothDbPath && fssync.existsSync(unslothDbPath));
833
837
 
@@ -1219,6 +1223,9 @@ async function cmdStatus(argv = []) {
1219
1223
  unsloth: unslothInstalled
1220
1224
  ? { installed: true, detail: unslothDbPath }
1221
1225
  : { installed: false },
1226
+ opensquilla: opensquillaInstalled
1227
+ ? { installed: true, detail: opensquillaDbPaths.join(" | ") }
1228
+ : { installed: false },
1222
1229
  devin: devinInstalled
1223
1230
  ? { installed: true, detail: devinDbPath }
1224
1231
  : { installed: false },
@@ -1437,6 +1444,9 @@ async function cmdStatus(argv = []) {
1437
1444
  unslothInstalled
1438
1445
  ? `- Unsloth Studio: passive reader (${unslothDbPath})`
1439
1446
  : null,
1447
+ opensquillaInstalled
1448
+ ? "- OpenSquilla: passive reader (" + opensquillaDbPaths.join(" | ") + ")"
1449
+ : null,
1440
1450
  devinInstalled
1441
1451
  ? `- Devin CLI: passive reader (${devinDbPath})`
1442
1452
  : null,
@@ -129,6 +129,8 @@ const {
129
129
  parseZedIncremental,
130
130
  resolveLmstudioLogFiles,
131
131
  parseLmstudioIncremental,
132
+ resolveOpenSquillaDbPaths,
133
+ parseOpenSquillaIncremental,
132
134
  resolveUnslothDbPath,
133
135
  parseUnslothIncremental,
134
136
  resolveAnythingllmDbPath,
@@ -378,6 +380,7 @@ const AUTO_SYNC_SOURCES = new Set([
378
380
  "omp",
379
381
  "opencode",
380
382
  "openclaw",
383
+ "opensquilla",
381
384
  "pi",
382
385
  "qoder",
383
386
  "qoder-cn",
@@ -1950,6 +1953,25 @@ async function cmdSync(argv, context = {}) {
1950
1953
  }
1951
1954
  }
1952
1955
 
1956
+ let opensquillaResult = { recordsProcessed: 0, eventsAggregated: 0, bucketsQueued: 0 };
1957
+ if (sourceAllowed("opensquilla")) {
1958
+ const opensquillaDbPaths = resolveOpenSquillaDbPaths(process.env)
1959
+ .filter((dbPath) => fssync.existsSync(dbPath));
1960
+ if (opensquillaDbPaths.length > 0) {
1961
+ if (progress?.enabled) progress.start("Parsing OpenSquilla " + renderBar(0) + " | buckets 0");
1962
+ try {
1963
+ opensquillaResult = await parseOpenSquillaIncremental({
1964
+ dbPaths: opensquillaDbPaths,
1965
+ cursors,
1966
+ queuePath,
1967
+ onProgress: makeProviderProgress("OpenSquilla"),
1968
+ });
1969
+ } catch (err) {
1970
+ warnProviderParseFailure("OpenSquilla", err, opts);
1971
+ }
1972
+ }
1973
+ }
1974
+
1953
1975
  // ── AnythingLLM Desktop (workspace_chats.response.metrics) ──
1954
1976
  let anythingllmResult = { recordsProcessed: 0, eventsAggregated: 0, bucketsQueued: 0 };
1955
1977
  if (sourceAllowed("anythingllm")) {
@@ -3435,6 +3457,7 @@ async function cmdSync(argv, context = {}) {
3435
3457
  copilotResult.recordsProcessed +
3436
3458
  lmstudioResult.recordsProcessed +
3437
3459
  unslothResult.recordsProcessed +
3460
+ opensquillaResult.recordsProcessed +
3438
3461
  anythingllmResult.recordsProcessed +
3439
3462
  devinResult.recordsProcessed +
3440
3463
  kiloResult.recordsProcessed +
@@ -3482,6 +3505,7 @@ async function cmdSync(argv, context = {}) {
3482
3505
  copilotResult.bucketsQueued +
3483
3506
  lmstudioResult.bucketsQueued +
3484
3507
  unslothResult.bucketsQueued +
3508
+ opensquillaResult.bucketsQueued +
3485
3509
  anythingllmResult.bucketsQueued +
3486
3510
  devinResult.bucketsQueued +
3487
3511
  kiloResult.bucketsQueued +
@@ -427,6 +427,48 @@
427
427
  "output": 4,
428
428
  "cache_read": 0.19
429
429
  },
430
+ "kimi-k3.1-pro": {
431
+ "input": 2,
432
+ "output": 10,
433
+ "cache_read": 0.2,
434
+ "cache_write": 2,
435
+ "note": "Kimi K3.1 Pro (API id kimi-k3.1-pro). Official USD list from https://platform.kimi.ai/ : $2/M input, $10/M output, $2/M cache write (default 5m TTL), $0.20/M cache hit. Flat 1M context; no context-length tiers. Verified 2026-10-25. Distinct from kimi-k3 ($3/$15)."
436
+ },
437
+ "kimi-k3.1-pro-highspeed": {
438
+ "input": 4,
439
+ "output": 20,
440
+ "cache_read": 0.2,
441
+ "cache_write": 4,
442
+ "note": "Kimi K3.1 Pro Highspeed (API id kimi-k3.1-pro-highspeed). Official USD list from https://platform.kimi.ai/ : $4/M input, $20/M output, $4/M cache write (default 5m TTL), $0.20/M cache hit. Same intelligence as K3.1 Pro at higher speed. Verified 2026-10-25."
443
+ },
444
+ "k3.1-pro": {
445
+ "input": 2,
446
+ "output": 10,
447
+ "cache_read": 0.2,
448
+ "cache_write": 2,
449
+ "note": "Bare/compact alias for kimi-k3.1-pro. Same official rates."
450
+ },
451
+ "k3.1pro": {
452
+ "input": 2,
453
+ "output": 10,
454
+ "cache_read": 0.2,
455
+ "cache_write": 2,
456
+ "note": "Compact alias (no hyphen) for kimi-k3.1-pro. Same official rates."
457
+ },
458
+ "k3.1-pro-highspeed": {
459
+ "input": 4,
460
+ "output": 20,
461
+ "cache_read": 0.2,
462
+ "cache_write": 4,
463
+ "note": "Bare alias for kimi-k3.1-pro-highspeed. Same official rates."
464
+ },
465
+ "k3.1pro-highspeed": {
466
+ "input": 4,
467
+ "output": 20,
468
+ "cache_read": 0.2,
469
+ "cache_write": 4,
470
+ "note": "Compact alias for kimi-k3.1-pro-highspeed. Same official rates."
471
+ },
430
472
  "kimi-k3": {
431
473
  "input": 3,
432
474
  "output": 15,
@@ -785,6 +827,30 @@
785
827
  "match": "kimi-k2.7-code",
786
828
  "ref": "kimi-k2.7-code"
787
829
  },
830
+ {
831
+ "match": "kimi-k3.1-pro-highspeed",
832
+ "ref": "kimi-k3.1-pro-highspeed"
833
+ },
834
+ {
835
+ "match": "k3.1-pro-highspeed",
836
+ "ref": "kimi-k3.1-pro-highspeed"
837
+ },
838
+ {
839
+ "match": "k3.1pro-highspeed",
840
+ "ref": "kimi-k3.1-pro-highspeed"
841
+ },
842
+ {
843
+ "match": "kimi-k3.1-pro",
844
+ "ref": "kimi-k3.1-pro"
845
+ },
846
+ {
847
+ "match": "k3.1-pro",
848
+ "ref": "kimi-k3.1-pro"
849
+ },
850
+ {
851
+ "match": "k3.1pro",
852
+ "ref": "kimi-k3.1-pro"
853
+ },
788
854
  {
789
855
  "match": "kimi-k3",
790
856
  "ref": "kimi-k3"