You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 699589d
Browse filesBrowse the repository at this point in the historyBrowse files
authored
feat(claude): Squad Claude Code plugin and team dashboard (#2443, #2459, #2460) (#2463)
* chore(prototype): Claude Code team dashboard from the end-to-end test
A prototype of the multi-agent dashboard used in the Squad + Claude Code
end-to-end run (BRICKBREAK). server.mjs tails `claude -p --output-format
stream-json --verbose` logs, maps each member subagent (and the background
shells it owns) to a lane, and streams the timeline over SSE. index.html
shows it as a GitHub-style Board, Roadmap ("who's working when") and
Conversation view, with light and dark themes.
Prototype only: it reads captured stream-json logs, not live sessions,
and has no tests. Saved here so the plugin work (#2443) can build on it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* test(matrix): record the Claude plugin MCP approval measurement (#2443)
Claude Code 2.1.318, clean environment: a squad_state server supplied by a
plugin connects with no approval prompt and no --mcp-config, interactively
and headless, from the repo root and a package subfolder. A project
.mcp.json server still prompts interactively (default: continue without);
headless -p now connects it without the flag. The plugin's settings.json
agent makes squad:squad the main agent with no --agent.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(claude): Claude projection v3, plugin mode (#2443)
With "claudePlugin": true in .squad/config.json (squad init --client claude
--claude-plugin, squad upgrade --[no-]claude-plugin), the Squad Claude Code
plugin carries the coordinator, skills, hooks and squad_state MCP server.
The projection then writes only per-repository files: member subagents
(with the plugin MCP prefix), the CLAUDE.md block, the .gitignore lines and
two .claude/settings.json keys: agent "squad:squad" so a plain `claude`
starts the plugin coordinator, and squad_state in disabledMcpjsonServers so
the project .mcp.json entry is not loaded twice or prompted for. It removes
the Squad-owned coordinator, skills and hook handlers and leaves .mcp.json
alone. Without plugin mode the output is unchanged apart from the version
in the generated note.
Plugin hooks take --plugin, defer when the project settings already have
Squad handlers, and treat squad:squad as the coordinator. buildClaudePlugin
and buildClaudeMarketplace in claude-plugin.ts generate the plugin.
Spec: harness adapters §5 (v3), §7.4 (plugin mode), §13 (settings keys).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(claude): Squad Claude Code plugin and marketplace (#2443)
plugins/squad/ is generated from the SDK by scripts/build-claude-plugin.mjs
(--check reports drift) and listed in .claude-plugin/marketplace.json, so
`claude plugin marketplace add github/squad` then `claude plugin install
squad@squad` installs it. It bundles the coordinator (squad:squad), the
coordinator and template skills, /squad:ralph, /squad:cast,
/squad:ceremony and /squad:status, the advisory hooks and the squad_state
MCP server, all run through a launcher that finds the project's Squad CLI,
one on PATH, or the matching npx version. bin/squad puts squad on the
Bash tool's PATH.
test/claude-plugin.test.ts rebuilds the plugin from source and requires
the committed tree to match. Checked live with --plugin-dir on Claude Code
2.1.318: the coordinator is the main agent, plugin:squad:squad_state
connects without an approval prompt, the skills and commands load, the
advisory SessionStart hook adds context and a member subagent runs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(dashboard): read Claude Code session transcripts (#2459)
Dashboard events from the session JSONL Claude Code writes for every
session, plus each subagent transcript and its meta file, following
appends (including --continue turns). stream-json logs stay as a second
source. Unknown and internal line types are skipped and only counted.
Tested against a scrubbed real session: parallel background members, a
--continue turn with a foreground member, hook events and an unknown
line type.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(dashboard): start a member once when its meta file comes first (#2459)
Claude Code can write a subagent's .meta.json before the dispatch line
reaches the main transcript. The reader now registers subagents on
discovery and starts a lane from the meta file only if no dispatch
arrived by the next poll, so each member starts exactly once.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(dashboard): local dashboard server, `squad dashboard` and /squad:dashboard (#2460)
Moves the prototype dashboard into the CLI:
- dashboard/server.ts serves the page and an SSE event stream on
127.0.0.1 only, rejects other Host headers (DNS rebinding), and sends
a CSP with no inline script; transcript text goes out as JSON data and
the page escapes it.
- dashboard-ui/ is the prototype's page split into index.html, app.css
and app.js, with the repo and roster read from /meta.
- `squad dashboard [stop | status] [--detach] [--open] [--port]
[--session] [--stream]` follows the newest Claude Code session in the
directory, reuses a running dashboard, and keeps its state under the
Squad home so /squad:dashboard (Claude's Bash has its own TMPDIR) and
a terminal find the same instance; it also checks the default ports.
- The plugin gains /squad:dashboard, allowed to run only
`squad dashboard`, and never passes the user's words to the shell.
- prototypes/claude-dashboard is removed.
No runtime dependencies beyond Node.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs(claude): install the Squad plugin and use the dashboard (#2443, #2460)
New features/claude-code-plugin page: marketplace install, init with
--claude-plugin, what the plugin provides, and the team dashboard
(/squad:dashboard and `squad dashboard`). README, the CLI reference,
the multi-client scenario and the spec point to it; changesets for the
plugin and the dashboard.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(claude): keep the help budget and the retired-term gate green (#2443, #2460)
- The plugin coordinator said "a global Squad CLI", which the
retired-symbol gate reads as the retired global squad; it now says
"a globally installed Squad CLI".
- `--claude-plugin` joins the `--client` help lines and `dashboard`
takes one line; the help budget grows by one for the new command.
- command-help's documented-subcommand list includes `dashboard`.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs(changelog): Claude Code as a first-class host (#2438)
Unreleased notes for the whole Claude Code track: the Squad plugin and
plugin mode, `squad dashboard` and /squad:dashboard, member subagents,
native skills and the slimmer coordinator, advisory hooks, the watch
runner, and the first real execution harnesses, with their PRs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs(changelog): plan the Claude Code notes as the preview.5 headline (#2438)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(ci): spell-check word and CodeQL test-code alerts (#2463)
Add Mcpjson (disabledMcpjsonServers) to cspell, escape the session id
before building a regex in the fixture scrubber, and make the page test's
inline-script check case-insensitive.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(claude): ship the plugin's bin/ launchers (#2443)
The repository-wide bin/ ignore (for .NET output) kept plugins/squad/bin/squad
and squad.cmd out of git, so a marketplace install, which clones the repo,
had no squad command. Un-ignore the plugin's bin/, commit both launchers
(squad as 100755), and fail both the plugin test and build --check when a
generated file is untracked or ignored.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(claude): commands call the plugin launcher; launcher skips an older CLI (#2443)
Commands use "${CLAUDE_PLUGIN_ROOT}/bin/squad" so they always go through the
launcher's version check instead of picking up an older global CLI that Claude
Code put earlier on PATH. The launcher now also reads BUNDLE-INFO.json and the
nested app/node_modules package.json, so Homebrew cask bundles are detected and
skipped when they are older than the plugin.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* test(claude): keep the retired-term gate green in launcher test names (#2443)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(claude): address plugin and dashboard Copilot review feedback
Preserve plugin settings and prior MCP ownership; support direct init and watch callers; avoid shell reparsing and launcher recursion; skip disabled hooks; preserve transcript bytes, reset reconnects and reap unused dashboards.
Part of #2443, #2459, #2460. Addresses review feedback on #2463.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c8c234f1-ee3b-49e1-9406-11d4a2238c23
* fix(dashboard): start over when a transcript is rewritten shorter (#2459)
JsonlTail restarted at byte zero after a truncation, but the transcript source kept its member
runs, so a run that had ended never ended again and the page showed a finished member as in
progress. Now any rewind (main or member transcript) drops the source's state and replays every
file from the start, and the server clears its history and tells the page to start over.
Addresses review feedback on #2463.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(dashboard): one dashboard per directory, even when started twice at once (#2460)
Checking for a running dashboard and starting one were separate steps, so two concurrent
`squad dashboard` starts both served, and `stop` found only one. A lock file beside the state
file, created exclusively, now makes check-and-start one step: a second start waits, then reports
the running dashboard; a lock left by a dead process is taken over. A detached start accepts the
dashboard that won the race.
Addresses review feedback on #2463.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(claude): dashboard runs only its three commands; Ralph's scope is fenced as data (#2443)
/squad:dashboard's allowed-tools now lists the three exact invocations (stop, status,
--detach --open) instead of `dashboard:*`, and its prompt takes only the first argument word,
which selects one of them. /squad:ralph keeps its free-text scope but passes it between markers,
as data that can only narrow the work or set a stop condition.
Checked live (claude-haiku-5-5): start and status run with no prompt; an argument asking for
another command was denied by the permission rules.
Addresses review feedback on #2463.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs(skills): gh-auth-isolation pushes without a token in the URL
The skill showed pushing to a personal repo with the token in the git URL (and once in the
remote), which leaks it to shell history, process listings, tool logs and .git/config. The
examples now pass the token through GH_TOKEN to gh's credential helper for the one command.
Updated in the canonical .squad-templates copy, its mirrors and the Claude plugin.
Addresses review feedback on #2463.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(claude): the launcher's npx fallback is opt-in (SQUAD_ALLOW_NPX=1) (#2443)
With no suitable Squad CLI, the plugin launcher ran `npx -y @bradygaster/squad-cli@<version>`,
so a slash command or hook could download and run code without the user asking. It now fails
with install instructions unless SQUAD_ALLOW_NPX=1 is set (in the shell or Claude Code's
settings env). The coordinator text, plugin README, docs, changelog and changeset say so.
Addresses review feedback on #2463.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(claude): /squad:cast and /squad:ceremony pass their arguments as fenced data (#2443)
The cast request and ceremony name now sit between markers, as data the coordinator takes only
names, roles, a project description or a ceremony name from, never instructions. Neither command
pre-approves any tool, so every Bash call still goes through the user's permission settings; a
test keeps $ARGUMENTS fenced in every command and allowed-tools on the dashboard only.
Addresses review feedback on #2463.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(claude): /squad:ralph takes only fixed argument words (#2443)
The command no longer puts $ARGUMENTS in its prompt. It reads $0 and $1
and matches each exactly against go, status, idle, issues, prs and
skip-ci; any other word is ignored and reported.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c8c234f1-ee3b-49e1-9406-11d4a2238c23
Squad ships as a Claude Code plugin (`claude plugin marketplace add github/squad`, then `claude plugin install squad@squad`). The plugin carries the coordinator, the `squad_state` MCP server (no `.mcp.json` approval or `--mcp-config`), skills, advisory hooks and the `/squad:ralph`, `/squad:cast`, `/squad:ceremony`, `/squad:status` and `/squad:dashboard` commands. `squad init --client claude --claude-plugin` (or `upgrade`) records `claudePlugin` in `.squad/config.json` and then writes only the member subagents, the `CLAUDE.md` block and the `agent` and `disabledMcpjsonServers` settings.
7
+
8
+
Preserve user settings and former project MCP ownership across plugin-mode transitions, support plugin-mode watch sessions and direct init callers, skip disabled plugin hooks before CLI startup, and safely forward launcher and mesh-sync arguments. Dashboard tails preserve split UTF-8 characters, reconnects reset replayed state, and unused servers shut down after five minutes. The launcher's `npx` fallback is opt-in (`SQUAD_ALLOW_NPX=1`); without it, a missing CLI fails with install instructions. Starting a dashboard is serialized per directory, and a transcript rewritten shorter starts the page over.
New `squad dashboard` (and `/squad:dashboard` in the Claude Code plugin): a live local page of the coordinator and each member at work, read from the Claude Code session transcripts for the directory (or `--stream` stream-json logs). It listens on 127.0.0.1 only, rejects other Host headers, sends a CSP with no inline script, and runs one instance per directory (`stop`, `status`, `--detach`, `--open`, `--session`, `--port`). No dependencies beyond Node.js.
"description": "The Squad plugin for Claude Code."
9
+
},
10
+
"plugins": [
11
+
{
12
+
"name": "squad",
13
+
"source": "./plugins/squad",
14
+
"description": "Squad for Claude Code: a coordinator that routes work to a team of specialist subagents, with shared team state in the squad_state MCP server.",
**Why this works:**`gh auth token --user` reads from `gh`'s credential store without switching the active account. The token is used inline for a single operation and never persisted.
60
+
**Why this works:**`gh auth token --user` reads from `gh`'s credential store without switching the active account. The token lives only in that one command's environment: `credential.helper=` clears the stored (EMU) helper for this command, and `gh auth git-credential` answers git's credential request with `GH_TOKEN`. Never put a token in a git URL: it shows up in shell history, process listings, tool logs and `.git/config`.
61
61
62
62
### Create PRs on Personal Forks
63
63
@@ -128,12 +128,9 @@ alias ghe='gh'
128
128
# Agent needs to push to personaluser.github.io (personal repo)
Copy file name to clipboardExpand all lines: CHANGELOG.md
+56Lines changed: 56 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,62 @@ All notable changes to this project will be documented in this file.
10
10
-`squad upgrade --self --dry-run` reports the planned upgrade without installing it. `squad upgrade --state-backend orphan --dry-run` also avoids backend migration, source deletion, config changes and hook installation (#2303, #2295). Available in `v2.0.0-preview.2` and later previews, not stable `v1.1.0`.
11
11
-`squad memory` and `memory.*` share the backend-aware governed store (#2317, #2316), so CLI writes and MCP searches use the same storage. Available in `v2.0.0-preview.3` and later previews, not stable `v1.1.0`. Transactional existing-memory backend migration (#2425, #2439) is available in `v2.0.0-preview.4`.
12
12
13
+
### Claude Code as a first-class host (#2438)
14
+
15
+
Planned as the headline of `v2.0.0-preview.5`.
16
+
17
+
Claude Code is the first host after GitHub Copilot where Squad uses the host's own features (subagents, hooks, skills, plugins and the Claude Agent SDK) instead of the shared minimum. Every addition goes through the host projection contract in `squad-client-harness-adapters/v0.2` (§4–§5, §13) and the charter extension rules, and the same `.squad/` team still drives Copilot and the other hosts unchanged. It also ships the SDK's first real `HarnessAdapter`, which makes Claude the non-Copilot host that the two v0.2 profiles (harness-adapters §15.1, backend-decoupling §14.4) need before they can be promoted. Promoting them is still pending.
18
+
19
+
#### Added
20
+
21
+
-**Squad plugin for Claude Code** (#2443, #2463). Install it with `claude plugin marketplace add github/squad`, then `claude plugin install squad@squad --scope project`. The plugin is generated from the SDK (`plugins/squad/`, by `scripts/build-claude-plugin.mjs`, with a `--check` gate in tests) and published through `.claude-plugin/marketplace.json`. It carries:
22
+
- the coordinator, as the `squad:squad` agent
23
+
- the `squad_state` MCP server. It needs no `.mcp.json` approval and no `--mcp-config`, including in headless `claude -p` runs; a recorded measurement in the host feature matrix backs this.
24
+
- the coordinator's on-demand skills and Squad's template skills, as `/squad:<skill>`
25
+
- the slash commands `/squad:ralph`, `/squad:cast`, `/squad:ceremony`, `/squad:status` and `/squad:dashboard`
26
+
- the advisory governance hooks
27
+
- a launcher that the slash commands, hooks and MCP server call by path, also on the Bash tool's PATH as `squad`. It runs, in order, `SQUAD_CLI`, the project's `@bradygaster/squad-cli` or a `squad` on PATH, and skips a project or PATH install older than the plugin. With none, it fails with install instructions. It runs the plugin's pinned version through `npx` only when `SQUAD_ALLOW_NPX=1` is set, because that downloads and runs code.
28
+
-**Plugin mode for the Claude projection** (#2443, #2463). `squad init --client claude --claude-plugin` (or `squad upgrade --claude-plugin`) records `"claudePlugin": true` in `.squad/config.json`. Squad then writes only the per-repository files: the member subagents, the `CLAUDE.md` block, and two keys in `.claude/settings.json`:
29
+
-`agent`, so a plain `claude` starts the coordinator
30
+
-`disabledMcpjsonServers`, so the project's `.mcp.json` copy of `squad_state` neither prompts nor duplicates the plugin's tools
31
+
32
+
`--no-claude-plugin` switches back to the full projection. The Claude projection is now version 3 (`CLAUDE_PROJECTION_VERSION`).
33
+
-**`squad dashboard` and `/squad:dashboard`** (#2459, #2460, #2463). A live local page shows the coordinator and every member at work: who was dispatched and why, which members run in the background and in parallel, each member's tool calls, summaries and results, hook events, and each prompt of a `--continue` session.
34
+
-**What it reads.** The Claude Code session transcripts for the current directory, including each member's own subagent transcript. It reads them incrementally, follows the newest session and moves to a new one when it starts. `--session <id>` pins one, and `--stream <file>` reads `claude -p --output-format stream-json` logs instead. Unknown transcript line types are skipped and their content is never shown.
35
+
-**Local only.** It listens on `127.0.0.1` only (from port 4280; `--port` picks one) and rejects any other `Host` header, which protects against DNS rebinding. It sends a Content Security Policy that allows no inline script and no other origin, and transcript text is always rendered as text, never markup.
36
+
-**One per directory.**`stop`, `status`, `--detach`, `--open` and `--json` manage it, and running it again shows the instance already running. Its state lives in `~/.squad/dashboards/` (or under `SQUAD_HOME`), so `/squad:dashboard` inside Claude Code and `squad dashboard` in a terminal find the same instance.
37
+
-**Safe from the plugin.**`/squad:dashboard` may run only `squad dashboard`, and never passes your words to the shell.
38
+
-**No new dependencies.** It needs only Node.js. It replaces the prototype that was used during the end-to-end test.
39
+
-**Member subagents** (#2450). Each team member, built-ins included, is projected from its charter as its own subagent in `.claude/agents/<member>.md`.
40
+
- Model, reasoning effort and the new `X-squad-host-claude` charter extension (`Tools`, `Isolation`) map onto the subagent's frontmatter.
41
+
- The coordinator routes to named members and selects a model per spawn through Claude Code's `Agent` tool, using `run_in_background` and `isolation: "worktree"`.
42
+
-`squad cast` refreshes member files, and the files of removed members are deleted.
43
+
- A user-authored file at a member path is never overwritten; it is reported as `skipped`.
44
+
-**Native skills and a smaller coordinator** (#2450). Squad's template skills are projected into `.claude/skills/`, except where a team skill of the same name exists. Init Mode, Ralph mode, ceremonies, GitHub Issues mode and PRD mode now load on demand from generated `squad-coordinator-*` skills instead of sitting in the always-loaded prompt.
45
+
-**Advisory governance hooks** (#2450). They're opt-in, with `"claudeHooks": "advisory"`. They:
46
+
- give the coordinator session context
47
+
- warn a locked-out member who edits work under review
48
+
- add a handoff summary after each member finishes
49
+
- remind the coordinator to run Scribe
50
+
51
+
They never block a tool call. New commands: `squad lockout` records reviewer lockouts in `.squad/governance/lockouts.json`, and `squad hook claude <Event>` runs the hooks.
52
+
-**Claude Code runner for `squad watch --execute`** (#2450). `--agent-preset claude` (or `watch.agentPreset: "claude"`) runs each round as `claude -p … --agent squad --output-format stream-json`.
53
+
- It uses a private, `squad_state`-only MCP config, never the repository's `.mcp.json`.
54
+
- It checks for the coordinator and the `claude` CLI before starting, and treats an error result as a failed round.
55
+
-`watch.claudeFlags` is limited to model, permission-mode, effort and turn-limit flags.
56
+
-**First real execution harnesses** (#2441, #2451), experimental, in `@bradygaster/squad-sdk/backend`:
57
+
-`ClaudeAgentSdkHarness` runs conversation turns on the Claude Agent SDK. Broker approvals go through `canUseTool`: each is bound to a hash, they arrive one at a time, and a deny ends the turn. `@anthropic-ai/claude-agent-sdk` is an optional peer dependency.
58
+
-`CopilotSdkHarness` does the same on `@github/copilot-sdk`.
59
+
- Both share an approval queue and a turn lifecycle, and their state survives restarts. Approval records hold a redacted summary, never the tool input.
60
+
-`squad state-mcp --experimental-backend` registers the Claude harness only when its SDK is installed. `SQUAD_BACKEND_HARNESSES` selects the harnesses or turns them off.
61
+
- New docs: [Squad for Claude Code (plugin)](docs/src/content/docs/features/claude-code-plugin.md). The README, CLI reference, multi-client scenario and adapter spec link to it.
62
+
63
+
#### Changed
64
+
65
+
- The Claude coordinator names Claude Code's `Agent` subagent tool (formerly `Task`). The Claude Code spec, docs and host feature matrix now match the code, and host-projection regression guards keep them that way (#2440, #2445).
66
+
- Every generated Claude Markdown file states its projection version. Files from earlier projections are still recognised as Squad's and upgraded in place, and rolling back the `CLAUDE.md`, `AGENTS.md` and `GEMINI.md` blocks restores the original bytes exactly (#2450).
67
+
- Copilot output, `.github/agents/squad.agent.md` and the projections for other hosts are unchanged.
68
+
13
69
## [2.0.0-preview.4] - 2026-11-09
14
70
15
71
Fourth Squad 2.0 preview. This release completes the repository migration to `github/squad` across published npm and NuGet package metadata, runtime links, templates, documentation, and `gh-aw` workflow package identity, adds transactional governed-memory backend migration with source-branch casting ownership, and includes memory lock coordination and Copilot SDK runtime compatibility fixes. npm continues to use `insider` as the canonical dist-tag with `preview` as a compatibility alias; `latest` remains on 1.1.0.
squad upgrade --client codex # add a host later; refreshes every configured host
135
135
```
136
136
137
-
Each host gets a native coordinator file plus MCP wiring; your own settings in `.mcp.json`, `opencode.json` and the like are never clobbered. See [Using Squad across clients](docs/src/content/docs/scenarios/using-squad-across-clients.md), [Squad 2.0 architecture](docs/src/content/docs/concepts/squad-2-0-architecture.md), and the [multi-client quickstart](docs/tutorials/multi-client-quickstart.md).
137
+
Each host gets a native coordinator file plus MCP wiring; your own settings in `.mcp.json`, `opencode.json` and the like are never clobbered.
138
+
139
+
In Claude Code, Squad also installs as a plugin that carries the coordinator, `squad_state`, skills, hooks and slash commands, including `/squad:dashboard`, a live local page of the team at work (also `squad dashboard`):
140
+
141
+
```bash
142
+
claude plugin marketplace add github/squad
143
+
claude plugin install squad@squad --scope project
144
+
squad init --client claude --claude-plugin
145
+
```
146
+
147
+
See [Squad for Claude Code (plugin)](docs/src/content/docs/features/claude-code-plugin.md). See [Using Squad across clients](docs/src/content/docs/scenarios/using-squad-across-clients.md), [Squad 2.0 architecture](docs/src/content/docs/concepts/squad-2-0-architecture.md), and the [multi-client quickstart](docs/tutorials/multi-client-quickstart.md).
138
148
139
149
---
140
150
@@ -193,6 +203,7 @@ Say **"squad commands"** in chat to see a categorized menu of common operations
|`squad nap`| Context hygiene — compress, prune, archive; use `--deep` for aggressive compression, `--dry-run` to preview changes |
195
205
|`squad aspire`| Open Aspire dashboard for observability |
206
+
|`squad dashboard`| Live local page of the team's Claude Code sessions on 127.0.0.1; `stop`, `status`, `--detach`, `--open`, `--session <id>`, `--stream <file>`|
196
207
|`squad scrub-emails [directory]`| Remove email addresses from Squad state files (default: `.squad/`) |
0 commit comments