Global Plugin Cleanup
Decision
Reduce globally enabled Claude Code plugins from 32 to 13. Removed plugins fall into two categories:
- Hook-heavy plugins (removed for performance) — firing hooks on every tool call, prompt, or file write across all projects, even where irrelevant
- Project-specific plugins (removed for scope) — only useful in certain project types, adding overhead everywhere else
Context
Analysis on 2026-03-29 found that 8 plugins registered hooks that fire continuously:
| Plugin | Hooks | Impact |
|---|---|---|
| vercel | 13 hooks (PreToolUse, PostToolUse, UserPromptSubmit, SubagentStart, SubagentStop, SessionStart x3, SessionEnd) | Telemetry, skill injection, validation on every action |
| hookify | 4 hooks (PreToolUse, PostToolUse, UserPromptSubmit, Stop) | Fires on every tool call and prompt |
| semgrep | 3 hooks (PostToolUse on Write/Edit, UserPromptSubmit, SessionStart) | Failing every invocation — no SEMGREP_APP_TOKEN configured |
| security-guidance | 1 hook (PreToolUse on Edit/Write) | Python script on every file write |
| railway | 1 hook (PreToolUse on Bash) | Fires on every Bash command |
| explanatory-output-style | 1 hook (SessionStart) | Injects instructions at start |
| learning-output-style | 1 hook (SessionStart) | Injects instructions at start |
Additionally, project-specific plugins (LSPs, design tools, testing) were installed globally but only relevant to specific project types:
- LSP plugins (swift-lsp, typescript-lsp, kotlin-lsp, csharp-lsp) — only useful in projects using those languages
- Design plugins (frontend-design, figma, playground, accesslint) — only useful for web/UI projects
- Dev tool plugins (plugin-dev, agent-sdk-dev, skill-creator) — only useful when authoring Claude Code extensions
- Testing (playwright) — only useful for web projects
- Communication (telegram) — very niche
Removed (19 plugins)
Phase 1: Hook-heavy (6 removed)
security-guidance— PreToolUse on every Write/Edithookify— 4 hooks on everythingvercel— 13 hooks + telemetryrailway— PreToolUse on every Bashexplanatory-output-style— SessionStart injectionlearning-output-style— SessionStart injection
Phase 2: Project-specific (13 removed)
typescript-lsp,swift-lsp,kotlin-lsp,csharp-lsp— LSPs for specific languagesfrontend-design,figma,playground,accesslint— design/frontend toolsplugin-dev,agent-sdk-dev,skill-creator— extension authoringplaywright— browser testingtelegram— messaging
Phase 3: Redundant third-party (1 removed)
coderabbit— third-party AI code review with 40+ static analyzers. Overlaps with Anthropic's own code-review and pr-review-toolkit plugins; requires paid account for premium features.
Remaining (12 plugins)
| Category | Plugins |
|---|---|
| Code Review (3) | code-review, code-simplifier, pr-review-toolkit |
| Workflow (5) | superpowers, feature-dev, commit-commands, claude-code-setup, claude-md-management |
| Source Control (1) | github |
| Search (1) | context7 |
| Docs (2) | document-skills, claude-api |
Only superpowers has a hook (SessionStart, fires once).
How to re-enable per project
Install any removed plugin in a specific project when needed:
# In the project directory:
/plugin install typescript-lsp@claude-plugins-official
/plugin install frontend-design@claude-plugins-official
/plugin install playwright@claude-plugins-official
# etc.
Or add to the project's .claude/settings.json:
{
"enabledPlugins": {
"typescript-lsp@claude-plugins-official": true
}
}