Steve Yegge 0056bdd592 Fix patrol wisp creation to use two-step pinning (propulsion fix)
The `bd wisp` command doesn't support `--assignee` flag. The patrol
creation for Deacon, Witness, and Refinery was silently failing because
of this invalid flag.

Changed from:
  bd wisp <proto-id> --assignee <agent>  # FAILS: unknown flag

To two-step pattern (matching how gt sling works):
  bd wisp create <proto-id>                              # Step 1: create
  bd update <wisp-id> --status=pinned --assignee=<agent> # Step 2: pin

Also fixed wisp ID extraction to look for "wisp-" prefix in addition
to "gt-" prefix.

Without this fix, the Propulsion Principle was broken for patrol agents:
- Patrol wisps were never created (silent failure)
- Agents had no pinned work on restart
- Autonomous work loops couldn't continue

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 16:57:10 -08:00
2025-12-26 16:54:55 -08:00

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 (claude command 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

Development

go build -o gt ./cmd/gt
go test ./...

License

MIT

Description
Gas Town - multi-agent workspace manager (fork of steveyegge/gastown)
Readme MIT 22 MiB
Languages
Go 98.2%
HTML 1.1%
Shell 0.4%
JavaScript 0.2%