Gas Town uses Dolt exclusively. Remove all bd sync and bd daemon references from agent priming, templates, formulas, and docs. With Dolt backend: - Beads changes are automatically persisted - No manual sync needed (no bd sync) - No daemon needed (no bd daemon) Updated files: - polecat-CLAUDE.md template - Role templates (crew, mayor, polecat) - Message templates (spawn, nudge) - Formulas (polecat-work, sync-workspace, shutdown, etc.) - Reference docs Part of hq-4f2f0c: Remove bd sync/daemon from agent priming Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
309 lines
7.1 KiB
Markdown
309 lines
7.1 KiB
Markdown
# Installing Gas Town
|
|
|
|
Complete setup guide for Gas Town multi-agent orchestrator.
|
|
|
|
## Prerequisites
|
|
|
|
### Required
|
|
|
|
| Tool | Version | Check | Install |
|
|
|------|---------|-------|---------|
|
|
| **Go** | 1.24+ | `go version` | See [golang.org](https://go.dev/doc/install) |
|
|
| **Git** | 2.20+ | `git --version` | See below |
|
|
| **Beads** | latest | `bd version` | `go install github.com/steveyegge/beads/cmd/bd@latest` |
|
|
|
|
### Optional (for Full Stack Mode)
|
|
|
|
| Tool | Version | Check | Install |
|
|
|------|---------|-------|---------|
|
|
| **tmux** | 3.0+ | `tmux -V` | See below |
|
|
| **Claude Code** (default) | latest | `claude --version` | See [claude.ai/claude-code](https://claude.ai/claude-code) |
|
|
| **Codex CLI** (optional) | latest | `codex --version` | See [developers.openai.com/codex/cli](https://developers.openai.com/codex/cli) |
|
|
| **OpenCode CLI** (optional) | latest | `opencode --version` | See [opencode.ai](https://opencode.ai) |
|
|
|
|
## Installing Prerequisites
|
|
|
|
### macOS
|
|
|
|
```bash
|
|
# Install Homebrew if needed
|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
|
|
# Required
|
|
brew install go git
|
|
|
|
# Optional (for full stack mode)
|
|
brew install tmux
|
|
```
|
|
|
|
### Linux (Debian/Ubuntu)
|
|
|
|
```bash
|
|
# Required
|
|
sudo apt update
|
|
sudo apt install -y git
|
|
|
|
# Install Go (apt version may be outdated, use official installer)
|
|
wget https://go.dev/dl/go1.24.12.linux-amd64.tar.gz
|
|
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.12.linux-amd64.tar.gz
|
|
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> ~/.bashrc
|
|
source ~/.bashrc
|
|
|
|
# Optional (for full stack mode)
|
|
sudo apt install -y tmux
|
|
```
|
|
|
|
### Linux (Fedora/RHEL)
|
|
|
|
```bash
|
|
# Required
|
|
sudo dnf install -y git golang
|
|
|
|
# Optional
|
|
sudo dnf install -y tmux
|
|
```
|
|
|
|
### Verify Prerequisites
|
|
|
|
```bash
|
|
# Check all prerequisites
|
|
go version # Should show go1.24 or higher
|
|
git --version # Should show 2.20 or higher
|
|
tmux -V # (Optional) Should show 3.0 or higher
|
|
```
|
|
|
|
## Installing Gas Town
|
|
|
|
### Step 1: Install the Binaries
|
|
|
|
```bash
|
|
# Install Gas Town CLI
|
|
go install github.com/steveyegge/gastown/cmd/gt@latest
|
|
|
|
# Install Beads (issue tracker)
|
|
go install github.com/steveyegge/beads/cmd/bd@latest
|
|
|
|
# Verify installation
|
|
gt version
|
|
bd version
|
|
```
|
|
|
|
If `gt` is not found, ensure `$GOPATH/bin` (usually `~/go/bin`) is in your PATH:
|
|
|
|
```bash
|
|
# Add to ~/.bashrc, ~/.zshrc, or equivalent
|
|
export PATH="$PATH:$HOME/go/bin"
|
|
```
|
|
|
|
### Step 2: Create Your Workspace
|
|
|
|
```bash
|
|
# Create a Gas Town workspace (HQ)
|
|
gt install ~/gt
|
|
|
|
# This creates:
|
|
# ~/gt/
|
|
# ├── CLAUDE.md # Mayor role context
|
|
# ├── mayor/ # Mayor config and state
|
|
# ├── rigs/ # Project containers (initially empty)
|
|
# └── .beads/ # Town-level issue tracking
|
|
```
|
|
|
|
### Step 3: Add a Project (Rig)
|
|
|
|
```bash
|
|
# Add your first project
|
|
gt rig add myproject https://github.com/you/repo.git
|
|
|
|
# This clones the repo and sets up:
|
|
# ~/gt/myproject/
|
|
# ├── .beads/ # Project issue tracking
|
|
# ├── mayor/rig/ # Mayor's clone (canonical)
|
|
# ├── refinery/rig/ # Merge queue processor
|
|
# ├── witness/ # Worker monitor
|
|
# └── polecats/ # Worker clones (created on demand)
|
|
```
|
|
|
|
### Step 4: Verify Installation
|
|
|
|
```bash
|
|
cd ~/gt
|
|
gt doctor # Run health checks
|
|
gt status # Show workspace status
|
|
```
|
|
|
|
### Step 5: Configure Agents (Optional)
|
|
|
|
Gas Town supports built-in runtimes (`claude`, `gemini`, `codex`) plus custom agent aliases.
|
|
|
|
```bash
|
|
# List available agents
|
|
gt config agent list
|
|
|
|
# Create an alias (aliases can encode model/thinking flags)
|
|
gt config agent set codex-low "codex --thinking low"
|
|
gt config agent set claude-haiku "claude --model haiku --dangerously-skip-permissions"
|
|
|
|
# Set the town default agent (used when a rig doesn't specify one)
|
|
gt config default-agent codex-low
|
|
```
|
|
|
|
You can also override the agent per command without changing defaults:
|
|
|
|
```bash
|
|
gt start --agent codex-low
|
|
gt sling gt-abc12 myproject --agent claude-haiku
|
|
```
|
|
|
|
## Minimal Mode vs Full Stack Mode
|
|
|
|
Gas Town supports two operational modes:
|
|
|
|
### Minimal Mode (No Daemon)
|
|
|
|
Run individual runtime instances manually. Gas Town only tracks state.
|
|
|
|
```bash
|
|
# Create and assign work
|
|
gt convoy create "Fix bugs" gt-abc12
|
|
gt sling gt-abc12 myproject
|
|
|
|
# Run runtime manually
|
|
cd ~/gt/myproject/polecats/<worker>
|
|
claude --resume # Claude Code
|
|
# or: codex # Codex CLI
|
|
|
|
# Check progress
|
|
gt convoy list
|
|
```
|
|
|
|
**When to use**: Testing, simple workflows, or when you prefer manual control.
|
|
|
|
### Full Stack Mode (With Daemon)
|
|
|
|
Agents run in tmux sessions. Daemon manages lifecycle automatically.
|
|
|
|
```bash
|
|
# Start the daemon
|
|
gt daemon start
|
|
|
|
# Create and assign work (workers spawn automatically)
|
|
gt convoy create "Feature X" gt-abc12 gt-def34
|
|
gt sling gt-abc12 myproject
|
|
gt sling gt-def34 myproject
|
|
|
|
# Monitor on dashboard
|
|
gt convoy list
|
|
|
|
# Attach to any agent session
|
|
gt mayor attach
|
|
gt witness attach myproject
|
|
```
|
|
|
|
**When to use**: Production workflows with multiple concurrent agents.
|
|
|
|
### Choosing Roles
|
|
|
|
Gas Town is modular. Enable only what you need:
|
|
|
|
| Configuration | Roles | Use Case |
|
|
|--------------|-------|----------|
|
|
| **Polecats only** | Workers | Manual spawning, no monitoring |
|
|
| **+ Witness** | + Monitor | Automatic lifecycle, stuck detection |
|
|
| **+ Refinery** | + Merge queue | MR review, code integration |
|
|
| **+ Mayor** | + Coordinator | Cross-project coordination |
|
|
|
|
## Troubleshooting
|
|
|
|
### `gt: command not found`
|
|
|
|
Your Go bin directory is not in PATH:
|
|
|
|
```bash
|
|
# Add to your shell config (~/.bashrc, ~/.zshrc)
|
|
export PATH="$PATH:$HOME/go/bin"
|
|
source ~/.bashrc # or restart terminal
|
|
```
|
|
|
|
### `bd: command not found`
|
|
|
|
Beads CLI not installed:
|
|
|
|
```bash
|
|
go install github.com/steveyegge/beads/cmd/bd@latest
|
|
```
|
|
|
|
### `gt doctor` shows errors
|
|
|
|
Run with `--fix` to auto-repair common issues:
|
|
|
|
```bash
|
|
gt doctor --fix
|
|
```
|
|
|
|
For persistent issues, check specific errors:
|
|
|
|
```bash
|
|
gt doctor --verbose
|
|
```
|
|
|
|
### Daemon not starting
|
|
|
|
Check if tmux is installed and working:
|
|
|
|
```bash
|
|
tmux -V # Should show version
|
|
tmux new-session -d -s test && tmux kill-session -t test # Quick test
|
|
```
|
|
|
|
### Git authentication issues
|
|
|
|
Ensure SSH keys or credentials are configured:
|
|
|
|
```bash
|
|
# Test SSH access
|
|
ssh -T git@github.com
|
|
|
|
# Or configure credential helper
|
|
git config --global credential.helper cache
|
|
```
|
|
|
|
### Beads issues
|
|
|
|
If experiencing beads problems:
|
|
|
|
```bash
|
|
cd ~/gt/myproject/mayor/rig
|
|
bd status # Check database health
|
|
bd doctor # Run beads health check
|
|
```
|
|
|
|
## Updating
|
|
|
|
To update Gas Town and Beads:
|
|
|
|
```bash
|
|
go install github.com/steveyegge/gastown/cmd/gt@latest
|
|
go install github.com/steveyegge/beads/cmd/bd@latest
|
|
gt doctor --fix # Fix any post-update issues
|
|
```
|
|
|
|
## Uninstalling
|
|
|
|
```bash
|
|
# Remove binaries
|
|
rm $(which gt) $(which bd)
|
|
|
|
# Remove workspace (CAUTION: deletes all work)
|
|
rm -rf ~/gt
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
After installation:
|
|
|
|
1. **Read the README** - Core concepts and workflows
|
|
2. **Try a simple workflow** - `bd create "Test task"` then `gt convoy create "Test" <bead-id>`
|
|
3. **Explore docs** - `docs/reference.md` for command reference
|
|
4. **Run doctor regularly** - `gt doctor` catches problems early
|