The Squad CLI is installed globally via npm and provides a full suite of commands for team lifecycle management, automated issue triage, state management, and observability. Every Squad workflow — from scaffolding your first team to running overnight automation with Ralph — flows through this interface.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/bradygaster/squad/llms.txt
Use this file to discover all available pages before exploring further.
Installation
node:sqlite module (used by the Copilot SDK for session storage) was introduced in Node 22.5.0. Squad will exit immediately with a clear error message if you run it on an older version.squad help to verify the CLI is working and see the full command list.
Command Summary
| Command | What it does |
|---|---|
squad init | Scaffold Squad in the current directory (idempotent) |
squad upgrade | Update Squad-owned files to the latest version |
squad status | Show which squad is active and why |
squad triage / watch | Watch mode — poll for issues and auto-triage (Ralph) |
squad loop | Prompt-driven continuous work loop (no issues required) |
squad copilot | Add or remove the Copilot coding agent |
squad doctor | Check setup and diagnose issues |
squad link <path> | Connect to a remote team |
squad externalize | Move .squad/ state outside the working tree |
squad internalize | Move externalized state back into .squad/ |
squad export | Export squad to a portable JSON snapshot |
squad import <file> | Import squad from an export file |
squad plugin marketplace | Manage plugin marketplaces |
squad upstream | Manage upstream Squad sources |
squad nap | Context hygiene — compress, prune, archive |
squad aspire | Open Aspire dashboard for observability |
squad scrub-emails | Remove email addresses from Squad state files |
squad build | Generate .squad/ markdown from squad.config.ts |
Commands
squad init — Scaffold Squad in your project
squad init — Scaffold Squad in your project
hire runs the same command.| Flag | Description |
|---|---|
--preset <name> | Apply a preset after init (e.g. --preset default for a fully-configured squad) |
--global | Initialize in your personal squad directory (~/.config/squad/) instead of the current project |
--mode remote <path> | Dual-root mode — write a remote config pointing to an external team root |
--no-workflows | Skip GitHub Actions workflow setup |
--sdk | Use SDK builder syntax instead of markdown |
--state-backend <type> | Choose a state backend: local, orphan, or two-layer |
squad init you will find:squad upgrade — Update Squad-owned files
squad upgrade — Update Squad-owned files
squad.agent.md, templates, GitHub workflows) to the latest versions. Your team state in .squad/ is never touched — agents, decisions, and history are always preserved.| Flag | Description |
|---|---|
--self | Update the Squad CLI package itself (runs npm install -g) |
--force | Re-apply updates even when the installed version already matches the latest |
--global | Upgrade the personal squad at ~/.config/squad/ |
--migrate-directory | Rename .ai-team/ to .squad/ (for teams migrating from the older directory name) |
--insider | Use the dev-channel prerelease build (only valid with --self) |
--state-backend <type> | Migrate to a new state backend as part of the upgrade |
squad status — Show active squad
squad status — Show active squad
- Whether the active squad is a repo squad (
.squad/found in the repository tree), a personal squad (global path), or none - The resolved path for the active squad
- The resolution reason
- Both the repo resolution path and the global path for comparison
~/.config/squad/ to determine context.squad triage / watch — Watch mode (Ralph)
squad triage / watch — Watch mode (Ralph)
--execute — dispatches Copilot sessions to work on actionable issues automatically.The commands triage and watch are aliases for the same watch runner. loop is a separate prompt-driven continuous work loop that does not require GitHub Issues — see the loop entry below.| Flag | Description |
|---|---|
--execute | Spawn Copilot agents to work on actionable issues |
--interval <minutes> | Poll every N minutes (default: 10) |
--agent-cmd | Custom agent command (default: gh copilot) |
--copilot-flags | Extra flags passed to the agent runner |
--auth-user | GitHub account to use for agent auth |
--log-file <path> | Mirror output to a file for later review |
--verbose | Show extra diagnostic output |
--health | Show status of a running watch process and exit |
--max-concurrent <n> | Maximum number of issues being worked in parallel (default: 1) |
--timeout <minutes> | Maximum minutes to spend on a single issue (default: 30) |
--dispatch-mode | Execution strategy: task, fleet, or hybrid |
--state-backend | Persistence strategy: local, orphan, or two-layer |
--overnight-start HH:MM | Pause watch during off-hours |
--overnight-end HH:MM | Resume watch at this time |
--notify-level | Output verbosity: all, important, or none |
squad copilot — Add/remove the Copilot agent
squad copilot — Add/remove the Copilot agent
@copilot) from your squad’s team configuration.| Flag | Description |
|---|---|
--off | Remove the Copilot agent from the team |
--auto-assign | Enable auto-assignment of issues to the Copilot agent |
squad doctor / heartbeat — Diagnose setup
squad doctor / heartbeat — Diagnose setup
heartbeat runs the same command.squad doctor checks:- That
.squad/is present and well-formed - That required files (
team.md,routing.md, etc.) exist - That GitHub authentication is accessible
- That the CLI version is compatible
squad link — Connect to a remote team
squad link — Connect to a remote team
.squad/config.json pointing to the external team root. The shorthand squad init-remote <path> is equivalent.squad externalize — Move state outside the working tree
squad externalize — Move state outside the working tree
.squad/ state outside the working tree so it survives branch switches. This is useful on projects where you frequently switch branches and don’t want to lose squad state.| Flag | Description |
|---|---|
--key <name> | Custom project key for the externalized state directory |
squad internalize to move the state back into .squad/ in the working tree.squad internalize — Move state back into the tree
squad internalize — Move state back into the tree
.squad/ in the working tree. This is the reverse of squad externalize.squad export — Export to a JSON snapshot
squad export — Export to a JSON snapshot
squad-export.json. Use --out <path> to specify a custom output path.squad import — Import from a snapshot
squad import — Import from a snapshot
| Flag | Description |
|---|---|
--force | Overwrite existing squad state |
squad plugin marketplace — Manage plugin marketplaces
squad plugin marketplace — Manage plugin marketplaces
| Subcommand | Description |
|---|---|
add <url> | Register a new marketplace |
remove <name> | Remove a registered marketplace |
list | List all registered marketplaces |
browse | Browse available plugins interactively |
squad upstream — Manage upstream sources
squad upstream — Manage upstream sources
| Subcommand | Description |
|---|---|
add <source> | Add an upstream source (supports --name and --ref flags) |
remove <name> | Remove an upstream source |
list | List registered upstream sources |
sync [name] | Sync from upstream(s) |
squad nap — Context hygiene
squad nap — Context hygiene
| Flag | Description |
|---|---|
--deep | Thorough compression and archival (more aggressive than default) |
--dry-run | Preview all changes without writing anything |
squad aspire — Observability dashboard
squad aspire — Observability dashboard
| Flag | Description |
|---|---|
--docker | Force the Docker-based dashboard (instead of standalone) |
--port <n> | Custom port for the dashboard (default varies by backend) |
squad scrub-emails — Remove email addresses
squad scrub-emails — Remove email addresses
.squad/ to a public repository or sharing an export snapshot..squad/. Pass a path to target a different directory.Examplessquad build — Generate markdown from squad.config.ts
squad build — Generate markdown from squad.config.ts
squad.config.ts file (SDK-first mode) into .squad/ markdown files. This is the entry point for teams who prefer to define their squad in TypeScript.| Flag | Description |
|---|---|
--check | Validate the config without writing any files |
--dry-run | Preview generated output without writing |
--watch | Rebuild automatically when squad.config.ts changes |
squad.config.ts reference.Interactive Shell (Deprecated)
Runningsquad without any arguments still launches the interactive shell for backward compatibility. Inside the shell you get a squad > prompt and can talk to your team in natural language.
Shell commands
All shell commands start with/:
| Command | What it does |
|---|---|
/status | Check your team and what’s happening |
/history | See recent messages |
/agents | List all team members |
/sessions | List saved sessions |
/resume <id> | Restore a past session |
/version | Show version |
/clear | Clear the screen |
/help | Show all commands |
/quit | Exit the shell (or Ctrl+C) |
@AgentName or natural language — the coordinator routes your message to the right specialist automatically.