Architecture Overview

A brief overview of how Smith coordinates multiple AI agents to build software.

How It Works

Smith uses a coordinator agent that delegates work to specialized background agents. You chat with the coordinator in the REPL, while background agents work on planning, coding, testing, and reviewing your features.

💬

You chat with Smith

Request features in natural language

↓
🕶️

Coordinator breaks it down

Analyzes request and creates tasks

↓
⚡

Agents work in parallel

Planning, coding, testing happen concurrently

↓
✅

Results integrated

Code written, tests passing, ready to commit

Key Components

🎯 REPL

Interactive terminal interface where you chat with Smith and see agent progress in real-time.

🕶️ Coordinator

Main agent that talks to you, breaks down requests, and manages other agents.

🤖 Background Agents

Specialized agents (planning, implementation, testing, review) that work autonomously.

📋 Task Queue

BBolt-based queue that coordinates work between agents safely.

🛠️ Tools

File operations, command execution, Git integration - agents use these to build software.

🔒 Safety System

Controls what agents can do automatically vs. what requires your approval.

Why Multiple Agents?

⚡

Parallel Execution

Planning can happen while tests are being written. Multiple tasks progress simultaneously instead of sequentially.

🎯

Specialized Focus

Each agent has a specific role with tailored prompts and tools, leading to higher quality output than a single generalist agent.

🔄

Natural Workflow

Mirrors how dev teams work - planning, implementation, testing, and review happen as distinct activities.

Technical Stack

  • Language: Go - for performance, concurrency, and single binary distribution
  • Storage: BBolt - embedded key-value store for reliable, lock-free concurrent coordination
  • UI: Lotus - blazing fast terminal interface
  • LLM Providers: GitHub Copilot, OpenRouter - flexible model choices

Learn More

For detailed technical information about Smith's internals, package structure, and design decisions, check out: