Squad has two configuration surfaces. The default — and recommended — approach is markdown-first mode, where your team’s configuration lives inDocumentation 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.
.squad/*.md files that are committed alongside your code. For teams who prefer TypeScript, SDK-first mode lets you define everything in a squad.config.ts file using builder functions, then generate the markdown with squad build. Both approaches produce the same runtime artifacts and support the same features.
Node.js Version Requirement
Markdown-First Configuration
After runningsquad init, Squad creates a .squad/ directory in your project. All configuration lives in plain markdown and JSON files that you can read, edit, and commit with git. This is the default mode and the most stable configuration surface.
Directory Structure
Key Files
team.md — Team roster
team.md — Team roster
Lists all active team members and their roles. The coordinator reads this file to understand who is available to take on work. Add a member by appending a new entry; the casting engine will resolve their persistent name from
casting/registry.json.routing.md — Routing rules
routing.md — Routing rules
Defines which agent handles which type of work. Routing rules are pattern-matched against incoming task descriptions. The
defaultAgent handles anything that doesn’t match a specific rule.Example entry:decisions.md / decisions/inbox/ — Decision log
decisions.md / decisions/inbox/ — Decision log
Every decision any agent makes is recorded here. The decision log is shared across all agents — it is the squad’s collective memory. The
inbox/ subdirectory holds incoming decisions awaiting merge into the main log.Do not delete old entries. The cumulative decision history is what allows agents to stay consistent across sessions.ceremonies.md — Sprint configuration
ceremonies.md — Sprint configuration
Configures sprint ceremonies: standup frequency, retro cadence, planning triggers, and any custom ceremony types your team has defined.
agents/{name}/charter.md — Agent identity
agents/{name}/charter.md — Agent identity
Defines an individual agent’s identity, expertise areas, communication style, and behavioral constraints. The charter is the agent’s “personality” — it is the first thing the agent reads at the start of every session.
agents/{name}/history.md — Agent learnings
agents/{name}/history.md — Agent learnings
Persistent learnings that the agent has accumulated about your specific project: your conventions, architecture decisions, testing standards, preferences. Updated after each session. This is what makes Squad agents get smarter over time without re-reading the whole codebase every session.
SDK-First Configuration
Experimental. SDK-first mode is under active development and has known bugs. Use markdown-first mode (the default) for production teams. See the SDK-First Mode guide for the current status and known limitations.
squad.config.ts file using builder functions from @bradygaster/squad-sdk. Run squad build to generate all the .squad/*.md files automatically.
Example: squad.config.ts
Here is the realsquad.config.ts from the Squad project itself:
.squad/*.md files. Use squad build --watch to rebuild on every save.
Builder Functions
| Function | Purpose |
|---|---|
defineSquad(config) | Root config wrapper — accepts team, agents, routing, casting |
defineTeam(config) | Team-level metadata: name, description, project context, members |
defineAgent(config) | Single agent definition: name, role, description, status, model |
defineRouting(config) | Routing rules, default agent, fallback strategy |
defineCasting(config) | Casting policy: allowlisted name universes, overflow strategy |
Personal Squad
Usesquad init --global to create a personal squad at ~/.config/squad/ (or the platform equivalent) that persists across all projects. Personal squads are ideal for ambient agents that apply your preferences everywhere — code style helpers, personal scribe, cross-project decisions.
.squad/ first. If none is found, it falls back to the personal squad at the global path. squad status shows you which squad is active and why.
Dual-Root Mode
Dual-root mode separates squad state from the working tree — useful for teams that want to share a single squad configuration across multiple projects, or for organizations that want to govern squad templates centrally..squad/config.json in the current directory pointing to ../shared-team-repo. The actual agent charters, routing rules, and decisions live in the remote repo; the local project just references it.
You can also use squad link for a post-hoc connection:
Environment Variables
Squad respects the following environment variables:| Variable | Description |
|---|---|
NODE_NO_WARNINGS | Set to 1 automatically by the CLI to suppress Node.js experimental warnings |
SQUAD_TEAM_ROOT | Override the directory Squad uses to resolve .squad/. Useful for subprocesses (e.g. Copilot CLI bang commands) that run in a different working directory than the interactive shell |
SQUAD_ECONOMY_MODE | Set to 1 to activate economy mode (cost-conscious model selection) for all agent sessions in this process |
config.json Reference
Squad writes a.squad/config.json during squad init. You can edit this file directly to configure project-level settings.
| Field | Description |
|---|---|
projectKey | Unique key for this squad (used by externalize and state backends) |
stateBackend | Default state backend: local, orphan, or two-layer |
teamRoot | Path to an external team root (set by squad init --mode remote or squad link) |
capabilities | Default capability flags for Watch mode (can be overridden per-run with CLI flags) |