You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Wave 3 v1.0.0 rollout — VS Code, Claude Code skill, Mistral+Cohere, latency, playground showcase
Adds the headline differentiation features for v1.0.0. No breaking changes
to existing flags or output paths.
VS Code / Cursor extension (`packages/vscode/`, new package):
- Status bar shows live token count + USD cost for the active editor file
across Claude, GPT-4o, and Gemini.
- Settings: model, format, warnOnCostAbove threshold (turns the bar
background warning-yellow when exceeded).
- Commands: Tokenometer: switch model, Tokenometer: show info.
- Debounced 200ms recompute on document changes; 1MB file-size gate.
- Reuses @tokenometer/core via esbuild bundle. Marketplace publish in
Wave 4 Phase I.
Claude Code skill (`packages/claude-code-skill/`, new package):
- SKILL.md with `name: tokenometer-cost-check` + multi-trigger description.
- 13-section body teaching Claude Code agents when and how to invoke
`npx tokenometer` for prompt cost analysis: offline + empirical mode,
--output json/sarif, --by-file, --image, auto provider detection,
.tokenometer.yml config, CI guardrail via `tokenometer init`.
- One-line install via `~/.claude/skills/tokenometer/SKILL.md`.
Mistral + Cohere providers (`@tokenometer/core`):
- Mistral: `mistral-tokenizer-js` for SentencePiece family (Mistral 7B,
Mixtral 8x7B/8x22B, Mistral Large 2407, Codestral 22B); chars/4
heuristic for Tekken-tokenizer models (NeMo, Pixtral, Mistral Small
2409+, Devstral, Mistral Medium 2505+, Magistral, Ministral). All
marked `approximate: true`. Empirical mode unsupported — Mistral has
no public token-count API.
- Cohere: chars/4 heuristic offline; empirical via POST /v1/tokenize
using bare fetch (Cohere SDK ships only a REST wrapper, no offline
tokenizer).
- Pricing: Mistral auto-sourced from @tokenlens/models; Cohere via
LOCAL_OVERRIDES until tokenlens adds upstream. Total KNOWN_MODELS:
42 → 63.
Latency mode (`--latency` flag):
- Measures real generation latency: TTFT (time to first token) + total
wall-clock + tokens/sec. Reports p50/p95/mean over n trials (default
3, configurable 1-10 via --latency-trials).
- Implies --empirical. Bumps default --max-spend ceiling to $0.25 to
cover ~200-token generations.
- Streamed via SDK for Anthropic/Google; bare fetch SSE/NDJSON for
OpenAI/Mistral/Cohere (no extra SDK install footprint).
- New table columns + JSON/SARIF carry the latency block.
- Differentiation pitch: only LLM cost CLI that also reports latency.
Playground showcase (`packages/web/`):
- 11 new routes: /diff, /by-file, /sarif, /vision, /config-builder,
/init, /models (Cost Atlas with sort/search/filter), /models/<id>
(per-model SEO pages), /editor, /claude-code, plus / and /calculator
for the existing landing.
- react-router-dom 7, top nav with Tools dropdown, footer linking repo +
npm + marketplace placeholders.
- Cross-page provider robustness: Map<Provider, ...> instead of static
Records so playground gracefully extends as new providers land.
- Static robots.txt + sitemap.xml; per-page document.title via
usePageTitle hook (no react-helmet dependency).
Test count: 150 → 227 (across 20 files). Lint, typecheck, root + web
builds all clean.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+11-8Lines changed: 11 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,14 +58,15 @@ The `Approx` column shows `✓` when the count is a proxy (Anthropic / Google of
58
58
59
59
## Why this exists
60
60
61
-
`tiktoken` and `@anthropic-ai/tokenizer` give you a token count for one provider. They don't tell you:
61
+
**Cost AND latency in one CLI — the only tool that does both.**`tiktoken` and `@anthropic-ai/tokenizer` give you a token count for one provider. They don't tell you:
62
62
63
63
- What the same prompt costs across **multiple providers and models**
64
+
- How **fast** each provider actually responds (TTFT + tokens/sec) — a real generation, not a synthetic benchmark
64
65
- Whether **format conversion** (YAML ↔ JSON ↔ XML ↔ MD) actually moves the needle
65
66
- The **empirical** cost — what your provider actually charged on a real call, after prompt caching
66
67
- Whether a PR introduced a **prompt-cost regression**
67
68
68
-
Tokenometer is dev-time, multi-provider, multi-format, optionally empirical, and CI-native.
69
+
Tokenometer is dev-time, multi-provider, multi-format, optionally empirical, latency-aware, and CI-native.
69
70
70
71
## Install
71
72
@@ -135,11 +136,13 @@ The CLI also supports `--output json|sarif` for machine-readable output, `--by-f
135
136
136
137
Tokenometer picks a tokenizer per provider and flags the count as approximate (`approximate: true` in the API result) when the offline path is a proxy:
Cost = `tokens / 1000 × per-1k input rate`. Pricing and context windows are sourced from the [`tokenlens`](https://www.npmjs.com/package/tokenlens) registry, with a small set of local overrides for bleeding-edge models the registry hasn't picked up yet — see [`packages/core/src/rates.ts`](packages/core/src/rates.ts) (`RATES_VERSION`).
145
148
@@ -153,7 +156,7 @@ Cost = `tokens / 1000 × per-1k input rate`. Pricing and context windows are sou
153
156
154
157
## Status
155
158
156
-
Early. v0.0.x — see [milestones](https://github.com/faraa2m/tokenometer/milestones). Roadmap to v1.0.0 in progress: VS Code extension, Claude Code skill, vision-token cost, Mistral + Cohere providers.
159
+
Early. v0.0.x — see [milestones](https://github.com/faraa2m/tokenometer/milestones). Roadmap to v1.0.0 in progress: VS Code extension, Claude Code skill, vision-token cost.
0 commit comments