Fable Foreman
olsenbrands/fable-foreman
Turns the lead model into a foreman that plans, routes and verifies while cheaper Claude, Codex or Grok workers do the typing, using a per-machine routing card.
Personal diagnosis of where your Claude Code + Cowork spend goes.
$ npx skills add techwolf-ai/ai-first-toolkit --skill token-doctor -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install techwolf-ai/ai-first-toolkit token-doctor --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/ai-adoption/skills/token-doctor .claude/skills/token-doctor && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "token-doctor" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/ai-adoption/skills/token-doctor into .claude/skills/token-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-doctor", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/ai-adoption/skills/token-doctorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add techwolf-ai/ai-first-toolkit --skill token-doctor -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install techwolf-ai/ai-first-toolkit token-doctor --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/ai-adoption/skills/token-doctor .agents/skills/token-doctor && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "token-doctor" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/ai-adoption/skills/token-doctor into .agents/skills/token-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-doctor", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add techwolf-ai/ai-first-toolkit --skill token-doctor -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install techwolf-ai/ai-first-toolkit token-doctor --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/ai-adoption/skills/token-doctor .cursor/skills/token-doctor && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "token-doctor" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/ai-adoption/skills/token-doctor into .cursor/skills/token-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-doctor", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/techwolf-ai/ai-first-toolkit.git --path plugins/ai-adoption/skills/token-doctor--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add techwolf-ai/ai-first-toolkit --skill token-doctor -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install techwolf-ai/ai-first-toolkit token-doctor --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/ai-adoption/skills/token-doctor .gemini/skills/token-doctor && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "token-doctor" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/ai-adoption/skills/token-doctor into .gemini/skills/token-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-doctor", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install techwolf-ai/ai-first-toolkit token-doctorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add techwolf-ai/ai-first-toolkit --skill token-doctor -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/ai-adoption/skills/token-doctor .github/skills/token-doctor && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "token-doctor" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/ai-adoption/skills/token-doctor into .github/skills/token-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-doctor", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add techwolf-ai/ai-first-toolkit --skill token-doctor -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install techwolf-ai/ai-first-toolkit token-doctor --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/techwolf-ai/ai-first-toolkit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/ai-adoption/skills/token-doctor .opencode/skills/token-doctor && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "token-doctor" agent skill from https://github.com/techwolf-ai/ai-first-toolkit/tree/main/plugins/ai-adoption/skills/token-doctor into .opencode/skills/token-doctor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "token-doctor", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
token-doctorPersonal diagnosis of where your Claude Code + Cowork spend goes.
Token Doctor is an agent skill from techwolf-ai/ai-first-toolkit. Personal diagnosis of where your Claude Code + Cowork spend goes. Reads local transcripts, prints your conversation length distribution, marathon share, cache rebuild costs, and per-project diagnosis (good projects and problem projects) right in the terminal. Then offers a deeper dive that fans out parallel Haiku subagents over your most expensive (and most efficient) sessions and writes a tight Markdown report. Use when the user asks "why is my Claude spend so high", "where am I burning tokens", "diagnose my…
Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including scripts and reference files (for example `references/antipattern-taxonomy.md`, `references/diagnosis-rubric.md` and `references/pricing.md`).
It sits in Agent Workflows, covering Subagents and LLM cost and token optimization. The repository describes itself as: Open-source Claude Code skills and Codex skills for AI-first work. Audit, re-engineer, and bootstrap projects with AI-first design principles. The licence is MIT.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2ee7841. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 7 files in scripts/ (Python), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Token Doctor loads about 4.1k tokens when it runs, and up to ~8.5k if it reads all its reference files. Until then it costs about 153 tokens; SKILL.md has 1,504 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from techwolf-ai/ai-first-toolkit at commit 2ee7841, republished under its MIT licence (© techwolf-ai). 1,504 words, ~4,123 tokens.
.claude/skills/token-doctor/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.Platforms: Claude Code / Cowork and Codex.
scripts/inventory.pydetects the host (via theplatformstampinstall.shwrites, orAI_FIRST_PLATFORM) and routes: Claude Code (~/.claude/projects) + Cowork transcripts, or Codex rollouts (~/.codex/sessions). Codex token usage comes from Codex's own per-responsetoken_countevents; cost uses OpenAI list rates inpricing.py(gpt-5.4 family; unknown models show token counts with no fabricated cost). Antigravity is unsupported: its IDE store is AEAD-encrypted at rest and its CLI store has no parseable turn/token content, so the skill prints a clear "not available" message and exits.
Two-stage diagnostic. Stage 1 is fast and lands directly in the terminal so the user always walks away with their numbers. Stage 2 is opt-in, fans out subagents over hotspots, and writes a tight Markdown report.
Read this whole file before running.
Trigger phrases: "diagnose my Claude habits", "why am I spending so much", "where are my tokens going", "audit my spend", "token doctor", "what's driving my Claude bill".
Do NOT trigger for:
task-profile.session-search.The line is: token-doctor is about cost shape, not task inventory or recall.
~/.claude/projects/*/*.jsonl (CLI and desktop app)~/.claude/projects/*/<sid>/subagents/**/*.jsonl, including workflow agents under subagents/workflows/<wf>/~/Library/Application Support/Claude/local-agent-mode-sessions/*/*/local_*/audit.jsonlIf neither path exists, stop and say so.
Sub-agent transcripts are separate files but the same piece of work, so their cost rolls into the parent session rather than appearing as sessions of their own. This matters when you read the report:
cost_usd is main conversation plus fan-out. main_cost_usd and subagent_cost_usd split it.usage object on every one, so counting lines inflates turns and cost by roughly 2-3x. The inventory dedupes by message.id. Turn counts from an older run of this skill are not comparable with these.Automation excluded by default: sdk-cli background dispatch, paperclip, ditto-routines,
scheduled tasks, and the automation slash commands. Desktop-app sessions are interactive
work and are counted.
The goal is: the user invokes the skill, sees a clean doctor's report within 10 seconds, knows which projects are healthy and which are bleeding, and can decide whether to go deeper. You write the report directly in your message based on the JSON the scripts produce. The scripts compute, you communicate.
~/.claude/skills/token-doctor/scripts/inventory.py --since YYYY-MM-DD --out out/sessions.jsonlDefault window: last 90 days. Flags: --since, --until, --all, --include-automation, --no-cowork. Automation runs (sdk-cli background dispatch, paperclip, /loop, /schedule, ditto-routines, scheduled-tasks) excluded by default.
--until YYYY-MM-DD means midnight at the start of that day, so it excludes that day's sessions. To include today, leave --until off.
The scan prints how many sub-agent transcripts it rolled into parent sessions. If it also reports sub-agents with no parent session on disk, that cost is not in the totals; mention it only if it is material.
~/.claude/skills/token-doctor/scripts/personal_stats.py --in out/sessions.jsonl --out out/user-stats.jsonPrints a single confirmation line. The full data is in out/user-stats.json.
Read out/user-stats.json. Then write the report directly in your message as terminal-style ASCII with emojis. The user reads your message; no intermediate file.
🩺 ┌────────────────────────────────────────────────────────────────────┐
│ TOKEN DOCTOR · personal diagnosis │
└────────────────────────────────────────────────────────────────────┘
Patient: <user's first name or "you">
Window: <window dates from inventory>
Spend: $<total> list-price equivalent · <conv count> conversations
── Vital signs ─────────────────────────────────────────────────────────
🔴/🟡/🟢 Marathon (≥300 turns) <N> conv · $<X> · <Y>% of spend
🔴/🟡/🟢 Fan-out (≥5 sub-agents) <N> conv · $<X> · <Y>% of spend
🔴/🟡/🟢 Zombie (≥4h wall clock) <N> conv · $<X> · <Y>% of spend
🔴/🟡/🟢 Cache rebuilds <N> events · <Z>M tokens · ~$<X>
🔴/🟡/🟢 Re-read ratio <X>× (healthy ≤15×, org avg 30×)
📈 Peak context observed <X>k tokens
🌳 Sub-agent cost $<X> of $<total> (<Y>%) across <N> transcripts
── Spend by conversation length ────────────────────────────────────────
1 to 5 <bar> <%> (<N> conv)
6 to 20 <bar> <%> (<N> conv)
…
1,000+ <bar> <%> (<N> conv)
── Model mix ───────────────────────────────────────────────────────────
<model> $<X> <%> <N> turns main $<X>/<N>t · sub $<X>/<N>t
<model> $<X> <%> <N> turns main $<X>/<N>t · sub $<X>/<N>t
…
── Diagnosis ───────────────────────────────────────────────────────────
<2-4 sentences synthesizing the vitals into one clear picture. Lead with
the dominant antipattern in this user's data, then the corollary cost. End
with one line about the strongest positive signal you see.>
── Project chart ───────────────────────────────────────────────────────
✅ clean · 🏃 marathon · 🌳 fanout · 🔄 rebuilds · 🧟 zombie · ⚠️ multiple
<emoji> $<X> <truncated cwd> <meta line>
<emoji> $<X> <truncated cwd> <meta line>
… up to 10-12 rows from by_cwd_top
── Treatment plan ──────────────────────────────────────────────────────
💚 Keep doing:
<bullet referencing a clean project from by_cwd_top or by_cwd_clean_deeper,
OR a positive structural signal like a high short_share if no clean cwd is in top 12>
<2-3 bullets total>
🎯 Change first:
<one concrete action tied to the biggest lever, with cited project>
<2-3 bullets total, ordered by expected impact>
── Want a deeper look? ─────────────────────────────────────────────────
<one-line question asking if they want the deep dive>by_cwd_top[i].emoji in the JSON. Do not re-classify.model_mix, already sorted by cost. Show every model down to 1% of spend, then stop. Use readable names (claude-opus-5 → Opus 5, claude-fable-5-1 → Fable 5.1). The main / sub split is the point of the section: a model that is cheap in the main conversation and expensive across sub-agents is the clearest lever in the whole report, because sub-agent model tier is a one-line change in an Agent(...) call. Call that out when you see it.fanout_conv / fanout_cost / fanout_share (sessions with ≥ 5 sub-agents) and subagent_cost / subagent_share (fan-out's share of total spend). If subagent_files is 0, drop both the fan-out vital and the sub-agent line rather than printing zeroes.█ characters proportional to the share. Use a fixed width like 36 chars.by_cwd_top entries with emoji == "✅" for cleanby_cwd_clean_deeper for clean projects below the top 12short_share if neither is available — frame as "X% of your spend is in short focused sessions, so the habit is there, you just don't use it everywhere"… if they're long. Drop the /Users/<name>/ prefix when it makes the line cleaner.| Metric | 🟢 | 🟡 | 🔴 |
|---|---|---|---|
| Marathon share | < 20% | 20-50% | ≥ 50% |
| Fan-out share | < 20% | 20-50% | ≥ 50% |
| Zombie share | < 20% | 20-50% | ≥ 50% |
| Cache rebuild $ | < $50 | $50-$200 | ≥ $200 |
| Re-read ratio | ≤ 15× | 15-35× | ≥ 35× |
End with one short line, not a paragraph. Example:
Want me to pull apart your top sessions one by one — what specifically drove each marathon, plus a couple of your most efficient runs to learn from? Takes about a minute, runs ~15 Haiku subagents in parallel.
If they say no, stop. The report is the deliverable.
~/.claude/skills/token-doctor/scripts/pick_hotspots.py --in out/sessions.jsonl --out out/hotspots.jsonSelects ~14 sessions:
Briefly tell the user the list before fan-out so they can drop sensitive sids. Keep it to one line per session: $X · N turns · short title.
~/.claude/skills/token-doctor/scripts/build_payloads.py --sessions out/sessions.jsonl --hotspots out/hotspots.json --outdir out/payloadsWrites one redacted payload per hotspot. Payloads include token shape, tool-call counts, timeline samples, and a 120-char title. They do NOT include user prompt bodies or model output text.
For each payload in out/payloads/, dispatch one subagent. Send all calls in one message with multiple tool blocks so they run in parallel.
Agent(
description="Diagnose one session",
subagent_type="general-purpose",
model="haiku",
run_in_background=true,
prompt="""
Diagnose the session at out/payloads/<sid>.json.
Read first, in order:
1. ~/.claude/skills/token-doctor/references/antipattern-taxonomy.md
2. ~/.claude/skills/token-doctor/references/diagnosis-rubric.md
3. out/payloads/<sid>.json
Apply the rubric. Emit strictly the JSON schema (see rubric §Output) to out/analyses/<sid>.json. Hard length limits: what_happened max 2 sentences (~25 words), trigger_moment.what max 14 words, would_have_helped max 18 words. Lead with structural facts (turn count, context size, key signal). No restating the schema.
Tone: second-person, neutral, no "waste" / "burning".
"""
)Wait for all to complete.
Read every out/analyses/*.json. Then:
out/recommendations.md — tight, scannable, no padding. Structure:# Token Doctor — your diagnosis
**Signature.** <one sentence: dominant antipattern + dominant strength>
**Bottom-line lever.** <one sentence: the single habit change with the biggest expected impact>
## What you're doing well
- **<positive pattern>** in `<cwd>`. <one sentence with one cited sid>
- **<positive pattern>** in `<cwd>`. <one sentence with one cited sid>
(2-3 bullets. At least one is mandatory; do not skip this section.)
## What's driving your bill
- **<antipattern>** in `<cwd>`. <one sentence. Cite the worst sid and one specific turn or signal>
- ...
(3-5 bullets ordered by estimated savings)
## Per-session diagnoses
| Cost | Turns | Verdict | What happened |
|---:|---:|---|---|
| $XXX | NNN | <label> | <1-2 line what_happened from the analysis> |
| ...
(Only the analyzed sessions. Use the `what_happened` field verbatim from each analysis JSON.)Also write out/recommendations.json with structured form for re-use:
{
"signature": {
"primary_antipattern": "marathon | drip-feed | zombie | bloat | grind | drift | fanout | none",
"primary_strength": "focused | front-loaded | time-bounded | lean | directed | none",
"one_line": "<one sentence about how this user's spend is shaped>"
},
"bottom_line_lever": "<one sentence>",
"positives": [{"pattern": "...", "cwd": "...", "evidence_sid": "...", "note": "..."}],
"antipatterns": [{"pattern": "...", "cwd": "...", "evidence_sids": ["..."], "note": "...", "expected_impact": "small|medium|large"}],
"session_table": [{"sid": "...", "cost": 0, "turns": 0, "verdict": "...", "what_happened": "..."}]
}Keep the prose terse. The user already has the terminal numbers; the report's job is to point at specific projects and habits, not to recite stats.
out/ contain session ids and short titles. They do not contain conversation content.rm -rf out/ to wipe everything.personal_stats.py script uses them). Keep them out of the Markdown report — there it should look like an engineering doc.--include-automation if they want those analyzed; otherwise note the interactive count.© techwolf-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 11 other files (scripts, references) in plugins/ai-adoption/skills/token-doctor of techwolf-ai/ai-first-toolkit.
Open the folder on GitHubat commit 2ee7841
Token Doctor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Token Doctor this skilltechwolf-ai/ai-first-toolkit | 132 | — | ~4.1k | Automated safety check: Pass | MIT | |
| Fable Foremanolsenbrands/fable-foreman | 142 | — | ~5.2k | Automated safety check: Pass | MIT | |
| Subagent Brief DisciplineLichAmnesia/lich-skills | 234 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Module Analyzer Generate DocLeoYeAI/openclaw-master-skills | 2.2k | — | ~3.4k | Automated safety check: Pass | MIT | |
| Skillkitrfxlamia/skillkit | 102 | — | ~3.7k | Automated safety check: Pass | Apache-2.0 | |
| Code Context Slicingtrailofbits/skills | 7.4k | — | ~2.1k | Automated safety check: Pass | CC-BY-SA-4.0 |
olsenbrands/fable-foreman
Turns the lead model into a foreman that plans, routes and verifies while cheaper Claude, Codex or Grok workers do the typing, using a per-machine routing card.
LichAmnesia/lich-skills
Checks every subagent prompt before spawning, swapping pasted files and context for paths and short summaries and trimming the brief, to avoid multiplied token cost.
LeoYeAI/openclaw-master-skills
Java/Maven single-module deep documentation generator. An agent skill from LeoYeAI/openclaw-master-skills.
rfxlamia/skillkit
Toolkit for creating and validating skills and subagents. An agent skill from rfxlamia/skillkit.
trailofbits/skills
Picks a small, graph-based slice of source with Trailmark and hands a focused code task to a smaller or local model without exposing the whole repository.
borghei/Claude-Skills
A skill your agent uses when the user asks to "optimize CLAUDE.md", "create a new skill", "write a custom agent", "configure hooks", "manage context window", "set up MCP servers", "scaffold a skill…
techwolf-ai/ai-first-toolkit
Mine the user's Claude Code + Cowork session history into a structured task profile, what they do with AI, how often, how successfully where friction lives, then propose atomic skills that would…
techwolf-ai/ai-first-toolkit
Find context from past Claude Code (CLI) and Claude Cowork (desktop) sessions on this Mac.
techwolf-ai/ai-first-toolkit
Write or develop a blog post. An agent skill from techwolf-ai/ai-first-toolkit.
techwolf-ai/ai-first-toolkit
Write or develop an opinion piece (opiniestuk/op-ed). An agent skill from techwolf-ai/ai-first-toolkit.
techwolf-ai/ai-first-toolkit
Analyze, re-engineer, or bootstrap projects to align with AI-first design principles.
techwolf-ai/ai-first-toolkit
Set up a new content studio for a person. An agent skill from techwolf-ai/ai-first-toolkit.
Categories
Personal diagnosis of where your Claude Code + Cowork spend goes. Token Doctor is an agent skill from techwolf-ai/ai-first-toolkit. Personal diagnosis of where your Claude Code + Cowork spend goes.
Token Doctor fits situations like: the user asks why is my Claude spend so high; where am I burning tokens; diagnose my Claude habits; audit my Claude usage.
Run `npx skills add techwolf-ai/ai-first-toolkit --skill token-doctor -a claude-code`. Or copy the skill folder (plugins/ai-adoption/skills/token-doctor in techwolf-ai/ai-first-toolkit) into .claude/skills/token-doctor in your project. Claude Code loads it when a task matches its description.
Run `npx skills add techwolf-ai/ai-first-toolkit --skill token-doctor -a codex`. Or copy the skill folder (plugins/ai-adoption/skills/token-doctor in techwolf-ai/ai-first-toolkit) into .agents/skills/token-doctor in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add techwolf-ai/ai-first-toolkit --skill token-doctor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/token-doctor, .gemini/skills/token-doctor, .github/skills/token-doctor and .opencode/skills/token-doctor in your project.
Going by SKILL.md and its folder, Token Doctor needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Token Doctor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Token Doctor: Fable Foreman (olsenbrands/fable-foreman, 142 stars), Subagent Brief Discipline (LichAmnesia/lich-skills, 234 stars), Module Analyzer Generate Doc (LeoYeAI/openclaw-master-skills, 2.2k stars) and Skillkit (rfxlamia/skillkit, 102 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
techwolf-ai (a GitHub organization) maintains it in techwolf-ai/ai-first-toolkit, which has 132 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on September 29, 2026.
Source: techwolf-ai/ai-first-toolkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.