TL;DR
/doctorwent from printing a read-only report to running a full setup checkup. It still hunts what's broken (installation, dead MCP servers, slow hooks), but now it also surfaces the dead weight that quietly eats your context: skills, MCP servers, and plugins you load but never use, plusCLAUDE.mdthat's duplicated or padded with things Claude could infer from the code. It shows you the findings first and asks for confirmation before changing anything. Alias:/checkup.
Until recently, /doctor was the thermometer: you ran it when something already hurt, it told you where it was looking in green/yellow/red, and that was about it. Since v2.1.205 it's a different animal. Now it's the full physical: it doesn't wait for you to get sick, it finds things you didn't know were wrong (several kinds at once), and offers to fix them.
From taking your temperature to a full workup
The change isn't cosmetic. /doctor now looks at two families of problems, and that's the whole point:
- What's broken. Installation health, MCP servers that won't respond, hooks that take too long. Real errors.
- What's excess. Skills, MCP servers, and plugins you have loaded but never use (paying a toll on your context every turn), local
CLAUDE.mdfiles duplicated against the checked-in one, andCLAUDE.mdcontent Claude could derive just by looking at the repo.
The second family is the new one, and it's the one most people ignore: it throws no error, breaks nothing, it just makes every message more expensive without you seeing it.
Result preview
> /doctor
Setup checkup · 8 checks
Health
🟢 Installation native · Claude Code v2.1.205
🟢 MCP servers 4/4 responding
🔴 Hook slow PostToolUse 'lint' took 4.2s avg
Context cost
🟡 Unused skills 3 loaded, 0 used in last 30 sessions
🟡 Unused plugins 1 loaded, never invoked
🟡 CLAUDE.md dupes 2 rules also in the checked-in CLAUDE.md
🟡 CLAUDE.md derivable ~40 lines Claude can infer from the code
1 error · 4 warnings · 3 OK
Apply the proposed fixes? Claude will show each change first.
[y] review and apply · [n] dismiss
You say yes and it goes one by one: it shows you the diff for each fix (disable the skill you never touch, drop the two duplicated rules from CLAUDE.md, trim the lines that are excess) and applies only what you approve. Nothing changes behind your back.
How to use it
1. Run it inside a session
/doctor
/checkup does exactly the same thing. It's the alias, in case that word comes to you first. This full checkup (dead weight included, and the fixes) lives only inside a session.
2. Read the findings before you decide
The key difference from the old version: it reports first, then asks. It applies nothing until you say yes, and it shows you each change individually. You can accept the slow-hook fix and reject the CLAUDE.md trim if you want that chunk on purpose.
3. Shell claude doctor is a different, lighter thing
claude doctor
Don't mix them up: the shell version is not this checkup. It's the classic installation check (install type, version, PATH, ripgrep, auto-updates), the one you run when Claude won't even start. In fact, it tells you so on the way out: "For a full setup checkup that can also fix issues, run /doctor in a Claude Code session." The dead-weight sweep and the confirm-then-fix flow are the in-session /doctor only.
What it reviews
| Family | Check | What it surfaces |
|---|---|---|
| Health | Installation | Type, version, binary integrity |
| Health | MCP servers | Each configured server responds |
| Health | Hooks | Flags the ones that take too long |
| Dead weight | Unused skills / MCP / plugins | What you load but never invoke, versus its context cost |
| Dead weight | Duplicated CLAUDE.md |
Local rules already in the checked-in CLAUDE.md |
| Dead weight | Derivable CLAUDE.md |
Content Claude can infer from the code itself |
Reference
| Aspect | Detail |
|---|---|
| Command | /doctor (alias /checkup), inside a session |
Shell claude doctor |
Lighter installation check; not the checkup, doesn't touch dead weight |
| Before | Read-only report |
| Now | Diagnoses and fixes, with confirmation |
| Order | Reports first, asks second, applies only what's approved |
| New coverage | Dead skills/MCP/plugins, CLAUDE.md dedup and trim, slow hooks |
When what you have is a concrete symptom (search isn't finding files, an MCP won't connect, a skill vanished) and you want the "something's broken, find it" angle, that's still the classic /doctor. This tip is the opposite: the periodic checkup that catches what slipped past you.
And if the checkup flags your CLAUDE.md as bloated, here's what to trim and what to keep: your CLAUDE.md is full of junk. For the toll of plugins you load but never use, this one breaks it down.
Official docs: Slash commands · Claude Code Docs