/update
Update the swarm plugin to the latest version
$ npx -y skills add DheerG/swarms --agent claude-codeShips with swarm. Installing the plugin gets this command.
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/update
Context preview
What this command does when you run it.
Update the swarm plugin to the latest version
Command definition
update.mddescription: Update the swarm plugin to the latest version
allowed-tools: Bash(claude plugin:*), Bash(cd:*), Bash(ls:*), Bash(git rev-parse:*)
/swarm:update
Run these commands in order using the Bash tool. The order is load-bearing: `marketplace update` must run first to refresh the local marketplace clone — otherwise `plugin update` reads a stale clone and reports "already at latest" even when a newer version exists. `plugin update` does not auto-detect the install scope (it defaults to `user`), so resolve the real scope from `plugin list` before updating.
1. `claude plugin marketplace update swarms` 2. `claude plugin list --json` — read the entries whose `id` is `swarm@swarms` and resolve the install scope yourself (no extra tooling; read the JSON from the output):
- Exactly one entry → use its `scope`.
- Multiple entries → prefer the `project` entry whose `projectPath` matches the current project — in a git worktree, that is the main checkout root — the parent directory of what `git rev-parse --git-common-dir` returns (a permission prompt is acceptable) — not the worktree path; otherwise the `user` entry; otherwise whichever remains (`local`, `managed`).
- No entry → treat as a failure: use the failure handling at the end of this file.
3. `claude plugin update swarm@swarms --scope <resolved scope>` — for a project-scope install whose `projectPath` is not the current directory (e.g., running from a git worktree), run the update pinned to that path in a subshell so the session's working directory is unchanged: `(cd "<projectPath>" && claude plugin update swarm@swarms --scope project)`. If you need another way to locate the main checkout (e.g., `git rev-parse --git-common-dir`), use it even if it requires a permission approval — a prompt beats failing.
After the commands succeed, choose the message from the `plugin update` output. The reliable signal is the success token "updated from X to Y" (the command prints e.g. "updated from 0.5.3 to 0.5.4" — this also carries the version numbers to substitute):
- **If the output contains "updated from X to Y"** (a new version was installed) — use the **update-applied** message and STOP directive below. Substitute the real X and Y; do not emit the literal placeholders "vX"/"vY". Do not soften the restart instruction, and do not offer `/reload-plugins` or any in-session reload as a shortcut.
- **If the commands succeeded but the output does not contain "updated from X to Y"** (it reports you are already on the latest version) — use the **already-current** message below. No restart, no STOP, no version delta.
- **If the commands succeeded but you cannot tell whether a new version was installed** — use the **update-applied** message. A needless restart is harmless; wrongly saying "already current" after a real update reintroduces the version mix.
- If any command errored or exited non-zero — regardless of which scope was resolved — use the failure handling at the end of this file.
**Update-applied** (a new version was installed):
> Update applied to disk: swarm vX → vY. This session is still running the previous version — Claude Code loads plugin commands and skills once at startup. **Restart Claude Code before running any swarm command** — quit and relaunch the CLI or desktop app; or on the web, end this session and open a new one. Clearing the conversation (/clear) is not enough; the session has to fully restart.
Then STOP and end your turn. Do not run any other swarm command and do not hand off into a launch flow this session — the running session is pinned to the old version, so any swarm command run now reads new plugin files against old in-context instructions and mixes versions. Reading from a newer version directory does not help either: there is no in-session path to a clean new version. Do not suggest `/reload-plugins` or any in-session reload to skip the restart — it does not rebuild the command index or re-inject skills and is unavailable on desktop and web, so it reproduces this exact split-version state. If the user asks to proceed with swarm work now, restate that they must start a fresh session first.
**Already current** (no new version was installed) — tell the user, then continue normally:
> Already on the latest version: swarm v<current>. Nothing to update — carry on.
Include the version only if the CLI printed one; otherwise say "Already on the latest version. Nothing to update — carry on."
If any command errored or exited non-zero, or `swarm@swarms` was not found in the `plugin list` output, show the error output (if any), then give the user these concrete next steps:
- If working in a git worktree and the pinned update also failed, run `/swarm:update` from the main checkout, not the worktree — `claude plugin update` resolves project scope against the current directory and cannot see an install that lives at the main repo root.
- Check `claude plugin list` for the actual install scope of `swarm@swarms`.
- Try running the commands manually in a terminal.
Read more
description: Update the swarm plugin to the latest version allowed-tools: Bash(claude plugin:*), Bash(cd:*), Bash(ls:*), Bash(git rev-parse:*)
/swarm:update
Run these commands in order using the Bash tool. The order is load-bearing: `marketplace update` must run first to refresh the local marketplace clone — otherwise `plugin update` reads a stale clone and reports "already at latest" even when a newer version exists. `plugin update` does not auto-detect the install scope (it defaults to `user`), so resolve the real scope from `plugin list` before updating.
1. `claude plugin marketplace update swarms` 2. `claude plugin list --json` — read the entries whose `id` is `swarm@swarms` and resolve the install scope yourself (no extra tooling; read the JSON from the output):
- Exactly one entry → use its `scope`.
- Multiple entries → prefer the `project` entry whose `projectPath` matches the current project — in a git worktree, that is the main checkout root — the parent directory of what `git rev-parse --git-common-dir` returns (a permission prompt is acceptable) — not the worktree path; otherwise the `user` entry; otherwise whichever remains (`local`, `managed`).
- No entry → treat as a failure: use the failure handling at the end of this file.
3. `claude plugin update swarm@swarms --scope <resolved scope>` — for a project-scope install whose `projectPath` is not the current directory (e.g., running from a git worktree), run the update pinned to that path in a subshell so the session's working directory is unchanged: `(cd "<projectPath>" && claude plugin update swarm@swarms --scope project)`. If you need another way to locate the main checkout (e.g., `git rev-parse --git-common-dir`), use it even if it requires a permission approval — a prompt beats failing.
After the commands succeed, choose the message from the `plugin update` output. The reliable signal is the success token "updated from X to Y" (the command prints e.g. "updated from 0.5.3 to 0.5.4" — this also carries the version numbers to substitute):
- **If the output contains "updated from X to Y"** (a new version was installed) — use the **update-applied** message and STOP directive below. Substitute the real X and Y; do not emit the literal placeholders "vX"/"vY". Do not soften the restart instruction, and do not offer `/reload-plugins` or any in-session reload as a shortcut.
- **If the commands succeeded but the output does not contain "updated from X to Y"** (it reports you are already on the latest version) — use the **already-current** message below. No restart, no STOP, no version delta.
- **If the commands succeeded but you cannot tell whether a new version was installed** — use the **update-applied** message. A needless restart is harmless; wrongly saying "already current" after a real update reintroduces the version mix.
- If any command errored or exited non-zero — regardless of which scope was resolved — use the failure handling at the end of this file.
**Update-applied** (a new version was installed):
> Update applied to disk: swarm vX → vY. This session is still running the previous version — Claude Code loads plugin commands and skills once at startup. **Restart Claude Code before running any swarm command** — quit and relaunch the CLI or desktop app; or on the web, end this session and open a new one. Clearing the conversation (/clear) is not enough; the session has to fully restart.
Then STOP and end your turn. Do not run any other swarm command and do not hand off into a launch flow this session — the running session is pinned to the old version, so any swarm command run now reads new plugin files against old in-context instructions and mixes versions. Reading from a newer version directory does not help either: there is no in-session path to a clean new version. Do not suggest `/reload-plugins` or any in-session reload to skip the restart — it does not rebuild the command index or re-inject skills and is unavailable on desktop and web, so it reproduces this exact split-version state. If the user asks to proceed with swarm work now, restate that they must start a fresh session first.
**Already current** (no new version was installed) — tell the user, then continue normally:
> Already on the latest version: swarm v<current>. Nothing to update — carry on.
Include the version only if the CLI printed one; otherwise say "Already on the latest version. Nothing to update — carry on."
If any command errored or exited non-zero, or `swarm@swarms` was not found in the `plugin list` output, show the error output (if any), then give the user these concrete next steps:
- If working in a git worktree and the pinned update also failed, run `/swarm:update` from the main checkout, not the worktree — `claude plugin update` resolves project scope against the current directory and cannot see an install that lives at the main repo root.
- Check `claude plugin list` for the actual install scope of `swarm@swarms`.
- Try running the commands manually in a terminal.
Describe what you want. Get a reviewed, ship-ready PR — without babysitting the agent.
Other commands on swarm.
- /code
Launch a code-mode agent team
Open command - /create-workflow
Scaffold a custom workflow — generates a mode skill and shortcut command
Open command - /launch
Interactively launch an agent team with guided setup
Open command - /onboard
Walk through swarm's core concepts and launch your first team
Open command - /refine
Run recursive refinement on the current branch and PR
Open command - /triage
Launch a triage-mode agent team — diagnose an issue without changing it
Open command

