Plugin Update
sonnet sessionCheck 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
| Field | Value |
|---|---|
| Command | /brewtools:plugin-update |
| Arguments | [check|update|all] — no args = interactive |
| Model | sonnet |
| Context | session |
| Tools | Read, Bash, Write, AskUserQuestion, WebFetch |
Modes
| Argument | Phases run | Prompts? | What it does |
|---|---|---|---|
| (none) | All (0-6) | Yes | Interactive — asks before install and update |
check | 0-2 only | No | Status table only; no changes made |
update | 0-4 | No | Auto-updates all outdated plugins; installs skipped |
all | 0-6 | No | Non-interactive: install missing + update all |
Execution flow
- Phase 0 — Discover installed plugins
Runs
discover-plugins.sh, which reads~/.claude/settings.jsonand walks the plugin cache at~/.claude/plugins/cache/. Outputs a JSON object with each installed plugin and its version. Noclaude plugin list— that subcommand does not exist. - 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.
- Phase 2 — Status table
Renders a version table for all four suite plugins. Stops here when argument is
check. - Phase 3 — Install missing
For any suite plugin not present, asks whether to install (interactive) or auto-installs (arg =
all). Skipped forupdateargument. Runs marketplace add first (idempotent), then per-plugin install. - Phase 4 — Update outdated
Runs the full update chain in order, showing full CLI output for each step. In interactive mode, asks before proceeding.
- Phase 5 — Auto-update toggle (interactive / all only)
Instructs how to enable auto-update via the
/pluginUI if desired. Skipped forcheckandupdatemodes. - Phase 6 — Reload notice
Always printed, even on no-op runs. Preferred: run
/reload-pluginsin this session. Fallback: typeexit, then runclaudeagain.
Status table example
| Plugin | Installed | Latest | Status |
|---|---|---|---|
| brewcode | 3.4.51 | 3.4.52 | ⬇️ update available |
| brewdoc | 3.4.51 | 3.4.51 | ✅ current |
| brewtools | — | 3.4.51 | ❌ missing |
| brewui | 3.4.51 | 3.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
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
| Issue | Solution |
|---|---|
discover-plugins.sh fails | Ensure jq is installed: brew install jq |
| Latest version shows “unknown” | Network issue — run update anyway; the update chain is idempotent |
| Install step fails | Re-run /brewtools:plugin-update — marketplace add is idempotent |
| Claude skips commands | Use the coercive prompt above |
| Updates active after reload? | Check version with /brewtools:plugin-update check in the new session |
Related
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
/brewtools:plugin-update to check and update the brewcode plugin suite in one command.
See the FAQ for details.