Files
claude-config/memory/project_plugin_sync.md
T

4.6 KiB

name, description, metadata
name description metadata
project-plugin-sync Claude Code plugins must stay synced across all servers via the claude-config repo (settings.json enabledPlugins)
node_type type originSessionId
memory project 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.