🎒 Roaming Squad Agents: Global SQUAD_HOME
Problem
Today, squad agents only resolve from a local .squad/ directory in the current repo. When I move between repos, I lose my squad. I have to either:
- Symlink
.squad/ into every repo (fragile)
- Re-init with snap-squad in every repo (copies, drift)
- Reference charters by absolute path (clunky)
Proposal
Add a global squad home fallback so personal agents are always in scope, regardless of which repo I am in.
Option A: Environment variable
export SQUAD_HOME=~/src/dispatch/.squad
Squad CLI checks SQUAD_HOME when no local .squad/ exists.
Option B: Conventional global directory
~/.squad/
agents/
triage/charter.md
review/charter.md
Squad CLI checks ~/.squad/ as a fallback.
Resolution order
- Repo-local
.squad/ (highest priority — team/project-specific agents)
- Global
SQUAD_HOME or ~/.squad/ (personal agents that roam everywhere)
Local agents can override or extend global ones. If a repo has .squad/agents/triage/charter.md, it wins over the global triage agent.
Why this matters
I work across many repos on multiple machines. I have a personal squad of agents I have tuned — triage, review, security, etc. I want them available everywhere without per-repo setup. This is the difference between:
npm install (local to this project) → repo squad
npm install -g (available everywhere) → global squad
Integration with snap-squad
snap-squad presets would continue to scaffold repo-local .squad/ directories. The global squad home is complementary — it is the personal baseline that snap-squad repos can extend or override.
Context
This is part of a broader vision for a distributed nervous system architecture where agents, rules, and learnings roam across machines and repos. See: https://github.com/coreai-microsoft/dispatch-insiders/issues/74
Incorporate Best of Snap Squad into Squad
Rather than keeping snap-squad as a separate tool, consider folding its best ideas directly into Squad:
1. Presets built into Squad CLI
squad init --preset default # generalist squad
squad init --preset fast # rapid POC, ship fast
squad init --preset specialists # deep expertise
squad init --preset my-squad # custom personal preset
No need for a separate npx snap-squad init. Squad itself knows how to scaffold from presets. Users can publish and share custom presets.
2. Sub-agent routing
The real power of a squad is not just having agents — it is the dispatcher knowing which agent to route to. Squad should support:
- Automatic routing — based on the task, Squad picks the best agent (triage routes to triage agent, code review routes to reviewer, etc.)
- Agent delegation — one agent can hand off sub-tasks to another agent in the squad
- Capability matching — agents declare what they are good at, the router matches tasks to capabilities
# Instead of explicitly picking an agent:
squad run triage "review this PR"
# Squad figures it out:
squad run "review this PR"
# → routes to reviewer agent based on task analysis
3. The unified vision
| Today |
Proposed |
snap-squad scaffolds .squad/ |
squad init --preset does the same, built-in |
| Manual agent selection |
Smart routing picks the best agent for the task |
| Agents are siloed |
Agents can delegate sub-tasks to each other |
| Local to one repo |
Global SQUAD_HOME + repo-local layering |
This makes Squad a complete system: scaffold, roam, route, delegate. One tool, not two.
4. Personal default preset
When I run squad init with no flags, it should use my default preset — not a generic one.
# First time: set my default
squad config set default-preset pauls-squad
# Now every repo I init just works:
squad init
# → uses pauls-squad preset automatically
# Override when needed:
squad init --preset fast
Where does the preset live? Options:
~/.squad/presets/pauls-squad/ — local preset directory, synced via dotfiles or git
- GitHub repo —
squad init --preset github:paulyuk/my-squad pulls from a repo
SQUAD_HOME directory — the global squad home IS the default preset. squad init copies from there.
The simplest version: SQUAD_HOME doubles as the default preset source. squad init with no args copies agents from SQUAD_HOME into the repo. No registry, no config file, just "use whatever I have globally."
export SQUAD_HOME=~/src/dispatch/.squad
cd ~/src/new-project
squad init
# → scaffolds .squad/ from ~/src/dispatch/.squad
# → Paul's agents are the default everywhere
🎒 Roaming Squad Agents: Global SQUAD_HOME
Problem
Today, squad agents only resolve from a local
.squad/directory in the current repo. When I move between repos, I lose my squad. I have to either:.squad/into every repo (fragile)Proposal
Add a global squad home fallback so personal agents are always in scope, regardless of which repo I am in.
Option A: Environment variable
Squad CLI checks
SQUAD_HOMEwhen no local.squad/exists.Option B: Conventional global directory
Squad CLI checks
~/.squad/as a fallback.Resolution order
.squad/(highest priority — team/project-specific agents)SQUAD_HOMEor~/.squad/(personal agents that roam everywhere)Local agents can override or extend global ones. If a repo has
.squad/agents/triage/charter.md, it wins over the global triage agent.Why this matters
I work across many repos on multiple machines. I have a personal squad of agents I have tuned — triage, review, security, etc. I want them available everywhere without per-repo setup. This is the difference between:
npm install(local to this project) → repo squadnpm install -g(available everywhere) → global squadIntegration with snap-squad
snap-squad presets would continue to scaffold repo-local
.squad/directories. The global squad home is complementary — it is the personal baseline that snap-squad repos can extend or override.Context
This is part of a broader vision for a distributed nervous system architecture where agents, rules, and learnings roam across machines and repos. See: https://github.com/coreai-microsoft/dispatch-insiders/issues/74
Incorporate Best of Snap Squad into Squad
Rather than keeping snap-squad as a separate tool, consider folding its best ideas directly into Squad:
1. Presets built into Squad CLI
No need for a separate
npx snap-squad init. Squad itself knows how to scaffold from presets. Users can publish and share custom presets.2. Sub-agent routing
The real power of a squad is not just having agents — it is the dispatcher knowing which agent to route to. Squad should support:
3. The unified vision
snap-squadscaffolds.squad/squad init --presetdoes the same, built-inSQUAD_HOME+ repo-local layeringThis makes Squad a complete system: scaffold, roam, route, delegate. One tool, not two.
4. Personal default preset
When I run
squad initwith no flags, it should use my default preset — not a generic one.Where does the preset live? Options:
~/.squad/presets/pauls-squad/— local preset directory, synced via dotfiles or gitsquad init --preset github:paulyuk/my-squadpulls from a repoSQUAD_HOMEdirectory — the global squad home IS the default preset.squad initcopies from there.The simplest version:
SQUAD_HOMEdoubles as the default preset source.squad initwith no args copies agents fromSQUAD_HOMEinto the repo. No registry, no config file, just "use whatever I have globally."