Smoking Tokens
Track Claude Code prompt difficulty automatically and visualize trends to optimize your agentic usage.
Features
- Automatic tracking — tracks prompt difficulty with near-zero setup using Claude Code hook integration
- Analytics dashboard — visualizes difficulty trends, category mix, model fit, and estimated cost savings in one place
- Smart recommendations — suggests better-fit models as your workload difficulty changes
- One-click model switching — set your default Claude Code model directly from the dashboard
- Sticky VS Code Chat participant — use
@smokingtokens once per conversation and keep tracking active for the full session
- Sidebar insights — shows quick stats, recent prompts, and model guidance in the activity bar
- Flexible controls — choose manual switching, auto-switch mode, or suppressed suggestions
- CSV export — export all tracked data for external reporting and deeper analysis
- Low overhead — keeps context usage lean with an invisible per-response rating marker
- Built-in lifecycle commands — includes setup, dashboard access, export, cleanup, and hook management commands
How it works
On first activation, Smoking Tokens automatically:
- Installs a
Stop hook into ~/.claude/settings.json
- Adds a self-rating instruction to
~/.claude/CLAUDE.md
From that point on, every claude terminal session response is silently rated 1–10 for difficulty and logged. The dashboard opens immediately so you can see data as it arrives.
VS Code Chat
For VS Code chat sessions, prefix your first message with @smokingtokens. The participant is sticky — it stays active for the rest of that conversation without needing to prefix every message.
Dashboard
The dashboard shows:
| Chart |
Description |
| Difficulty Over Time |
Rolling average difficulty per day |
| Category Mix |
Donut chart of prompt categories |
| Model Fit by Difficulty |
Stacked bar showing predicted success per model across difficulty bands |
| Model Recommendations |
Interactive table — click Set as Default to update ~/.claude/settings.json |
Model Switching
Smoking Tokens monitors your recent difficulty trend and suggests a model when a better fit is available. You can:
- Switch manually — click Set as Default next to any model in the dashboard
- Get suggestions — a notification fires every 5 prompts when the recommended model changes
- Auto-switch — enable
smokingTokens.autoSwitch to apply switches silently
- Suppress notifications — enable
smokingTokens.suppressSuggestions or click Don't Ask Again
Model changes take effect on the next Claude Code session.
Commands
| Command |
Description |
Smoking Tokens: Open Dashboard |
Open the analytics dashboard |
Smoking Tokens: Setup Claude Hook |
Re-install the hook and CLAUDE.md instruction |
Smoking Tokens: Remove Claude Hook |
Remove the hook and CLAUDE.md instruction |
Smoking Tokens: Export Data as CSV |
Export all tracked data |
Smoking Tokens: Clear All Data |
Delete all tracked data |
Settings
| Setting |
Default |
Description |
smokingTokens.preferredModel |
(empty) |
Active model ID written to ~/.claude/settings.json |
smokingTokens.autoSwitch |
false |
Auto-apply model suggestions without prompting |
smokingTokens.suppressSuggestions |
false |
Silence all model recommendation notifications |
Smoking Tokens adds a small instruction block to ~/.claude/CLAUDE.md. Each response also appends a single invisible marker line (15 tokens).
Total overhead per session: about 110 tokens (fixed) + about 15 tokens per response.
The marker uses markdown link-label syntax ([//]: # (...)) which renders invisibly in both the terminal and VS Code chat.
Difficulty Scale
| Range |
Label |
| 1–3 |
Trivial |
| 4–6 |
Moderate |
| 7–9 |
Hard |
| 10 |
Expert |