Files
claude-config/memory/project_plugin_sync.md

65 lines
4.6 KiB
Markdown

---
name: project-plugin-sync
description: "Claude Code plugins must stay synced across all servers via the claude-config repo (settings.json enabledPlugins)"
metadata:
node_type: memory
type: project
originSessionId: e24d82e5-1bd0-48dc-99e6-9a4a434f0d2d
---
All of the user's Claude Code installations (multiple servers) must run the same set of plugins.
The user explicitly wants newly installed plugins propagated to every machine.
**Currently enabled plugins** (in `~/.claude/settings.json` → `enabledPlugins`), as of 2026-07-16:
- From `claude-plugins-official` (`anthropics/claude-plugins-official`, auto-installs on every machine):
superpowers, claude-md-management, aws-agents, feature-dev, huggingface-skills, amazon-location-service
(carta-investors and github were previously listed here but are no longer enabled)
- From non-official marketplaces (each registered in `extraKnownMarketplaces`):
`codex@openai-codex` (`openai/codex-plugin-cc`), `warp@claude-code-warp` (`warpdotdev/claude-code-warp`),
`ui-ux-pro-max@ui-ux-pro-max-skill` (`nextlevelbuilder/ui-ux-pro-max-skill`),
`impeccable@impeccable` (`pbakaus/impeccable`), `claude-mem@thedotmack` (`thedotmack/claude-mem`),
`quickdesign@claude-community` (`anthropics/claude-plugins-community` — note the marketplace NAME is
`claude-community`, not the repo name; `quickdesign@claude-plugins-community` fails)
**Why:** Plugins are declared in `settings.json` (`enabledPlugins` + `extraKnownMarketplaces`), which the
[[user-github]] `claude-config` repo already tracks. The installed plugin *cache* under `~/.claude/plugins/`
is NOT synced and should not be — each server re-fetches plugins from its marketplace based on the declaration.
**How to apply:** After installing/removing any plugin, run `~/Git/claude-config/sync.sh` to push the updated
`settings.json` to GitHub. On another server, `git pull && ./install.sh`, then start Claude Code — it auto-installs
the enabled plugins from `claude-plugins-official`. UNVERIFIED as of 2026-07-16: whether startup also auto-fetches
*non-official* marketplaces from `extraKnownMarketplaces`. If a synced non-official plugin is missing on MINI-S,
run the two-step CLI install below there, then note the answer here.
**CLI dependencies.** Two plugins shell out to a binary and are inert without it: `codex@openai-codex` needs
the Codex CLI (`@openai/codex`, binary `codex`), and `quickdesign@claude-community` needs `@quickdesign/cli`
(binary `quickdesign`). `install.sh` installs both via `npm install -g` when missing, so they propagate to every
server that runs the installer (requires npm on the target machine). `quickdesign` additionally needs a
per-machine `quickdesign login` (OAuth browser flow, token at `~/.config/quickdesign/auth.json`, or
`--token-stdin`/`QUICKDESIGN_TOKEN` headless) — that part cannot be synced. Do NOT run `quickdesign init`: it
copies the same skill into `~/.claude/skills/quickdesign`, duplicating the plugin copy (and `sync.sh` would then
commit it into the repo's `skills/`). Use `quickdesign login` alone.
**Gotcha — hand-editing `extraKnownMarketplaces` does NOT fetch the marketplace.** Adding a marketplace +
`enabledPlugins` entry by hand only *declares* it. `/reload-plugins` will NOT pick it up: that command reloads
already-known marketplaces, so the plugin/skill counts come back unchanged and `~/.claude/plugins/known_marketplaces.json`
still omits the new entry.
**Installing a non-official plugin takes TWO steps, and Claude can do both itself via the CLI** (no need to ask the
user to run slash commands — `claude plugin --help` mirrors `/plugin`):
```
claude plugin marketplace add <owner>/<repo> # clones + registers the marketplace
claude plugin install <plugin>@<marketplace> # actually installs it
```
Step 1 alone leaves `installed_plugins.json` untouched — registering a marketplace does NOT install the plugins
already declared in `enabledPlugins`. Neither step rewrites `settings.json`, so a prior hand-edit + sync stays valid.
**Verify by reading files, never by trusting a success banner** — that mistake cost a round trip on 2026-07-16.
Check `~/.claude/plugins/known_marketplaces.json` (marketplace registered) and `installed_plugins.json` (plugin +
version + installPath present). Absence of an error is not evidence of an install.
Rule: any plugin from a *non-official* marketplace
must have that marketplace added to `extraKnownMarketplaces` in `settings.json`, or it won't install on other
servers. Both non-official marketplaces in use (`openai-codex` → `openai/codex-plugin-cc`, `claude-code-warp` →
`warpdotdev/claude-code-warp`) are now registered there.