What is /doctor, and how does it differ from other troubleshooting commands?
/doctor is a built-in Claude Code slash command that runs a full environment setup checkup, covering install method (npm global, local, native binary), update channel, MCP Server connection status, permission rule errors, duplicate CLAUDE.md files, and other common hidden issues. Its alias is /checkup, and the two names behave identically.
The division of labor with /status is different: /status presents a one-time snapshot of the current conversation (active model, account, connection health) — a passive status display. /doctor actively runs a full set of checks, digging into the root cause of installation and configuration problems, with the ability to fix issues further. The two are complementary, not interchangeable.
Why does /doctor exist, and what problem does it solve?
Claude Code's environment setup involves a fair number of pieces prone to "Silent Failure" — multiple install methods potentially coexisting and conflicting (npm global, ~/.claude/local, Homebrew), incorrect PATH configuration, an MCP Server that won't connect, a misconfigured permission rule, a Skill or command description dropped due to budget overflow. Most of these situations don't throw a clear error message — the user just senses that "something feels off" without knowing where to start looking.
/doctor exists to consolidate these otherwise scattered checks, which a user would normally have to work through one by one, into a single command that runs in seconds and directly tells you what's fine, what's a warning, and what's broken — compressing a problem that might otherwise take several rounds of searching or asking around to pin down into a single diagnostic report.
What does /doctor actually look like in practice?
Typing /doctor (or its alias /checkup) in any Claude Code conversation opens a checkup panel that displays an itemized status report within seconds — each check marked green (passing), yellow (warning), or red (error), covering things like install type, install path, version number, whether multiple installations exist, and MCP connection status. You don't need an active conversation session to run the check — typing claude doctor directly in a regular terminal runs the same checkup, which is particularly useful when Claude Code won't even start a session at all.
The command's graduation from a read-only diagnostic to one that can directly help fix issues was added in a later version: pressing f on the diagnostic results screen lets Claude work on fixing a reported problem, but it always presents what it's about to change and waits for your confirmation before doing anything — it never quietly acts on its own. This "report first, then ask permission before acting" mechanism is also its biggest difference from a typical auto-fix tool.
Understanding what /doctor does — how does this actually affect everyday Claude Code use?
The most direct effect is adjusting your troubleshooting habit: when something "feels off but there's no clear error message," reach for /doctor as the first step, rather than searching the web or asking Claude directly first — a lot of environment-level problems become instantly clear with a single checkup run, without a long detour before finding the root cause. This also echoes the recommended diagnostic order for troubleshooting something like a Skill that won't trigger: first confirm with a diagnostic tool whether the configuration itself has a problem, and only then check whether the higher-level text content is written well enough.
Another practical suggestion is scheduling it as a regular check rather than something you only think to run once something's already broken: run it once after any major version upgrade, since new checks a newer version introduces (a new configuration recommendation, say) will only catch a problem that existed before the upgrade but had gone undetected by the older version's check logic. Running it catches a potential issue early, rather than waiting until it actually causes a visible failure to notice.
Official documentation and community records show that /doctor was upgraded, in a specific version, from a purely read-only diagnostic into one supporting a f-key press for direct fix assistance — the timing of this change is documented explicitly, and community write-ups note that in older versions before this change, running /doctor only opened a diagnostic screen listing problems and which item was currently active, with no fixing capability whatsoever built in. This behavioral difference across versions is exactly why anyone looking into /doctor should check whether the version they're using actually supports the fix functionality, rather than assuming behavior is identical across every version.
The advantage is consolidating otherwise scattered, hard-to-locate environment problems into a single diagnostic pass, pinpointing common failures in seconds and helping fix them directly once confirmed; the drawback is that it mainly handles installation- and configuration-level problems — it can't do anything about content-quality issues like "a Skill's description isn't specific enough," which can only be addressed by first confirming the configuration itself is fine and then going back to adjust the content yourself.