Add portable plugin configuration for cross-host sync
- Create plugins/config.json with marketplace sources and desired plugins - Remove plugins/installed_plugins.json from tracking (host-specific paths) - Add installed_plugins.json to .gitignore - Update README with plugin installation instructions - Enable example-skills plugin in settings.json
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -26,3 +26,4 @@ plugins/marketplaces/
|
|||||||
plugins/repos/
|
plugins/repos/
|
||||||
plugins/install-counts-cache.json
|
plugins/install-counts-cache.json
|
||||||
plugins/known_marketplaces.json
|
plugins/known_marketplaces.json
|
||||||
|
plugins/installed_plugins.json
|
||||||
|
|||||||
17
README.md
17
README.md
@@ -31,5 +31,20 @@ git submodule update --remote --merge
|
|||||||
|------|-------------|
|
|------|-------------|
|
||||||
| `CLAUDE.md` | Global instructions for all projects |
|
| `CLAUDE.md` | Global instructions for all projects |
|
||||||
| `settings.json` | User permissions and plugin config |
|
| `settings.json` | User permissions and plugin config |
|
||||||
| `plugins/` | Plugin configuration |
|
| `plugins/config.json` | Portable plugin manifest (marketplaces + desired plugins) |
|
||||||
| `skills/` | User-level skills (as submodules) |
|
| `skills/` | User-level skills (as submodules) |
|
||||||
|
|
||||||
|
## Install Plugins on New Host
|
||||||
|
|
||||||
|
After cloning, install the desired plugins listed in `plugins/config.json`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install plugins from known marketplaces
|
||||||
|
claude plugins install example-skills@anthropic-agent-skills
|
||||||
|
|
||||||
|
# For plugins with unknown marketplace sources, search and install manually:
|
||||||
|
claude plugins search superpowers
|
||||||
|
claude plugins search frontend-design
|
||||||
|
```
|
||||||
|
|
||||||
|
The `plugins/installed_plugins.json` file is auto-generated with host-specific paths and should not be committed. The portable configuration is stored in `plugins/config.json`.
|
||||||
|
|||||||
@@ -1,3 +1,29 @@
|
|||||||
{
|
{
|
||||||
"repositories": {}
|
"repositories": {
|
||||||
}
|
"claude-plugins-official": {
|
||||||
|
"source": "github",
|
||||||
|
"repo": "anthropics/claude-plugins-official"
|
||||||
|
},
|
||||||
|
"anthropic-agent-skills": {
|
||||||
|
"source": "github",
|
||||||
|
"repo": "anthropics/skills"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"desired_plugins": [
|
||||||
|
{
|
||||||
|
"id": "superpowers@superpowers-marketplace",
|
||||||
|
"version": "4.0.0",
|
||||||
|
"gitCommitSha": "84283dfc058f61b8985e07d20eb6838a6e7388fe",
|
||||||
|
"note": "Marketplace source unknown - install manually if needed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "frontend-design@claude-code-plugins",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"gitCommitSha": "5880baedc387d8bad189b4c778f69477e88feb7f",
|
||||||
|
"note": "Marketplace source unknown - install manually if needed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "example-skills@anthropic-agent-skills"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 2,
|
|
||||||
"plugins": {
|
|
||||||
"superpowers@superpowers-marketplace": [
|
|
||||||
{
|
|
||||||
"scope": "user",
|
|
||||||
"installPath": "/home/bill/.claude/plugins/cache/superpowers-marketplace/superpowers/4.0.0",
|
|
||||||
"version": "4.0.0",
|
|
||||||
"installedAt": "2025-11-23T20:31:21.915Z",
|
|
||||||
"lastUpdated": "2025-12-21T16:54:24.259Z",
|
|
||||||
"gitCommitSha": "84283dfc058f61b8985e07d20eb6838a6e7388fe",
|
|
||||||
"isLocal": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"frontend-design@claude-code-plugins": [
|
|
||||||
{
|
|
||||||
"scope": "user",
|
|
||||||
"installPath": "/home/bill/.claude/plugins/cache/claude-code-plugins/frontend-design/1.0.0",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"installedAt": "2025-11-24T21:24:25.872Z",
|
|
||||||
"lastUpdated": "2025-11-24T21:24:25.872Z",
|
|
||||||
"gitCommitSha": "5880baedc387d8bad189b4c778f69477e88feb7f",
|
|
||||||
"isLocal": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,12 +1,9 @@
|
|||||||
{
|
{
|
||||||
|
"attribution": {
|
||||||
|
"commit": "",
|
||||||
|
"pr": ""
|
||||||
|
},
|
||||||
"permissions": {
|
"permissions": {
|
||||||
"ask": [
|
|
||||||
"Bash(make dev:*)",
|
|
||||||
"Bash(git merge:*)",
|
|
||||||
"Bash(git branch -d:*)",
|
|
||||||
"Bash(git branch -D:*)",
|
|
||||||
"Bash(git branch --delete:*)"
|
|
||||||
],
|
|
||||||
"allow": [
|
"allow": [
|
||||||
"Bash(git:*)",
|
"Bash(git:*)",
|
||||||
"Bash(npm:*)",
|
"Bash(npm:*)",
|
||||||
@@ -33,6 +30,13 @@
|
|||||||
"Skill(superpowers:*)",
|
"Skill(superpowers:*)",
|
||||||
"Skill(frontend-design:*)",
|
"Skill(frontend-design:*)",
|
||||||
"WebSearch"
|
"WebSearch"
|
||||||
|
],
|
||||||
|
"ask": [
|
||||||
|
"Bash(make dev:*)",
|
||||||
|
"Bash(git merge:*)",
|
||||||
|
"Bash(git branch -d:*)",
|
||||||
|
"Bash(git branch -D:*)",
|
||||||
|
"Bash(git branch --delete:*)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"statusLine": {
|
"statusLine": {
|
||||||
@@ -41,11 +45,8 @@
|
|||||||
},
|
},
|
||||||
"enabledPlugins": {
|
"enabledPlugins": {
|
||||||
"superpowers@superpowers-marketplace": true,
|
"superpowers@superpowers-marketplace": true,
|
||||||
"frontend-design@claude-code-plugins": true
|
"frontend-design@claude-code-plugins": true,
|
||||||
|
"example-skills@anthropic-agent-skills": true
|
||||||
},
|
},
|
||||||
"alwaysThinkingEnabled": true,
|
"alwaysThinkingEnabled": true
|
||||||
"attribution": {
|
|
||||||
"commit": "",
|
|
||||||
"pr": ""
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user