When Squad initializes a team, it does not give agents generic names like “Agent1” or “Backend”. Instead, the casting engine assigns each agent a character name drawn from a fictional universe — The Usual Suspects, Ocean’s Eleven, and others. Names are deterministic: the same team configuration always produces the same cast, so your team identity persists across sessions, machines, and contributors. Keyser will always be Keyser on this project. This matters for more than aesthetics. Persistent names let agents build identity over time — theirDocumentation 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.
history.md is indexed by name, their decisions are attributed by name, and the coordinator refers to them by name. When you say “McManus, look at this performance issue”, the routing engine knows exactly who you mean.
How Casting Works
TheCastingEngine maps each AgentRole to a character from the chosen universe. Role-to-character assignment prefers characters whose preferredRoles match the requested role, then falls back to unassigned characters in order.
The casting results are stored in .squad/casting/:
Supported Universes
The SDK ships with two built-in universes:The Usual Suspects (usual-suspects)
| Character | Preferred Roles | Personality |
|---|---|---|
| Keyser | lead | Quietly commanding; sees the whole board before anyone else |
| McManus | developer | Bold and direct; ships fast, asks questions later |
| Fenster | tester | Eccentric communicator; finds bugs nobody else can see |
| Verbal | prompt-engineer, scribe | Silver-tongued storyteller; turns complexity into clarity |
| Hockney | security, reviewer | Street-smart and suspicious; trusts no input |
| Redfoot | devops | Resourceful fixer; keeps the machinery running |
| Edie | reviewer, tester | Methodical and detail-oriented; nothing escapes review |
| Kobayashi | designer, prompt-engineer | Precise and formal; an interface between worlds |
Ocean’s Eleven (oceans-eleven)
Characters drawn from the heist ensemble — Danny, Rusty, Linus, Saul, Livingston, and others — each mapped to corresponding roles.
Custom universes
Setuniverse: 'custom' and provide a customNames map to use your own character names:
Overflow strategy
When a team is larger than the available characters in a universe, theoverflowStrategy setting controls what happens:
| Strategy | Behavior |
|---|---|
generic | Extra agents get generic names (Agent1, Agent2, …) |
rotate | Characters are reused from the beginning of the universe list |
reject | An error is thrown if the team exceeds universe capacity |
Configuring Casting
Insquad.config.ts (SDK-first mode):
.squad/casting/policy.json directly:
squad init) allows the two built-in universes with generic overflow.
Casting History
CastingHistory ensures names persist across sessions. Once an agent is cast with a name, that name is recorded in history.json. On subsequent casts with the same configuration, the history is consulted first and the same names are returned.
CastingRecord objects, each containing the full team lineup, the universe used, and a timestamp. This makes it straightforward to audit when and how the team was cast, and to restore a previous cast if needed.
SDK Usage
Here is a complete example from thehello-squad sample showing how to cast a team, onboard agents, and persist the casting history:
/samples/hello-squad/index.ts in the repository.