5b719b2f606c81dfc307e3377992786a33472545
Align witness attach command with crew at and refinery attach by using MaximumNArgs(1) instead of ExactArgs(1) and inferring the rig from the current working directory when no argument is provided. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…
…
…
Gas Town
Status: Experimental (v0.1) - We're exploring these ideas and invite you to explore with us.
Gas Town is an experiment in multi-agent coordination for Claude Code. It provides infrastructure for spawning workers, tracking work via molecules, and coordinating merges.
We think of it using steam-age metaphors:
Claude = Fire (the energy source)
Claude Code = Steam Engine (harnesses the fire)
Gas Town = Steam Train (coordinates engines on tracks)
Beads = Railroad Tracks (the persistent ledger)
The goal is a "village" architecture - not rigid hierarchy, but distributed awareness where agents can help neighbors when something is stuck. Whether this actually works at scale is something we're still discovering.
Prerequisites
- Go 1.23+ - For building from source
- Git - For rig management and beads sync
- tmux - Required for agent sessions (all workers run in tmux panes)
- Claude Code CLI - Required for agents (
claudecommand must be available)
Install
From source (recommended for now):
go install github.com/steveyegge/gastown/cmd/gt@latest
Package managers (coming soon):
# Homebrew (macOS/Linux)
brew install gastown
# npm (cross-platform)
npm install -g @anthropic/gastown
Quick Start
# Create a town (workspace)
gt install ~/gt
# Add a project rig
gt rig add myproject --remote=https://github.com/you/myproject.git
# Spawn a worker on an issue
gt spawn --issue myproject-123
Architecture
Town (~/gt/)
├── Mayor (global coordinator)
└── Rig: myproject
├── Witness (lifecycle manager)
├── Refinery (merge queue)
└── Polecats (workers)
Key Concepts
Ideas we're exploring:
- Molecular Chemistry of Work: Protos (templates) → Mols (flowing work) → Wisps (ephemeral) → Digests (outcomes)
- Beads: Git-backed, human-readable ledger for tracking work (github.com/steveyegge/beads)
- Village Model: Distributed awareness instead of centralized monitoring
- Propulsion Principle: Agents pull work from molecules rather than waiting for commands
- Nondeterministic Idempotence: The idea that any worker can continue any molecule after crashes
Some of these are implemented; others are still aspirational. See docs for current status.
Commands
gt status # Town status
gt rig list # List rigs
gt spawn --issue <id> # Start worker
gt mail inbox # Check messages
gt peek <worker> # Check worker health
gt nudge <worker> # Wake stuck worker
Documentation
- Vision - Core innovations and philosophy
- Architecture - System design
- Molecular Chemistry - Work composition
- Molecules - Workflow templates
Development
go build -o gt ./cmd/gt
go test ./...
License
MIT
Languages
Go
98.2%
HTML
1.1%
Shell
0.4%
JavaScript
0.2%