Simple multi-agent orchestration using Redis โ All the power of complex systems, none of the complexity.
Named after Tinytown, Colorado โ a miniature village with big charm.
๐ Read the Documentation | ๐ Getting Started Guide | ๐ Coming from Gastown?
Tinytown is a minimal, blazing-fast multi-agent orchestration system that lets you coordinate AI agents with Redis. It's designed for developers who want agent orchestration without the bloat.
Think of it as:
- Gastown, but 100x simpler โจ
- Temporal, but for humans ๐ง
- Airflow, but actually fun to use ๐
| Feature | Tinytown | Complex Systems |
|---|---|---|
| Setup time | 30 seconds | Hours |
| Config files | 1 TOML | 10+ YAML files |
| Core concepts | 5 types | 50+ concepts |
| CLI commands | 14 | 50+ |
| Message latency | <1ms (Unix socket) | 10-100ms |
| Lines of code | ~2,600 | 50,000+ |
cargo install tinytownPrerequisites: Rust 1.85+ and Redis 8.0+ (or use tt bootstrap below).
# 0. Bootstrap Redis (one-time setup, uses AI to download & build)
tt bootstrap
export PATH="$HOME/.tt/bin:$PATH"
# 1. Initialize a new town (auto-names from git repo+branch)
tt init
# Creates town "my-repo-feature-branch"
# 2. Spawn an agent (uses default CLI from config)
tt spawn worker-1
# 3. Assign a task
tt assign worker-1 "Fix the bug in auth.rs"
# 3b. Add unassigned work to backlog (optional)
tt backlog add "Review auth error messages" --tags backend,review
tt backlog list
# 4. Or use the conductor - an AI that orchestrates for you
tt conductor
# Conductor: "I'll spawn agents and assign tasks. What do you want to build?"That's it! Your agents are now coordinating via Redis.
Note:
tt bootstrapdelegates to an AI agent to download Redis from GitHub and compile it for your machine. Alternatively:brew install redis(macOS) orapt install redis-server(Ubuntu).
Start an autonomous mission that handles multiple GitHub issues with dependency-aware scheduling:
# Start a mission spanning multiple issues
tt mission start --issue 23 --issue 24 --issue 25
# Check mission status and work items
tt mission status --work
# List all missions
tt mission listMission mode provides:
- Durable scheduling โ State persisted in Redis, survives restarts
- Dependency tracking โ Work items execute in DAG order
- PR/CI monitoring โ Automatic watch loops for CI status, Bugbot, reviews
- Agent routing โ Work assigned to best-fit agents by role
Tinytown also ships a townhall control plane binary with both REST and MCP interfaces.
# REST API (default: 127.0.0.1:8080)
townhall rest
# MCP over stdio
townhall mcp-stdio
# MCP over HTTP/SSE (default: REST port + 1)
townhall mcp-httpREST OpenAPI spec: docs/openapi/townhall-v1.yaml
Tinytown is built on 7 core concepts:
| Concept | Purpose |
|---|---|
| Conductor ๐ | AI orchestrator that manages agents and assigns tasks |
| Town ๐๏ธ | Project workspace with Redis state and agent registry |
| Agent ๐ค | AI workers (Claude, Auggie, Codex, Gemini, Copilot, Aider, Cursor) |
| Task ๐ | Units of work with state tracking |
| Message ๐ฌ | Inter-agent communication with priorities |
| Channel ๐ก | Redis-based message passing (<1ms latency) |
| Mission ๐ฏ | Autonomous multi-issue execution with durable scheduling |
โโโโโโโโโโโโโโโโโโโ
โ Conductor ๐ โ (You talk to this)
โโโโโโโโโโฌโโโโโโโโโ
โ spawns, assigns, coordinates
โโโโโโโโโโผโโโโโโโโโ
โ Town ๐๏ธ โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โ Redis (Unix Socket) โ <1ms latency
โโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโ
โผ โผ โผ
โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ
โ Agent1 โ โ Agent2 โ โฆ โ AgentN โ
โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ
| Command | Description |
|---|---|
tt bootstrap [version] |
Download & build Redis (uses AI agent) |
tt init |
Initialize a new town |
tt spawn <name> |
Create a new agent (starts AI process!) |
tt assign <agent> <task> |
Assign a task |
tt backlog <subcommand> |
Manage unassigned task backlog |
tt list |
List all agents |
tt status [--deep] [--tasks] |
Show town status (--deep for activity, --tasks for task details) |
tt kill <agent> |
Stop an agent gracefully |
tt reset [--force] [--agents-only] |
Reset all town state (clear agents, tasks, messages) |
tt inbox <agent> |
Check agent's message inbox |
tt send [--urgent] <agent> <msg> |
Send message to agent |
tt conductor |
๐ AI orchestrator mode |
tt plan --init |
Create tasks.toml for planning |
tt sync [push|pull] |
Sync tasks.toml โ Redis |
tt save |
Save Redis state to AOF (for git) |
tt restore |
Restore Redis state from AOF |
tt migrate [--dry-run] [--force] |
Migrate keys to town-isolated format |
Townhall exposes Tinytown operations via REST API and MCP (Model Context Protocol):
# Start REST API server (default port 8787)
townhall
# Start MCP server for Claude Desktop integration
townhall mcp-stdioSee Townhall Documentation for API reference and authentication options.
Built-in presets for popular AI coding agents (with correct non-interactive flags):
| CLI | Command |
|---|---|
claude |
claude --print --dangerously-skip-permissions |
auggie |
auggie --print |
codex |
codex exec --dangerously-bypass-approvals-and-sandbox |
aider |
aider --yes --no-auto-commits --message |
gemini |
gemini |
copilot |
gh copilot |
cursor |
cursor |
# Spawn uses default CLI from config (or override)
tt spawn worker-1
tt spawn worker-2 --model auggie
tt spawn worker-3 --model codexSingle tinytown.toml file:
name = "my-town"
default_cli = "claude"
max_agents = 10
[redis]
use_socket = true
socket_path = "redis.sock"Change default_cli in tinytown.toml to set which AI CLI is used when spawning agents:
default_cli = "auggie"Available options: claude, auggie, codex, aider, gemini, copilot, cursor
Or override per-agent:
tt spawn backend # Uses default_model from config
tt spawn frontend --model auggie # Override for this agentSimplicity over features. We include only what you need:
โ
Agent spawning & lifecycle
โ
Task assignment & tracking
โ
Redis message passing
โ
Priority queues
โ No workflow DAGs
โ No distributed transactions
โ No complex scheduling
If you need more, add it yourself in 10 lines.
Redis 8.0+ is required. Tinytown will check your Redis version on startup.
| Platform | Command |
|---|---|
| macOS | brew install redis |
| Ubuntu/Debian | See Redis downloads |
| Any | tt bootstrap (uses AI to build from source) |
cargo build # Build
cargo test # Run tests
cargo clippy # LintMIT License - see LICENSE for details.
Made with โค๏ธ by Jeremy Plichta
Tinytown: Simple multi-agent orchestration for humans.