ExtSherlock — Extension DoctorFind out which VS Code extension is actually slowing you down — and fix it in one click.
The problemVS Code slows down. One of your extensions is probably responsible. Finding out which one usually means disabling everything and re-enabling extensions one by one, hoping you notice a difference — a slow, unreliable process most people never actually do. What ExtSherlock does insteadExtSherlock profiles the extension host with the same technology VS Code's own Developer: Start Extension Host Profile command uses internally, then turns the raw profile into a plain-language diagnosis: which extension, how much CPU/memory, why it matters, and what to do about it — with a one-click fix. Screenshot / demo GIF goes here. Features🩺 Real diagnosis, not guessworkRuns an actual V8 CPU + heap sampling profile of the extension host and
attributes every sample back to the extension whose installed files it came
from — the same underlying mechanism VS Code's own internal profiler uses.
No polling 📊 A baseline you can trustEvery scan reports what share of CPU time went to your extensions collectively vs. VS Code's own core — so "this extension is 80% of the problem" is a measured ratio, not a vibe. Want a hard before/after number? Baseline A/B Comparison disables every other extension, reloads, scans again, and reports the real delta in CPU, lag, and memory. ⌨️ Typing-triggered vs. always-on background costDistinguishes extensions that only cost CPU while you're actively editing (usually a completion/linting/formatting provider — tune its trigger settings) from extensions burning CPU with the editor completely idle (usually a poller or watcher — just turn it off). 🔍 Root-cause bisection, not just a listQuarantine mode disables every flagged extension at once. Confirm the problem's gone, and ExtSherlock walks you through re-enabling candidates one at a time — reload, "is it back?", repeat — until it identifies the actual culprit and restores everything else automatically. ⚔️ Conflict detectionFlags overlapping formatters, linters, git UI extensions, icon themes, language servers, and spell checkers — a common, easy-to-miss source of duplicated work and flaky behavior. 📈 Trends, not just a snapshotEvery scan is remembered. The impact table shows how each extension's cost has moved since your last few scans, and flags sharp jumps automatically ("GitLens: ~8% → 22% CPU"). 🚀 Catches problems before you notice them
🔗 Community contextFor flagged extensions with a public GitHub repo, ExtSherlock checks for open performance-related issues and surfaces "3 others have reported this" with a link — so you know if it's a known problem before you file a duplicate. 🧭 Always-visible statusA small, persistent status bar item shows live CPU% and input lag without needing the panel open, turning yellow/red exactly when the vitals strip would. 📤 Shareable reportsExport any diagnosis as Markdown (ready to paste into a bug report) or JSON (full structured data), complete with the profiling numbers to back it up. Quick start
No configuration required. Every automatic behavior can be turned off in Settings if you'd rather run scans manually. CommandsAll commands are available from the Command Palette (
Settings
How it works, brieflyAll of your extensions run inside one shared Node.js process (the "extension host"). There's no public VS Code API that hands you clean per-extension CPU/RAM, so ExtSherlock uses Node's built-in profiling APIs to sample that process directly — the same mechanism behind VS Code's own Developer: Start Extension Host Profile — then matches each sampled call frame's source file back to the extension whose installed folder it lives in. A few honest caveats, in plain terms:
None of this makes the numbers untrustworthy — it's the same category of data VS Code's own internal tooling relies on — but treat percentages as directional evidence, not a certified audit. Privacy & network accessExtSherlock reads and profiles data entirely on your machine, with one
exception: when an extension is flagged and its Requirements
Known limitations
FAQDoes ExtSherlock slow down VS Code itself? Background vitals sampling is lightweight (a timer read every couple of seconds). Deep Scans do add measurable CPU load for their duration (default 8–10s) — that's the cost of getting a real profile rather than a guess. Will disabling an extension lose my settings? No — disabling (workspace or global) never uninstalls anything. Re-enable any time from the Extensions view or ExtSherlock's own "Restore Extensions". Can I use this without ever running a Deep Scan? Yes — the vitals strip and status bar work from lightweight background sampling alone. Deep Scan (and the per-extension diagnosis it enables) is opt-in, though a short startup scan runs automatically by default. ContributingIssues and pull requests are welcome. See DEVELOPMENT.md for the project layout, local dev setup, and implementation notes, or open an issue at github.com/AnandShah10/extSherlock/issues. Release notesSee CHANGELOG.md. License |