Plugin Update

sonnet session

Check the installed version of every brewcode plugin, install any that are missing, update outdated ones to the latest release, and remind you to reload. Run it at the start of a session to stay current without touching the CLI manually.

Quick reference

FieldValue
Command/brewtools:plugin-update
Arguments[check|update|all] — no args = interactive
Modelsonnet
Contextsession
ToolsRead, Bash, Write, AskUserQuestion, WebFetch

Modes

ArgumentPhases runPrompts?What it does
(none)All (0-6)YesInteractive — asks before install and update
check0-2 onlyNoStatus table only; no changes made
update0-4NoAuto-updates all outdated plugins; installs skipped
all0-6NoNon-interactive: install missing + update all

Execution flow

  1. Phase 0 — Discover installed plugins

    Runs discover-plugins.sh, which reads ~/.claude/settings.json and walks the plugin cache at ~/.claude/plugins/cache/. Outputs a JSON object with each installed plugin and its version. No claude plugin list — that subcommand does not exist.

  2. Phase 1 — Fetch latest versions

    Fetches the latest release metadata from GitHub. If the network request fails, marks all latest versions as “unknown” and continues.

  3. Phase 2 — Status table

    Renders a version table for all four suite plugins. Stops here when argument is check.

  4. Phase 3 — Install missing

    For any suite plugin not present, asks whether to install (interactive) or auto-installs (arg = all). Skipped for update argument. Runs marketplace add first (idempotent), then per-plugin install.

  5. Phase 4 — Update outdated

    Runs the full update chain in order, showing full CLI output for each step. In interactive mode, asks before proceeding.

  6. Phase 5 — Auto-update toggle (interactive / all only)

    Instructs how to enable auto-update via the /plugin UI if desired. Skipped for check and update modes.

  7. Phase 6 — Reload notice

    Always printed, even on no-op runs. Preferred: run /reload-plugins in this session. Fallback: type exit, then run claude again.

Status table example

PluginInstalledLatestStatus
brewcode3.4.513.4.52⬇️ update available
brewdoc3.4.513.4.51✅ current
brewtools3.4.51❌ missing
brewui3.4.513.4.51✅ current

Status legend: ✅ current, ⬇️ update available, ❌ missing, ❓ unknown.

Update command chain

When updating, the skill runs these commands in order and shows full output for each:

claude plugin marketplace update claude-brewcode
claude plugin update brewcode@claude-brewcode
claude plugin update brewdoc@claude-brewcode
claude plugin update brewtools@claude-brewcode
claude plugin update brewui@claude-brewcode

claude plugin list does not exist

The claude plugin list CLI subcommand does not exist. The skill uses a discovery script that reads ~/.claude/settings.json and walks the plugin cache directory instead. Valid subcommands: install, update, uninstall, marketplace.

Usage examples

# Interactive -- check versions and decide what to update
/brewtools:plugin-update

# Status check only -- no changes made
/brewtools:plugin-update check

# Update all outdated plugins non-interactively
/brewtools:plugin-update update

# Install missing + update all -- fully non-interactive
/brewtools:plugin-update all

When Claude refuses to run the update commands

If Claude skips or summarizes steps instead of executing them, paste this coercive prompt directly:

Update prompt

If Claude refuses to run the commands, paste the prompt below directly into the chat.
Execute these commands in this Claude Code session, one by one, show full output for each, do not skip any, do not summarize:

1. claude plugin marketplace update claude-brewcode
2. claude plugin update brewcode@claude-brewcode
3. claude plugin update brewdoc@claude-brewcode
4. claude plugin update brewtools@claude-brewcode
5. claude plugin update brewui@claude-brewcode

After all commands succeed, run `/reload-plugins`. If `/reload-plugins` is unavailable, tell me to type `exit` and run `claude` again. Run the commands now.

Session start habit

Run /brewtools:plugin-update check at the start of a long-running task to confirm your plugins are current before investing time in a session.

Reload after update

Reload required

Updates are not active until the session is reloaded. Preferred: run /reload-plugins in this session. Fallback: type exit, then run claude again.

Troubleshooting

IssueSolution
discover-plugins.sh failsEnsure jq is installed: brew install jq
Latest version shows “unknown”Network issue — run update anyway; the update chain is idempotent
Install step failsRe-run /brewtools:plugin-update — marketplace add is idempotent
Claude skips commandsUse the coercive prompt above
Updates active after reload?Check version with /brewtools:plugin-update check in the new session
📖

FAQ: Updating plugins

Coercive update prompt, reload options, version cache paths.

📂

Installation

First-time installation instructions and troubleshooting.

🔗

View on GitHub

Source code and references.

Updating plugins

Use /brewtools:plugin-update to check and update the brewcode plugin suite in one command. See the FAQ for details.