What 19 Claude Code Plugins Actually Cost You (In Context, Not Dollars)
I have 19 plugins enabled in Claude Code. The everything-claude-code repo recommends keeping it under 10. I've been meaning to audit this for weeks. So here it is.
How plugins eat context
Every enabled plugin registers its tools into Claude's system prompt. Each tool has a name, description, and parameter schema. That schema text counts against your context window — before you've typed a single message.
A plugin with 5 tools might add 2,000-3,000 tokens of tool definitions. Enable 19 plugins and you're looking at 15,000-25,000 tokens of overhead. That's context window space that could hold actual code, actual conversation, actual reasoning.
You don't see this cost. There's no "context budget" panel. You just notice that compaction hits earlier, or that Claude seems to forget things from earlier in the conversation. The context window is a fixed resource and plugins compete with your actual work for space in it.
My 19 plugins, rated
I went through each one and asked: do I use this weekly? Could a CLI tool do the same job?
Worth keeping (use weekly, no CLI alternative)
| Plugin | Tools | Why keep |
|---|---|---|
| context7 | 2 | Documentation lookup. Saves me from pasting docs manually. |
| playwright | ~20 | Browser testing and screenshots. No CLI equivalent for visual verification. |
| feature-dev | 3 | Code architect, explorer, reviewer agents. Use constantly. |
| superpowers | ~10 | Planning, brainstorming, debugging workflows. Core to how I work. |
| commit-commands | 3 | Commit, push, PR creation. Faster than typing git commands. |
| typescript-lsp | ~5 | Type checking, go-to-definition. Makes Claude smarter about TS projects. |
6 plugins, ~43 tools. These stay.
Useful but replaceable with CLI
| Plugin | Tools | CLI alternative |
|---|---|---|
| github | ~15 | gh CLI does everything this does. Already installed. |
| supabase | ~8 | supabase CLI for migrations, psql for queries. |
| sentry | ~5 | sentry-cli covers most use cases. |
| stripe | ~5 | stripe CLI for testing, webhooks, logs. |
4 plugins, ~33 tools. These should go. The gh CLI is faster than the GitHub MCP for most operations anyway. I use gh pr create, gh issue list, gh api constantly. The plugin is redundant.
Rarely used
| Plugin | Last used | Verdict |
|---|---|---|
| frontend-design | 2 weeks ago | Keep for now — helpful during UI sprints |
| code-simplifier | 3 weeks ago | Marginal value, could do manually |
| ralph-loop | 1 week ago | Niche, but handy for recurring tasks |
| code-review | 2 weeks ago | Overlaps with feature-dev reviewer |
| claude-md-management | 1 month ago | Used once to refactor CLAUDE.md. Done. |
| claude-code-setup | Never | Initial setup only. Should have disabled after. |
| security-guidance | 1 month ago | Manual review is more thorough |
| skill-creator | 2 weeks ago | Only needed when creating new skills |
| sentry | 1 month ago | Replace with CLI |
9 plugins, ~40 tools. Most should go.
The math
Current state: 19 plugins, ~116 tools, estimated 20,000-25,000 tokens of overhead.
After cleanup: 7-8 plugins, ~50 tools, estimated 8,000-10,000 tokens of overhead.
That's roughly 15,000 tokens freed up. In practical terms, that's about 10-12 pages of code that Claude can hold in context instead of tool definitions it's not using.
What I'm actually disabling
{
"enabledPlugins": {
"context7": true,
"playwright": true,
"feature-dev": true,
"superpowers": true,
"commit-commands": true,
"typescript-lsp": true,
"frontend-design": true,
"ralph-loop": true
}
}That's 8 plugins, down from 19. The GitHub, Supabase, Sentry, and Stripe MCPs get replaced by their CLI equivalents. The setup, security, simplifier, and management plugins get disabled until I specifically need them.
I'm keeping frontend-design and ralph-loop on the edge — they're useful enough during specific workflows to justify the context cost.
When to use plugins vs CLI
A simple heuristic:
Use a plugin when: The operation needs Claude to see and react to the result within the conversation. Browser screenshots (Playwright), type checking (TypeScript LSP), documentation lookup (context7) — these feed information back into Claude's reasoning.
Use a CLI tool when: The operation is a fire-and-forget action. Creating a PR, running a migration, deploying — these don't need Claude to process the output. Just run the command and move on.
The mistake I made was enabling every plugin that sounded useful without asking whether Claude actually needs to see the output. For most GitHub operations, I just need the command to run. I don't need Claude to parse the JSON response from the GitHub API.
The compaction connection
I set my CLAUDE_AUTOCOMPACT_PCT_OVERRIDE to 70%. That means compaction triggers when the context window is 70% full. With 25,000 tokens of plugin overhead, I was hitting 70% faster and compacting more often.
After dropping to ~10,000 tokens of overhead, I expect compaction to happen less frequently. Less compaction means less context loss. Less context loss means Claude remembers more of what we discussed earlier in the session.
It's all connected: fewer plugins → more usable context → less compaction → better session continuity → better output. The improvement compounds.
19 plugins felt productive when I enabled them. "More tools means more capable, right?" Not when the tools compete with your actual work for attention. I should have audited this a month ago. If you've got more than 10 plugins enabled, check which ones you actually used this week. The ones you didn't are costing you context you can't see.