How to clean up your Claude Code setup

Skills, plugins, MCP servers, and agents pile up fast. After a few months of installing things, your Claude Code setup carries copies you never chose, capabilities you never use, and quiet duplicates that plugins bundle on your behalf. This guide walks through how that clutter accumulates, what it actually costs you, and the fastest way to get an honest, scope-aware picture so you can clear it out with confidence.

Why does a Claude Code setup get cluttered?

Clutter is the natural result of how Claude Code is extended. Skills, plugins, MCP servers, and agents each get added independently, often weeks apart, and almost nothing prompts you to remove the old ones. Worse, the same capability can live in two different scopes: global, under ~/.claude, where it applies everywhere, and project, under a repository's .claude folder, where it applies only there. The same skill can exist in both, and from the inside it is hard to tell which copy is doing the work.

The biggest source of hidden clutter is plugins. A plugin is not a single feature: it can bundle its own skills, agents, and MCP servers. Install one plugin and you may quietly gain half a dozen capabilities you never picked individually. If you also installed a standalone skill that a plugin later bundled, you now have two copies of the same thing, and you never made a decision to keep either one. That is how a setup that felt deliberate ends up full of things you cannot account for.

What does clutter actually cost you?

The cost is not just visual mess. It is context. Many of these definitions can load into the model's working context, and that space is finite. Each MCP server advertises its tool schemas so Claude knows what it can call. Each skill carries a description that tells the model when to use it. Each agent carries its own definition. When you keep duplicates, or keep things you never use, those descriptions and schemas still take up room and add noise that the model has to read past.

The practical effects are real even if they are hard to put a single number on: redundant copies waste tokens, near-identical skills make it harder for the model to pick the right one, and an MCP server you forgot you installed keeps advertising tools you will never call. The fix is not to strip your setup bare. It is to keep what you genuinely use and remove the rest, so every definition that loads is one you would choose again.

How do I audit my Claude Code setup manually?

You can do a thorough pass by hand. The places to look:

  • Global skills. Open ~/.claude/skills and read what is there. Each skill folder has a SKILL.md with a description. Ask yourself, honestly, when you last used it.
  • Global plugins. Look in ~/.claude/plugins. For each plugin, check what it bundles, because the skills and agents inside it count too.
  • Agents. Check ~/.claude/agents for subagent definitions you may have added once and forgotten.
  • MCP servers. These live in your Claude settings (and per-project config). Each one advertises a set of tools; list them and note which you actually call.
  • Per-project setups. In each repository you work in, open its .claude folder and repeat the pass. Project scope is easy to forget precisely because it is out of sight in another directory.

As you go, watch for the same capability showing up more than once, especially when one copy is standalone and another is bundled inside a plugin. That overlap is the single most common thing a manual audit misses, because the two copies live in different folders and never sit next to each other where you would notice.

How do I find duplicate skills and plugins?

Duplicate detection is the part that is genuinely hard to do by eye. Because plugins bundle their own skills, agents, and MCP servers, a standalone skill you installed deliberately can be superseded by an identical copy that arrived inside a plugin. You would only catch it by opening every plugin, reading what it ships, and cross-referencing that against your standalone installs across both global and project scope. Almost nobody does that by hand.

This is exactly what Stack Cleaner's duplicate detection surfaces for you. It reads your whole setup, lays the standalone items next to the ones plugins bundle, and flags the overlaps in plain language, with provenance, so you can see which copy came from where and decide which one to keep. Instead of guessing, you get a list of the actual collisions and the context to act on them.

What is the fastest way to clean it up?

The fastest path is to stop reading folders by hand and let a scan do the inventory for you. The flow is short:

  • Run the scan. One command, npx stack-cleaner@latest (or the curl one-liner from the setup guide), reads your local Claude Code setup and writes a small stack-cleaner.json file. It strips secrets before writing and changes nothing on your machine.
  • Open it in the browser. Drop that file into the inventory tool. The parsing happens entirely in-browser; the file is held in localStorage only. Nothing is uploaded, and there is no backend.
  • Sort by what you actually use. The scan reads your local transcripts to count real usage, so you can see at a glance what you lean on versus what you installed and never touched, including MCP servers and agents that carry no usage count in plain config.
  • Filter to duplicates. Use the Duplicates filter to jump straight to the overlaps that plugins introduced, then decide which copy to keep.
  • Export a cleanup plan. Tick what you do not need and export a plan: a paste-to-Claude prompt, a shell script, or JSON that you review and run yourself. The tool never deletes anything for you.

Two minutes of scanning replaces an hour of folder-spelunking, and you end up with a decision-ready list instead of a vague sense that something is bloated.

Where to start

If you want to clean up your Claude Code setup today, start with the setup guide to run the scan, then open the inventory tool to see everything split by global and project scope, sorted by real usage, with duplicates flagged. It is free, open source, and runs entirely on your machine.