From brewtools
Checks installed versions and updates the brewcode plugin suite (brewcode, brewdoc, brewtools, brewui). Supports interactive, check-only, update, and full non-interactive modes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/brewtools:plugin-update [check|update|all] — no args = interactive. check = status only, update = prompt to update, all = everything non-interactive[check|update|all] — no args = interactive. check = status only, update = prompt to update, all = everything non-interactivesonnetThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Check, install, and update the brewcode plugin suite (brewcode, brewdoc, brewtools, brewui). Execute all commands in the current session — never give "you should run" instructions.
Check, install, and update the brewcode plugin suite (brewcode, brewdoc, brewtools, brewui). Execute all commands in the current session — never give "you should run" instructions.
Skill arguments received: $ARGUMENTS
| Arg | Behavior |
|---|---|
| (empty) | Interactive — all 6 phases with AskUserQuestion gates |
check | Phases 0-2 only (status table), no prompts |
update | Phases 0-4, non-interactive "Update all" |
all | Phases 0-6 non-interactive |
Parse first token of $ARGUMENTS. Unknown or empty → interactive.
claude plugin ... command via Bash tool. Show full output.--plugin-dir for end users (dev-only).PRIMARY (CC 2.1.163+) — EXECUTE using Bash tool:
unset CLAUDECODE && claude plugin list --json && echo "✅ list OK" || echo "❌ list FAILED"
If the command succeeds and returns a non-empty JSON array, parse it directly. Each object has fields: id (<plugin>@<marketplace>), version (string, may be "unknown"), scope, enabled (boolean), installPath, installedAt, lastUpdated, optional mcpServers.
FALLBACK (CC < 2.1.163 or empty/error output from above) — EXECUTE using Bash tool:
bash "${CLAUDE_SKILL_DIR}/scripts/discover-plugins.sh" && echo "✅ discover OK" || echo "❌ discover FAILED"
STOP if both fail — report to user and continue without installed data (treat everything as missing).
Partition results into: suite = {brewcode, brewdoc, brewtools, brewui}, other = everything else.
Read references/discovery.md for details on both discovery paths.
EXECUTE using Bash tool:
bash "${CLAUDE_SKILL_DIR}/scripts/fetch-latest-versions.sh" && echo "✅ fetch OK" || echo "❌ fetch FAILED"
STOP if ❌ — report network issue, mark latest versions as "unknown", continue.
Merge with Phase 0 data.
Render markdown table to the user:
| Plugin | Installed | Latest | Status |
|---|---|---|---|
| brewcode | 3.4.51 | 3.4.52 | ⬇️ update |
| 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.
Also list other plugins below with their versions (informational).
If arg = check → STOP here. Skip to Phase 6.
Precheck:
claude plugin details --help >/dev/null 2>&1 && echo "available" || echo "skip"
If unavailable → SKIP (proceed to Phase 3).
If available, for each installed suite plugin run claude plugin details <plugin>@claude-brewcode and render:
| Plugin | Base Tokens | With Skills | Hooks | Total |
|---|---|---|---|---|
| brewcode | ... | ... | ... | ... |
| brewdoc | ... | ... | ... | ... |
| brewtools | ... | ... | ... | ... |
| brewui | ... | ... | ... | ... |
Adapt column names to actual output fields. Missing field → —. Command failure for a plugin → ❓ for that row, continue.
Phase is informational only; do not block on errors.
For each missing suite plugin, ask via AskUserQuestion (unless arg ∈ {update, all} — all auto-installs, update skips install).
AskUserQuestion (interactive only, if missing plugins exist):
Question: "Install missing brewcode plugins?" Options: "Install all missing" / "Install selected" / "Skip install"
If "Install selected" — ask per plugin with options ["Install", "Skip"].
EXECUTE (idempotent):
claude plugin marketplace add https://github.com/kochetkov-ma/claude-brewcode && echo "✅ marketplace add OK" || echo "⚠️ marketplace add warning (may already exist)"
Then per plugin:
claude plugin install <plugin>@claude-brewcode && echo "✅ install <plugin> OK" || echo "❌ install <plugin> FAILED"
Show full output of each command.
Reference: references/install-prompt.md.
AskUserQuestion (interactive only; update and all auto-pick "Update all"):
Question: "Update brewcode plugin suite?" Options: "Update all" / "Update suite only" / "Update selected" / "Skip updates"
EXECUTE full chain in order:
claude plugin marketplace update claude-brewcode && echo "✅ marketplace update OK" || echo "❌ marketplace update FAILED"
claude plugin update brewcode@claude-brewcode && echo "✅ brewcode update OK" || echo "❌ brewcode update FAILED"
claude plugin update brewdoc@claude-brewcode && echo "✅ brewdoc update OK" || echo "❌ brewdoc update FAILED"
claude plugin update brewtools@claude-brewcode && echo "✅ brewtools update OK" || echo "❌ brewtools update FAILED"
claude plugin update brewui@claude-brewcode && echo "✅ brewui update OK" || echo "❌ brewui update FAILED"
On failure: report exact error and continue. Reference: references/update-commands.md, references/update-prompt.md.
Skip for arg ∈ {check, update}. Interactive or all only.
Auto-update for third-party marketplaces is OFF by default. Toggle per-marketplace via /plugin UI → Marketplaces → claude-brewcode. Exact settings.json key unverified — see references/autoupdate-research.md.
AskUserQuestion (interactive only):
Question: "Enable auto-update for claude-brewcode marketplace?" Options: "Enable via /plugin UI" / "Skip"
Do NOT patch settings.json blindly. Instruct user to toggle via /plugin UI.
EXECUTE using Bash tool:
claude plugin prune --help >/dev/null 2>&1 && claude plugin prune || echo "skipped: claude plugin prune unavailable"
Non-fatal: if CLI lacks prune, prints skip notice and continues.
ALWAYS print the contents of references/reload-notice.md:
⚠️ Reload plugins to activate updates. Preferred: run
/reload-pluginsin this session. Fallback: typeexit, then runclaudeagain.
Final summary:
npx claudepluginhub kochetkov-ma/claude-brewcode --plugin brewtoolsManages third-party Claude Code plugin updates: force immediate updates via empty arg or view status dashboard with 'status'. Auto-runs on session start.
Updates rp1 CLI via package managers like Homebrew and refreshes plugins for tools like Claude Code and OpenCode using bash commands. Reports outcomes, handles errors, and reminds to restart IDE.
Upgrades Claude Code plugins by aligning skills, hooks, and patterns with latest capabilities and best practices. Use after updates, for modernization, or on user request.