Agents
An agent in Genie is a Claude Code (or Codex) instance running in a tmux pane with a defined identity and role. Agents are spawned, managed, and coordinated through the CLI.Agent Identity
Every agent has three identity files that shape its behavior:SOUL.md
The agent’s core identity — purpose, temperament, and principles. This is injected into the agent’s system prompt at startup.HEARTBEAT.md
The checklist an agent runs on each/loop iteration. Defines what to check, what to do, and when to exit.
AGENTS.md
Agent configuration — spawn profiles, default models, and team assignments. Placed in the project root to configure project-specific agent behavior.Built-in Roles
Genie ships with specialized agent roles:| Role | Type | Purpose |
|---|---|---|
| team-lead | Leader | Orchestrates wish execution, dispatches workers, manages PRs |
| pm | Leader | Project management — backlog coordination, team oversight |
| engineer | Executor | Implements features and fixes per execution group |
| fix | Executor | Repairs FIX-FIRST gaps from review |
| refactor | Executor | Structural code improvements |
| docs | Executor | Documentation generation and validation |
| reviewer | Validator | Quality gates — returns SHIP or FIX-FIRST |
| qa | Validator | Acceptance criteria verification on dev branch |
| trace | Investigator | Root cause analysis for unknown failures |
| learn | Learner | Behavioral correction from user feedback |
| council | Deliberator | Multi-perspective architectural review |
Spawning Agents
agents table. See the Spawn & Lifecycle CLI reference for all spawn options and the agent management commands for listing and inspecting agents.
Agent Lifecycle
| State | Meaning |
|---|---|
active | Running in a tmux pane, processing tasks |
suspended | Paused (idle timeout or manual stop), session preserved |
stopped | Gracefully stopped, session saved for resume |
killed | Force-terminated, session lost |
Managing Agents
Agent Communication
Agents communicate through two channels:Direct Messages (Mailbox)
Point-to-point messages stored in.genie/mailbox/<worker>.json:
Team Chat
Broadcast messages visible to all team members, stored in.genie/chat/<team>.jsonl:
Worker Registry
All spawned agents are tracked globally in the PostgreSQLagents table. This registry maps agent names to their tmux sessions, PIDs, teams, and status. The genie ls command reads from this table.
Council: Multi-Agent Deliberation
The council is a special agent mode that spawns 10 specialist perspectives for architectural review:| Specialist | Focus |
|---|---|
| Questioner | Challenge assumptions — “Why? Is there a simpler way?” |
| Benchmarker | Performance evidence — “Show me the benchmarks.” |
| Simplifier | Complexity reduction — “Delete code. Ship features.” |
| Sentinel | Security oversight — “Where are the secrets?” |
| Ergonomist | Developer experience — “If you need docs, the API failed.” |
| Architect | Systems thinking — “Talk is cheap. Show me the code.” |
| Operator | Operations reality — “No one wants to run your code.” |
| Deployer | Zero-config deployment — “Zero-config with infinite scale.” |
| Measurer | Observability — “Measure, don’t guess.” |
| Tracer | Production debugging — “You will debug this in production.” |
/council to invoke a multi-perspective review of any architectural decision.