TL;DR My own Claude Code called me out: 2 plugins I'd installed and stopped using were still costing me context on every message. Since v2.1.187,
/plugin→ the Installed tab groups the ones you haven't invoked in ≥2 weeks (across ≥10 sessions) under "Not used recently" and shows each plugin's "Last used" line. Disable or uninstall them and you claw back tokens you were burning in silence.
An active plugin doesn't only cost you when you use it. It costs you at session startup and reloads on every request: its skills, agents, hooks, and above all its MCP servers weigh on your context window turn after turn, whether you invoke them or not. The problem was never that they cost tokens. It's that nothing surfaced it: you install one, forget it, and it keeps dragging on every exchange.
That changed. Claude Code now detects the plugins you installed yourself and haven't touched in weeks, and puts them front and center so you can decide.
Result (the Installed tab):
/plugin › Installed
▸ Not used recently
chrome-devtools-mcp@chrome-devtools-plugins
warp@claude-code-warp
▸ Enabled
cc-tips@juanwmedia-cc-tips
typescript-lsp@claude-plugins-official (LSP)
rust-analyzer-lsp@claude-plugins-official (LSP)
↵ open detail → Last used: 19 days ago · disable / uninstall
How to hunt them down
1. Open the manager and go to Installed
/plugin
Cycle with Tab to Installed. The "Not used recently" group sits at the top: marketplace plugins you installed and haven't invoked in ≥2 weeks across ≥10 sessions. Press Enter on any of them to see its "Last used" line and decide.
2. Confirm the cost with /context
Before you delete, check what they actually take up. /context breaks tokens down by category; a plugin bundling an MCP server is usually the heaviest. For the full picture of what each feature loads and when, see when each feature loads into context.
3. Disable or uninstall
From the detail view, or by command:
/plugin list --enabled # what's active
/plugin disable warp@claude-code-warp # silence it, keep it
/plugin uninstall warp@claude-code-warp # remove it from disk
disable mutes it but leaves it installed; uninstall removes it. If you act mid-session, follow with /reload-plugins to apply the change without restarting.
Reference
| Action | Command |
|---|---|
| Open the manager | /plugin → Installed tab |
| List active plugins | /plugin list --enabled |
| See "Last used" | Enter on the plugin in Installed |
| Disable | /plugin disable name@marketplace |
| Uninstall | /plugin uninstall name@marketplace |
| Apply mid-session | /reload-plugins |
Careful: "none shown" isn't "none cost you"
The detector doesn't list everything. It skips plugins that deliver value without an invocation to track: LSP servers, themes, output styles, monitors, and workflows, plus anything your organization manages or you load with --plugin-dir. That's why my two LSP plugins (typescript, rust-analyzer) never show up under "Not used recently" even though they're always on. And if your org restricts marketplaces with strictKnownMarketplaces, the group and the "Last used" line are hidden entirely. Translation: an empty group doesn't mean you're paying no context. That's what /context is for.
Official docs: Manage installed plugins
Requirement: Claude Code v2.1.187 or later (the "Not used recently" group and the "Last used" line).