Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Daily driver

Recommended local workflow for operating Castellan — agents, panes, and the episode flywheel. For contributing to the Rust codebase, see Engineering guide and Verify before PR.

Why this loop

Mux keeps panes alive, the dashboard shows pressure and agents, run writes episodes, evolve mutates topology, drift-check gates what you trust.

Loop

castellan multiplexer ensure  →  castellan dashboard  →  castellan run  →  castellan evolve  →  castellan drift-check
  1. Multiplexercastellan multiplexer ensure starts the in-tree PTY server (~/.config/castellan/castellan.sock). Idempotent; safe at the start of every session. Use --session <name> for an isolated socket.
  2. Dashboardcastellan dashboard opens the ratatui UI (agents, pressure, pane tree). Writes ~/.config/castellan/statusline.json for MCP observability. Keys: j/k select, Enter attach, r refresh, q quit — see Dashboard.
  3. Run — pick a mode:
You wantCommand
Scheduler-led panes (daily default)castellan run --goal "…" --plugin gridworld --mux
Offline / CI smokecastellan run --goal "…" --plugin gridworld
Headless verify/actcastellan run --goal "…" --plugin gridworld --rlm
LLM/editor wiredcastellan run --goal "…" --plugin shell --mcp

Every mode writes .castellan/episodes/<goal-id>.json. Default castellan run is a deterministic plugin loop — add --mcp / --model only when you want LLM enrichment.

  1. Detach / reattach — panes persist without babysitting. Ctrl+Q detaches; later castellan herd tabs / castellan herd attach <pane-or-session>.
  2. Evolvecastellan evolve --episodes 16 --workspace .castellan/episodes. Prefer --plan / --dry-run before applying; MCP exposes castellan_propose_mutation / castellan_resolve_mutation.
  3. Gatecastellan drift-check against the verification manifest before you trust a topology change.

Honest scope: drift-check catches structurally invalid or manifest-violating topology. It does not grade goal quality — use episode verdicts and castellan vitals for that.

Config layers from castellan.toml when present. Episodes and archive live under .castellan/.

Operator commands

castellan multiplexer ensure
castellan dashboard
castellan herd status
castellan run --goal "reach target" --plugin gridworld --mux
castellan evolve --episodes 16 --workspace .castellan/episodes
castellan drift-check

Remote / SSH

castellan remote --ssh user@host --goal "reach target" --plugin gridworld
castellan herd attach --session my-work
castellan herd status

When something breaks

SymptomLikely causeFix
castellan herd status errorsNo mux servercastellan multiplexer ensure
Dashboard opens blankSocket up, no panes yetRun with --mux, then r
Episode missing after runPlugin exited earlyRerun with --json
evolve accepts 0Corpus too smallMore episodes, or --plan first
drift-check rejectsStructural/manifest violationInspect violations; do not force-apply

More symptoms: Troubleshooting. Staged diagnostics: castellan doctor --json.

GoalPage
First-time setupQuickstart
Dashboard keybindingsDashboard
MCP / statuslineMCP overview · Statusline
Agent onboardingAgent guide
Contributor PR gateVerify
LexiconConventions