Understanding where extension files are stored and how configuration merging works is the foundation for advanced customization and troubleshooting.
Three Ways to Install
flowchart TB
subgraph Method 1: Plugin One-click
A1["claude plugin install "] --> A2[Download to plugins/cache/]
A2 --> A3[Auto-register Hook/MCP/Skill]
end
subgraph Method 2: Manual Skill
B1[Copy SKILL.md] --> B2["Place in ~/.claude/skills//"]
end
subgraph Method 3: Manual MCP
C1[Edit settings.json] --> C2[Add mcpServers config]
endKey Directory Overview
| Path | Purpose |
|---|---|
~/.claude/settings.json |
Global Config: Hooks, permissions, global MCPs |
~/.claude/skills/ |
Manual Skill Library: Where manually created workflows live |
~/.claude/plugins/ |
Plugin Center: Contains registries and the cache source code |
Project/.claude/settings.json |
Project Config: Project-level Hooks and permissions |
Project/.claude/settings.local.json |
Local Private Config: Local MCPs, database keys |
Configuration Merge Priority
When the same item is configured in multiple places, the following merge rules apply:
- Hooks: All layers cumulative. Hooks from plugins, global, and project levels are all executed in sequence.
- MCP: Project overrides Global. For MCP Servers with the same name, the project-level configuration takes precedence.
- Permissions: Strictest wins. If any layer denies an action, it is blocked.
- Skills: Plugin takes precedence. For slash commands with the same name, the plugin-defined Skill overrides the manual Skill.
Deep Dive into the Installation Flow
When you run claude plugin install, the system:
- Downloads the plugin source from the Marketplace to
plugins/cache/. - Records installation metadata in
installed_plugins.json. - On the next startup, it automatically scans and merges all components.