Gas Town is a workspace manager that coordinates many AI coding agents (Claude Code, GitHub Copilot, Codex, Gemini, and others) working on separate tasks in parallel. Work state lives in git-backed hooks and a Beads issue ledger rather than in an agent's context window, so an agent restart or crash does not lose the work, and a single workspace can run 20–30 agents at once.
A town is a workspace directory that holds rigs, one per git repository. Each rig has a crew workspace for your own hands-on work, polecats (worker agents with a persistent identity but ephemeral sessions), and hooks (git worktrees that store an agent's work across restarts). The Mayor, a Claude Code instance with context about the whole workspace, is the primary interface: you tell it what to build, it breaks the work into beads, bundles them into convoys, and slings them to agents.
Completed work does not go straight to main. When a polecat runs gt done, its branch is pushed and a merge-request bead is created; the per-rig Refinery batches pending merge requests, runs verification gates on the merged stack, and on failure bisects to isolate the failing request while merging the rest. A three-tier watchdog (per-rig Witness, cross-rig Deacon, and Dogs dispatched for maintenance) detects stuck agents and triggers nudges or handoffs.
Runtimes are configured per rig. Built-in presets cover claude, gemini, codex, kiro, cursor, auggie, amp, opencode, copilot, pi, and omp, and a minimal mode runs agents manually without tmux while Gas Town only tracks state.
Features
- Git-backed hooks: each agent's work is a git worktree with persistent state, version history, and rollback
- Beads and convoys: git-backed issue tracking with prefixed IDs (gt-abc12), grouped into convoys that track progress across agents
- Molecules and formulas: TOML-defined workflow templates instantiated as tracked multi-step molecules, with checkpoint recovery
- Watchdog chain: daemon heartbeat, Boot triage, Deacon patrols, and per-rig Witnesses keep agents healthy at scale
- Refinery merge queue: a Bors-style bisecting queue that verifies batches before merging to main
- Escalation: gt escalate routes blockers by severity (P0–P2) through Deacon, Mayor, and Overseer
- Scheduler: a capacity governor (scheduler.max_polecats) that defers dispatch to avoid API rate-limit exhaustion
- Seance: discovers earlier agent sessions from .events.jsonl logs so a new agent can query a predecessor for context
- Activity feed and dashboard: a three-panel TUI (gt feed) with a problems view grouping agents by health state, plus an htmx web dashboard with a command palette
- Wasteland federation: a DoltHub-linked network where towns post, claim, and complete work items with portable reputation stamps
- OpenTelemetry: session, agent, mail, sling, and convoy events emitted as logs and metrics to any OTLP backend
- Docker setup: a Compose file that hosts the whole town inside a sandbox container
