Files
gastown/docs/INSTALLING.md
mayor 1d260d377b docs(priming): remove bd sync references for Dolt backend
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>
2026-01-25 13:36:22 -08:00

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