Squad — Product Guide
What Is Squad?
Squad gives you an AI development team through GitHub Copilot. You describe what you’re building. Squad proposes a team of specialists — lead, frontend, backend, tester — that live in your repo as files. Each agent runs in its own context window, reads its own knowledge, and writes back what it learned. They persist across sessions, share decisions, and get better the more you use them.
It is not a chatbot wearing hats. Each team member is spawned as a real sub-agent with its own tools, its own memory, and its own area of expertise.
Supported Platforms
Squad is designed for GitHub Copilot CLI and ships with full support. VS Code is now fully supported with zero code changes — agents work identically on both platforms.
Current state:
- ✅ GitHub Copilot CLI — fully supported. This is the primary platform. Uses the stable
tasktool for sub-agent spawning, per-spawn model selection, and background mode. - ✅ VS Code Copilot — fully supported (v0.4.0+). VS Code uses
runSubagentfor parallel execution and supports full.ai-team/read/write. See Client Compatibility Matrix for details. - ❌ Other platforms — JetBrains IDEs and other runtimes are untested. GitHub.com web-based Copilot is untested.
For a detailed feature comparison across platforms (model selection, background execution, file access, etc.), see Client Compatibility Matrix.
Installation
npx github:bradygaster/squad
Requirements:
- Node.js 22+
- GitHub Copilot (CLI, VS Code, Visual Studio, or Coding Agent)
- A git repository (Squad stores team state in
.ai-team/) ghCLI — required for GitHub Issues, PRs, Ralph, and Project Boards (install)
This copies squad.agent.md into .github/agents/, installs 10 GitHub Actions workflows into .github/workflows/, and adds templates to .ai-team-templates/. Your actual team (.ai-team/) is created at runtime when you first talk to Squad.
Note: When you select Squad from the agent picker, you’ll see the version number in the name (e.g., “Squad (v0.3.0)”). This helps you confirm which version is installed.
GitHub CLI Authentication
Squad uses the gh CLI for all GitHub API operations — issues, PRs, labels, project boards, and Ralph’s work monitoring. You must authenticate before using any of these features.
Quick start:
gh auth login
Choose GitHub.com, HTTPS, and authenticate with your browser or a Personal Access Token (PAT Classic).
Verify it worked:
gh auth status
Additional scopes — some features require scopes beyond the default:
| Feature | Required Scope | Command |
|---|---|---|
| Issues, PRs, Ralph | repo (included by default) |
— |
| Project Boards | project |
gh auth refresh -s project |
The gh auth refresh command adds scopes to your existing token — it takes about 10 seconds and you only need to do it once.
Troubleshooting:
- “gh: command not found” — Install the GitHub CLI from https://cli.github.com/
- “HTTP 401” or “authentication required” — Run
gh auth loginto re-authenticate - Project board commands fail — Run
gh auth refresh -s projectto add theprojectscope - “Resource not accessible by integration” — Your token may lack the
reposcope. Re-authenticate with a PAT Classic that hasrepoandprojectscopes
How Teams Form (Init Mode)
When you open Copilot and select Squad for the first time in a repo, there’s no team yet. Squad enters Init Mode:
- Squad identifies you via
git config user.nameand uses your name in conversation. - You describe your project — language, stack, what it does.
- Squad casts a team — agents get names from a single fictional universe (e.g., The Usual Suspects, Alien, Ocean’s Eleven). The universe is selected deterministically based on team size, project shape, and what’s been used before. Names are persistent identifiers — they don’t change the agent’s behavior or voice.
- Squad proposes the team:
🏗️ Ripley — Lead Scope, decisions, code review
⚛️ Dallas — Frontend Dev React, UI, components
🔧 Kane — Backend Dev APIs, database, services
🧪 Lambert — Tester Tests, quality, edge cases
📋 Scribe — (silent) Memory, decisions, session logs
- You confirm — say “yes”, adjust roles, add someone, or just give a task (which counts as implicit yes).
Squad then creates the .ai-team/ directory structure with charters, histories, routing rules, casting state, and ceremony config. Each agent’s history.md is seeded with your project description and tech stack so they have day-1 context.
What gets created
.ai-team/
├── team.md # Roster — who's on the team
├── routing.md # Who handles what
├── ceremonies.md # Team meeting definitions
├── decisions.md # Shared brain — team decisions
├── decisions/inbox/ # Drop-box for parallel decision writes
├── casting/
│ ├── policy.json # Universe allowlist and capacity
│ ├── registry.json # Persistent agent name registry
│ └── history.json # Universe usage history
├── agents/
│ ├── {name}/
│ │ ├── charter.md # Identity, expertise, boundaries
│ │ └── history.md # What they know about YOUR project
│ └── scribe/
│ └── charter.md # Silent memory manager
├── skills/ # Shared skill files (SKILL.md)
├── orchestration-log/ # Per-spawn log entries
└── log/ # Session history
Commit this folder. Anyone who clones your repo gets the team — with all their accumulated knowledge.
Talking to Your Team (Routing)
How you phrase your message determines who works on it.
Name an agent directly
> Ripley, fix the error handling in the API
Squad spawns Ripley specifically.
Say “team” for parallel fan-out
> Team, build the login page
Squad spawns multiple agents simultaneously — frontend builds the UI, backend sets up endpoints, tester writes test cases from the spec, all at once.
General requests
> Add input validation to the form
Squad checks routing.md, picks the best match, and may launch anticipatory agents (e.g., tester writes validation test cases while the implementer builds).
Quick questions — no spawn
> What port does the server run on?
Squad answers directly without spawning an agent.
Example prompts to try
| You say | What happens |
|---|---|
"Dallas, set up the project structure" |
Dallas (Frontend) scaffolds the project |
"Team, build the user dashboard" |
Multiple agents launch in parallel |
"Where are we?" |
Squad gives a quick status from recent logs |
"Run a retro" |
Lead facilitates a retrospective ceremony |
"I need a DevOps person" |
A new agent joins, named from the same universe |
"Always use single quotes in TypeScript" |
Captured as a directive to decisions.md |
Response Modes
Not every request needs the full agent machinery. Squad uses tiered response modes to balance speed and depth:
| Mode | Approximate Time | What Happens | When Used |
|---|---|---|---|
| Direct | ~2–3s | Coordinator answers from memory/context — no agent spawned | Quick factual questions, status checks |
| Lightweight | ~8–12s | Agent spawned with reduced overhead (no charter/history/decisions reads) | Simple tasks with known inputs |
| Standard | ~25–35s | Full agent spawn with charter, history, and decisions | Most work requests |
| Full | ~40–60s | Multi-agent parallel spawn with design review ceremony | Complex multi-domain tasks |
The coordinator selects the mode automatically. You don’t need to specify it. More complex tasks naturally take longer because more agents are working in parallel and reading more context.
Memory System
Squad’s memory is layered. Knowledge grows with use.
Personal memory: history.md
Each agent has its own history.md in .ai-team/agents/{name}/. After every session, agents append what they learned — architecture decisions, conventions, user preferences, key file paths. This file is read only by that agent.
After a few sessions, agents stop asking questions they’ve already answered.
Shared memory: decisions.md
Team-wide decisions live in .ai-team/decisions.md. Every agent reads this before working. Decisions are captured in three ways:
- From agent work — agents write decisions to
.ai-team/decisions/inbox/{name}-{slug}.md - From user directives — when you say “always use…” or “never do…”
- Scribe merges — the Scribe agent consolidates inbox entries into the canonical file, deduplicates, and propagates updates to affected agents
Skills: .ai-team/skills/
Skill files (SKILL.md) encode reusable knowledge. They come in two varieties:
- Starter skills — bundled at init (e.g., squad conventions)
- Earned skills — written by agents from real work, with a confidence lifecycle:
low → medium → high
Agents read relevant skill files before working on a task.
How memory compounds
| Stage | What agents know |
|---|---|
| 🌱 First session | Project description, tech stack, user name |
| 🌿 After a few sessions | Conventions, component patterns, API design, test strategies |
| 🌳 Mature project | Full architecture, tech debt map, regression patterns, performance conventions |
Export and Import
Export your squad
npx github:bradygaster/squad export
Creates squad-export.json — a portable snapshot of your entire team: agents, casting state, skills, and accumulated knowledge.
Use this to:
- Back up your team before major changes
- Share a trained team with a colleague
- Move a team to a different repo
Import a squad
npx github:bradygaster/squad import squad-export.json
Imports the snapshot into the current repo. Squad handles collision detection — if agents with the same names already exist, it warns you.
Use --force to archive existing agents and replace them:
npx github:bradygaster/squad import squad-export.json --force
During import, agent histories are split into portable knowledge (general learnings that transfer) and project-specific learnings (which stay context-tagged). This means imported agents bring their skills without assuming your project works the same way.
GitHub Issues Mode
Squad integrates with GitHub Issues via the gh CLI for issue-driven development.
Connect to a repository
> Connect to myorg/myrepo
Squad stores the issue source and makes the repository’s issues available to the team.
View the backlog
> Show the backlog
Squad displays open issues in a table format.
Assign an issue to an agent
> Work on #12
The appropriate agent picks up the issue. What happens next:
- Agent creates a branch with a descriptive name based on the issue
- Agent does the implementation work
- Agent opens a PR linked to the issue
Handle PR review feedback
> There's review feedback on PR #3
The relevant agent reads the review comments and addresses them.
Merge completed work
> Merge it
The PR is merged and the linked issue is closed.
Check remaining work
> What's left?
Squad refreshes the backlog and shows remaining open issues.
PRD Mode
If you have a product requirements document, paste the spec directly:
> Here's what we're building:
>
> [paste your PRD or spec here]
The Lead agent decomposes the spec into discrete work items. These become trackable tasks that Squad distributes across the team. Each work item gets assigned to the agent best suited for it, and the team works them in parallel where possible.
Human Team Members
Not every team member needs to be an AI agent. You can add human team members to the roster:
> Add Sarah as a human team member — she handles design reviews
Human team members appear in the roster with a distinct badge. When work is routed to a human:
- Squad pauses and tells you a human needs to act
- Stale reminders trigger if the human hasn’t responded after a configurable period
- Humans can serve as reviewers in the reviewer protocol
This is useful for teams where certain decisions (design sign-off, security review, product approval) require a real person.
Notifications
Your squad can notify you when they need input — send instant pings to Teams, Discord, iMessage, or any webhook. Agents trigger notifications when they’re blocked, need a decision, hit an error, or complete important work.
Setup is quick: Configure an MCP notification server (takes 5 minutes), and agents automatically know when to ping you.
See Notifications Guide for platform-specific setup and examples. For MCP configuration details, see MCP Setup Guide.
Ceremonies
Ceremonies are structured team meetings. Squad ships with two default ceremonies:
Design Review (automatic)
Triggers before multi-agent tasks involving 2+ agents modifying shared systems. The Lead facilitates, spawning each relevant agent to get their perspective on interfaces, risks, and contracts before work begins.
> Team, rebuild the authentication system
📋 Design Review completed — facilitated by Ripley
Decisions: 3 | Action items: 4
Agreed on JWT format, session storage strategy, and endpoint contracts
Retrospective (automatic)
Triggers after build failures, test failures, or reviewer rejections. The Lead facilitates a focused root-cause analysis.
📋 Retrospective completed — facilitated by Ripley
Decisions: 2 | Action items: 3
Root cause: missing null check in API response parser
Manual ceremonies
You can trigger any ceremony on demand:
> Run a retro
> Run a design meeting before we start
You can also create, disable, or skip ceremonies:
> Add a ceremony for code reviews
> Disable retros
> Skip the design review for this task
Ceremony configuration lives in .ai-team/ceremonies.md.
Upgrading
Already have Squad installed? Update to the latest version:
npx github:bradygaster/squad upgrade
This overwrites squad.agent.md and .ai-team-templates/ with the latest versions. It never touches .ai-team/ — your team’s knowledge, decisions, casting state, and skills are safe.
Smart upgrade detects your installed version, reports what changed, and runs any needed migrations (e.g., creating .ai-team/skills/ if it didn’t exist). Migrations are additive and idempotent — safe to re-run.
Context Budget
Each agent runs in its own context window. Real numbers:
| What | Tokens | % of 200K window |
|---|---|---|
| Coordinator (squad.agent.md) | ~13,200 | 6.6% |
| Agent at Week 1 (charter + seed history + decisions) | ~1,250 | 0.6% |
| Agent at Week 4 (+ 15 learnings, 8 decisions) | ~3,300 | 1.7% |
| Agent at Week 12 (+ 50 learnings, 47 decisions) | ~9,000 | 4.5% |
| Remaining for actual work | ~187,000 | 93%+ |
The coordinator uses 6.6% of its window. A 12-week veteran agent uses 4.5% — but in its own window, not yours. Fan out to 5 agents and you get ~1M tokens of total reasoning capacity across all windows.
Known Limitations
- Experimental — file formats and APIs may change between versions.
- Silent success bug — approximately 7–10% of background agent spawns complete all their file writes but return no text response. This is a platform-level issue. Squad detects it by checking the filesystem for work product and reports what it finds. Work is not lost.
- Platform latency — response times depend on the Copilot platform. Complex multi-agent tasks take 40–60 seconds. Simple questions are answered in 2–3 seconds.
- Node 22+ — requires Node.js 22.0.0 or later.
- GitHub Copilot required — Squad works across Copilot hosts (CLI, VS Code, Visual Studio, Coding Agent).
- First session is the least capable — agents improve as they accumulate history. Give it a few sessions before judging.
Adding and Removing Team Members
Adding
> I need a DevOps person
Squad allocates a name from the current universe, generates a charter and history seeded with project context, and adds them to the roster. Immediately productive.
Removing
> Remove the designer — we're past that phase
Agents are never deleted. Their charter and history move to .ai-team/agents/_alumni/. Knowledge is preserved. If you need them back later, they remember everything.
Reviewer Protocol
Agents with review authority (typically Tester and Lead) can reject work. On rejection:
- The original author is locked out — they cannot revise their own rejected work.
- A different agent must handle the revision.
- If the revision is also rejected, the revision author is locked out too, and a third agent must take over.
- If all eligible agents are locked out, Squad escalates to you.
This prevents the common failure mode where an agent keeps “fixing” its own work in circles.
File Ownership
Squad maintains a clear ownership model:
| What | Owner | Safe to edit? |
|---|---|---|
.github/agents/squad.agent.md |
Squad (overwritten on upgrade) | No — your changes will be lost |
.ai-team-templates/ |
Squad (overwritten on upgrade) | No |
.ai-team/ |
You and your team | Yes — this is your team’s state |
| Everything else | You | Yes |
Quick Reference
| Command | What it does |
|---|---|
npx github:bradygaster/squad |
Install Squad in the current repo |
npx github:bradygaster/squad upgrade |
Update Squad-owned files to latest |
npx github:bradygaster/squad export |
Export team to squad-export.json |
npx github:bradygaster/squad import <file> |
Import team from export file |
npx github:bradygaster/squad import <file> --force |
Import, archiving existing agents |
npx github:bradygaster/squad --version |
Show installed version |
npx github:bradygaster/squad --help |
Show help |