Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Migration Guide: From Gastown to Tinytown

Tried Gastown and found it overwhelming? You’re not alone. Here’s how to get the same results with Tinytown.

Why You’re Here

Gastown is powerful but complex:

  • 50+ concepts to understand
  • Multiple agent types (Mayor, Deacon, Witness, Polecats, etc.)
  • Two-level database architecture (Town beads + Rig beads)
  • Daemon processes, patrols, and recovery mechanisms
  • Hours to set up, days to understand

Tinytown gives you 90% of the value with 10% of the complexity.

Quick Comparison

What you wantedGastown wayTinytown way
Start orchestrating10+ commandstt init
Create an agentComplex Polecat setuptt spawn worker
Assign workgt sling + convoystt assign worker "task"
Check statusgt convoy list, gt feedtt status
Understand itRead 300K linesRead 1,400 lines

Concept Mapping

Gastown → Tinytown

Gastown ConceptTinytown Equivalent
TownTown ✓ (same name!)
MayorYou (or your code)
PolecatAgent
BeadsTasks (simpler)
ConvoyTask groups (manual)
HookAgent’s inbox
MailMessages
WitnessYour monitoring code
RefineryYour CI/CD

What Tinytown Doesn’t Have

Deliberately omitted for simplicity:

Gastown FeatureTinytown Alternative
Dolt SQLRedis (simpler)
Git-backed beadsRedis persistence
Two-level DBSingle Redis instance
Daemon processesYour process manages
Auto-recoveryManual retry logic
FormulasWrite code directly
MEOW orchestrationDirect API calls

Migration Steps

Step 1: Install Tinytown

git clone https://github.com/redis-field-engineering/tinytown.git
cd tinytown
cargo install --path .

Step 2: Initialize Your Project

Gastown:

# Multiple steps, daemon processes, config files...
gt boot
gt daemon start
# Configure rig, beads, etc.

Tinytown:

mkdir my-project && cd my-project
tt init --name my-project
# Done!

Step 3: Create Agents

Gastown:

# Configure polecat pools, spawn through Mayor...
gt mayor attach
# "Create a polecat for backend work"

Tinytown:

tt spawn backend --model claude
tt spawn frontend --model auggie
tt spawn reviewer --model codex

Step 4: Assign Work

Gastown:

# Create beads, slinging, convoys...
bd create --type task --title "Build API"
gt sling gt-abc12 gastown/polecats/Toast
gt convoy create "Feature X" gt-abc12

Tinytown:

tt assign backend "Build the REST API"
tt assign frontend "Build the UI"

Step 5: Monitor Progress

Gastown:

gt convoy list
gt convoy status hq-cv-abc
gt feed
gt dashboard  # requires tmux

Tinytown:

tt status
tt list

Code Migration

Gastown Pattern: Tell the Mayor

# Gastown: Complex orchestration
# You tell Mayor what you want, Mayor figures out the rest
gt mayor attach
> Build a user authentication system with login, signup, and password reset
# Mayor creates convoy, assigns polecats, tracks progress...

Tinytown Pattern: Direct Control

#![allow(unused)]
fn main() {
// Tinytown: You're in control
let town = Town::connect(".").await?;

// Create your team
let designer = town.spawn_agent("designer", "claude").await?;
let backend = town.spawn_agent("backend", "auggie").await?;
let frontend = town.spawn_agent("frontend", "codex").await?;

// Assign work explicitly
designer.assign(Task::new("Design auth API schema")).await?;
wait_for_idle(&designer).await?;

backend.assign(Task::new("Implement auth endpoints")).await?;
frontend.assign(Task::new("Build login/signup UI")).await?;

// Wait for both
tokio::join!(
    wait_for_idle(&backend),
    wait_for_idle(&frontend)
);
}

When to Use Tinytown vs Gastown

Use Tinytown When:

✅ You want to understand the system
✅ You need something working in 30 seconds
✅ You’re coordinating 1-5 agents
✅ You want to write your own orchestration logic
✅ Simple is better than feature-rich

Use Gastown When:

✅ You need 20+ concurrent agents
✅ You need git-backed work history
✅ You need automatic crash recovery
✅ You need cross-project coordination
✅ You have time to learn the system

Common Questions

Q: Can I use both? A: Yes! Start with Tinytown for simplicity. If you outgrow it, Gastown’s there.

Q: Is Tinytown production-ready? A: For small teams and projects, yes. For enterprise scale, consider Gastown.

Q: Can I migrate Tinytown work to Gastown? A: Tasks are JSON. You could write a converter to Beads format.

Q: Does Tinytown support everything Gastown does? A: No, and that’s the point. Tinytown does less, but what it does is simple.