2026-03-25 00:22:47 -05:00
## 🚧 The bb-pi orchestrator is under construction — [help us build it!](CONTRIBUTING.md) Use your own coding agent alongside BeadBoard for now. 🚧
2026-02-11 17:42:51 -08:00
2026-03-24 21:10:39 -05:00
# BeadBoard
2026-03-24 20:37:32 -05:00
2026-03-05 16:54:03 -08:00
[](https://opensource.org/licenses/MIT)
2026-03-24 21:10:39 -05:00
[](https://github.com/zenchantlive/beadboard/stargazers)
2026-03-24 20:37:32 -05:00
[](https://github.com/steveyegge/beads)
2026-03-24 21:10:39 -05:00
**Multi-agent orchestration and communication system built on [Beads ](https://github.com/steveyegge/beads ).**
Agents claim tasks, send structured mail to each other, track dependencies, and close work with evidence. BeadBoard is the coordination layer — a dashboard that shows it all happening live, a CLI (`bb` ) that hosts the orchestrator and manages agent communication, and a built-in execution runtime ([bb-pi ](#-bb-pi-orchestrator )) that can spawn and manage agent workers directly.
Built on [Beads ](https://github.com/steveyegge/beads ) and inspired by [Gastown ](https://github.com/steveyegge/gastown ).

2026-03-24 20:37:32 -05:00
---
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
## 🚀 Add BeadBoard to Your Agent
```bash
npx skills add zenchantlive/beadboard --skill beadboard-driver
```
This installs the [beadboard-driver ](skills/beadboard-driver/SKILL.md ) skill — a 9-step operating contract that gives your agent:
- 📋 Task coordination through dependency-constrained graphs
- 💬 Structured agent-to-agent messaging (`HANDOFF` , `BLOCKED` , `DECISION` , `INFO` )
- 🔒 Scope-based work reservations with liveness-aware conflict resolution
- 📡 Realtime progress tracking via heartbeats and activity streams
- ✅ Evidence-required workflow — agents can't close work without verification gates
Or just tell your agent:
2026-03-24 21:24:06 -05:00
> Install Beadboard, and the beadboard-driver skill from https://github.com/zenchantlive/beadboard and use it to coordinate your work. Run `npx skills add zenchantlive/beadboard --skill beadboard-driver` then follow the SKILL.md runbook.
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
Then add to your project's `AGENTS.md` or `CLAUDE.md` :
```markdown
## BeadBoard
You have access to the **beadboard-driver** skill.
2026-03-24 20:37:32 -05:00
2026-03-24 21:10:39 -05:00
- Always use beadboard-driver as your entrypoint for coordination work (tasks, context, status)
instead of inventing your own workflow.
- Use it to read and update Beads via `bd` , keep work state consistent with the BeadBoard UI,
and obey the verification rules described in this repo.
- When in doubt about what to do next or how to record progress, call beadboard-driver and
follow its guidance rather than editing markdown ad hoc.
```
2026-03-05 17:07:38 -08:00
2026-03-24 21:10:39 -05:00
See [skills/beadboard-driver/SKILL.md ](skills/beadboard-driver/SKILL.md ) for the complete agent runbook.
2026-03-01 18:17:58 -08:00
2026-03-05 17:07:38 -08:00
2026-03-01 18:17:58 -08:00
---
2026-03-24 21:10:39 -05:00
## 📦 Installation
### Prerequisites
2026-03-05 17:07:38 -08:00
2026-03-24 21:10:39 -05:00
- **Node.js** 18.18+ (Node 20 LTS recommended)
- **npm** 7.0+
- **[Dolt ](https://github.com/dolthub/dolt )** (recommended — see [Dolt section ](#-dolt ))
### Install from Source
2026-03-05 17:07:38 -08:00
```bash
git clone https://github.com/zenchantlive/beadboard.git
cd beadboard
npm install
npm install -g .
2026-03-24 21:10:39 -05:00
```
This installs:
- `beadboard` / `bb` — BeadBoard CLI: dashboard, orchestrator host, agent communication commands
- `bd` — Beads CLI for task management (also available standalone: `npm install -g @beads/bd` )
```bash
beadboard --version
bd --version
```
**Alternative:** POSIX install script (Linux/macOS):
```bash
bash ./install/install.sh # installs bb + beadboard shims to ~/.beadboard/bin
```
---
## ⚡ Quick Start
```bash
2026-03-24 20:33:15 -05:00
cd ~/my-project
2026-03-24 21:10:39 -05:00
bd init # initialize Beads in your project
beadboard start --dolt # start the dashboard with Dolt (recommended)
2026-03-05 17:07:38 -08:00
```
2026-03-24 20:33:15 -05:00
Open [http://localhost:3000 ](http://localhost:3000 ).
2026-03-05 17:07:38 -08:00
2026-03-24 21:10:39 -05:00
```bash
bd create --title "My first task" --type task --priority 0
```
2026-03-05 17:07:38 -08:00
---
2026-03-24 21:10:39 -05:00
## 🗄️ Dolt
2026-03-05 17:07:38 -08:00
2026-03-24 21:10:39 -05:00
BeadBoard uses [Dolt ](https://github.com/dolthub/dolt ) — a version-controlled SQL database — as its primary backend. Dolt gives you:
- Full version history of every issue state change
- SQL queries across all your issues and projects
- `bd dolt pull` / `bd dolt push` for multi-agent sync across machines
- Branch-based workflows
2026-03-05 17:07:38 -08:00
```bash
2026-03-24 20:37:32 -05:00
# macOS
brew install dolt
2026-03-05 17:07:38 -08:00
2026-03-24 20:37:32 -05:00
# Linux / Windows
2026-03-24 21:10:39 -05:00
curl -L https://github.com/dolthub/dolt/releases/latest/download/install.sh | bash
2026-03-05 16:54:03 -08:00
```
2026-03-24 21:10:39 -05:00
Without Dolt, BeadBoard falls back to reading `.beads/issues.jsonl` directly. This is enough to poke around, but you'll want Dolt for real work.
---
## 🔧 What BeadBoard Does
BeadBoard is three things:
### The Dashboard
A live operations console with Social, Graph, and Activity views — updating in realtime via SSE as agents work.
### The CLI (`bb`)
A full agent command center — not just a dashboard launcher:
2026-03-05 16:54:03 -08:00
2026-03-24 20:37:32 -05:00
```bash
2026-03-24 21:10:39 -05:00
# Agent lifecycle
bb agent register --name < id > --role < role >
bb agent list
bb agent activity-lease --agent < id >
# Agent-to-agent communication
bb agent send --from < id > --to < id > --bead < id > --category HANDOFF --subject "..."
bb agent inbox --agent < id >
bb agent ack --agent < id > --message < msg-id >
# Work reservations
bb agent reserve --agent < id > --scope < scope > --bead < id >
bb agent release --agent < id > --scope < scope >
# Orchestrator runtime
bb daemon start
bb daemon tui # interactive orchestrator REPL
bb daemon bootstrap # install Pi runtime
2026-03-24 20:37:32 -05:00
```
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
### The Orchestrator ([bb-pi](#-bb-pi-orchestrator))
A built-in execution runtime that spawns and manages typed worker agents.
2026-03-05 16:54:03 -08:00
---
2026-03-24 21:10:39 -05:00
## 🧩 Core Features
2026-03-05 17:53:30 -08:00
2026-03-24 21:10:39 -05:00
### 💬 Agent Communication System
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
Structured message lifecycle for inter-agent coordination:
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
- **Message categories**: `HANDOFF` , `BLOCKED` , `DECISION` , `INFO`
- **Required acknowledgment** for high-signal categories (`HANDOFF` , `BLOCKED` )
- **Broadcast & role-based routing** — send to all agents or by role (`role:tester` )
- **Per-task threads** combining activity events, agent mail, and local interactions
- **Message states**: `unread` → `read` → `acked`
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
```bash
bd mail inbox
bd mail send --to < agent > --bead < id > --category HANDOFF --subject "Ready for review"
bd mail ack < message-id >
```
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
### 🔒 Work Reservations
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
Agents can lock scopes (file paths, task regions) to prevent conflicting work:
- TTL-based reservations (default 120 min)
- Liveness-aware conflict resolution — stale agents (15min no heartbeat) can be taken over
- File-based mutex prevents race conditions
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
### 📊 DAG Graph Visualization
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
DAG-oriented workspace for execution decisions:
2026-03-01 18:17:58 -08:00
2026-03-24 21:10:39 -05:00
- Task and dependency tab modes for different planning lenses
- Blocked chains highlighted, assignees on nodes
- Cycle detection and blocked-chain identification
2026-03-01 18:17:58 -08:00
2026-03-24 21:10:39 -05:00

2026-03-01 18:17:58 -08:00
2026-03-24 21:10:39 -05:00
### 👥 Swarm Coordination
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
Agent pool monitor with:
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
- **Archetypes** — typed agent roles (architect, engineer, reviewer, tester, investigator, shipper)
- **Templates** — preset team compositions (`feature-dev` , `bug-fix` , `full-squad` , `greenfield` , `research-and-discovery` )
- "Needs Agent" queue for unassigned work
- Pre-assigned queue and squad roster
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00

2026-03-01 18:17:58 -08:00
2026-03-24 21:10:39 -05:00
### 📡 Realtime Operations
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
- Live updates via Chokidar file watchers + Server-Sent Events
- Activity stream with session/task context
- Agent heartbeat and liveness tracking (active → stale → evicted)
2026-03-01 18:17:58 -08:00
2026-03-24 21:10:39 -05:00
### 🌐 Multi-Project Scope
- Project registry with scanner-backed discovery
- Single-project and aggregate modes
- Runtime scope switching without leaving the workspace
2026-03-01 18:17:58 -08:00
2026-03-24 21:10:39 -05:00
---
2026-03-02 20:46:18 -08:00
2026-03-24 21:10:39 -05:00
## 🤖 bb-pi Orchestrator
2026-03-05 17:40:49 -08:00
2026-03-24 21:10:39 -05:00
> 🚧 **Under active construction.** The orchestrator works but has known issues being fixed. Use your own coding agent alongside BeadBoard for now, or help us improve it!
2026-03-05 17:40:49 -08:00
2026-03-24 21:10:39 -05:00
bb-pi is BeadBoard's embedded execution runtime, built on [Pi ](https://github.com/badlogic/pi-mono ) ([@mariozechner/pi-coding-agent ](https://www.npmjs.com/package/@mariozechner/pi-coding-agent )). It runs a long-lived orchestrator per project that spawns typed worker agents, tracks their bead claims, and streams a live transcript.
2026-03-01 18:17:58 -08:00
2026-03-24 20:37:32 -05:00
**Working today (Phases 1-3):**
2026-03-24 21:10:39 -05:00
- Embedded orchestrator with BeadBoard-aware tools (`bb_spawn_worker` , `bb_worker_status` , `bb_create` , `bb_close` , etc.)
2026-03-24 20:33:15 -05:00
- Worker spawning with numbered display names (Engineer 01, Engineer 02...)
2026-03-24 21:10:39 -05:00
- **Capability-gated agent types** — architects/reviewers get read-only tools, engineers/testers get full code edit/write/bash
- **Template-based team spawning** via `bb_spawn_team` — spin up a full squad from a preset
- Bead-required workflow — every worker claims a bead, posts progress, closes with evidence
2026-03-24 20:37:32 -05:00
- Async coordination — non-blocking spawn with status polling and result reads
- Chat-style orchestrator transcript with realtime telemetry
2026-03-24 21:10:39 -05:00
- Interactive orchestrator REPL via `bb daemon tui`
2026-03-01 18:17:58 -08:00
2026-03-24 20:37:32 -05:00
**Known issues being fixed:**
2026-03-24 20:33:15 -05:00
- Double-reply rendering in orchestrator chat
2026-03-24 20:37:32 -05:00
- Silent failures — errors not yet surfaced to UI
2026-03-24 20:33:15 -05:00
- Session race condition under rapid use
2026-03-05 16:54:03 -08:00
2026-03-24 20:37:32 -05:00
**Phases 4-7** (launch-anywhere UX, agent presence in views, hardening, full test coverage) are on the roadmap. See [docs/plans/2026-03-05-embedded-pi-roadmap.md ](docs/plans/2026-03-05-embedded-pi-roadmap.md ).
2026-03-01 18:17:58 -08:00
---
2026-03-24 21:10:39 -05:00
## 🏗️ Architecture
2026-03-24 20:37:32 -05:00
```
2026-03-24 21:10:39 -05:00
┌─────────────────────────────────────────────────────────────┐
│ BeadBoard UI │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Social │ │ Graph │ │ Activity │ │ Swarm │ │
│ │ View │ │ View │ │ View │ │ Panel │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
│ │ │ │
┌────▼──────────────▼──────────────▼──────────────▼────┐
│ bb CLI / bb-pi runtime │
│ agent register · agent send · daemon tui · spawn │
└──────────────────────────┬───────────────────────────┘
│
┌────────────────┼────────────────┐
│ │ │
┌─────▼─────┐ ┌──────▼──────┐ ┌──────▼──────┐
│ SSE │ │ Dolt │ │ Chokidar │
│ Events │ │ (SQL DB) │ │ Watchers │
└───────────┘ └─────────────┘ └─────────────┘
│ │ │
└────────────────┼────────────────┘
│
┌──────▼──────┐
│ bd │
│ (Beads CLI) │
└─────────────┘
2026-03-24 20:37:32 -05:00
```
2026-03-24 21:10:39 -05:00
### Tech Stack
2026-03-05 16:54:03 -08:00
| Layer | Technologies |
|-------|-------------|
2026-03-24 20:33:15 -05:00
| Frontend | Next.js 15 (App Router), React 19, TypeScript (strict) |
2026-03-05 16:54:03 -08:00
| Styling | Tailwind CSS, Radix UI, Framer Motion |
2026-03-24 20:33:15 -05:00
| Graph | @xyflow/react , Dagre |
2026-03-24 21:10:39 -05:00
| Database | Dolt (version-controlled SQL) |
| Realtime | Chokidar watchers, Server-Sent Events |
| Agent Runtime | @mariozechner/pi -coding-agent (bb-pi) |
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
### Data Flow
2026-03-01 18:17:58 -08:00
2026-03-24 21:10:39 -05:00
1. **Write path** : `bd` commands write to `.beads/issues.jsonl` and Dolt DB
2. **Read path** : UI queries Dolt SQL (falls back to JSONL when Dolt is unavailable)
3. **Realtime** : `bd` touches `.beads/last-touched` → Chokidar fires → SSE event → UI update
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
### Key Concepts
2026-03-01 18:17:58 -08:00
2026-03-24 21:10:39 -05:00
| Component | Purpose |
|-----------|---------|
| `bd` | Beads CLI — task and dependency management |
| `bb` / `beadboard` | BeadBoard CLI — dashboard, orchestrator host, agent commands |
| `bb-pi` | Embedded Pi execution runtime (under construction) |
| `beadboard-driver` | Agent skill — operating contract for coordination |
2026-03-01 18:17:58 -08:00
2026-03-24 21:10:39 -05:00
---
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
## 🌍 Platform Support
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
Runs on macOS, Linux, and Windows.
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
- **macOS / Linux**: `bash ./install/install.sh` installs shims to `~/.beadboard/bin`
- **Windows**: Path handling canonicalizes drive letter casing and backslash normalization. Mixed WSL2 + Windows setups require mirrored networking.
---
## 📁 Project Structure
```text
beadboard/
├── src/
│ ├── app/ # Next.js App Router pages + API routes
│ ├── components/ # UI: shared, graph, social, swarm, agents, sessions
│ ├── hooks/ # React hooks (subscriptions, URL state, etc.)
│ ├── lib/ # Core domain logic (parser, types, mail, registry, etc.)
│ └── tui/ # Orchestrator TUI + agent tools
├── skills/
│ └── beadboard-driver/ # Agent skill package (runbook + scripts + tests)
├── install/ # Platform install scripts
├── docs/ # PRDs, roadmaps, ADRs, screenshots
└── tests/ # Test suite (explicitly enumerated in package.json)
2026-03-24 20:33:15 -05:00
```
2026-03-05 16:54:03 -08:00
---
2026-03-24 21:10:39 -05:00
## 🛠️ Scripts
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
```bash
npm run dev # Development server (localhost:3000)
npm run build # Production build
npm run start # Production server
npm run typecheck # TypeScript validation (tsc --noEmit)
npm run lint # ESLint
npm run test # Full test suite
```
2026-03-05 16:54:03 -08:00
2026-03-24 21:10:39 -05:00
> New test files must be added to the `test` script in `package.json` — the suite is explicitly enumerated, not auto-discovered.
2026-03-05 16:54:03 -08:00
---
2026-03-24 21:10:39 -05:00
## 🤝 Contributing
2026-03-25 00:22:47 -05:00
We welcome contributions from humans and AI agents. See ** [CONTRIBUTING.md ](CONTRIBUTING.md )** for the full guide.
2026-03-24 20:33:15 -05:00
2026-03-25 00:22:47 -05:00
Quick version:
1. Find work: check [GitHub Issues ](https://github.com/zenchantlive/beadboard/issues ) or run `bd list --label contrib:open`
2. Small PRs preferred (under ~100 lines). For larger changes, open an issue first.
3. Run the gates: `npm run typecheck && npm run lint && npm run test`
4. PR against `main`
2026-03-24 20:33:15 -05:00
2026-03-25 00:48:04 -05:00
**[Join the Discussion ](https://github.com/zenchantlive/beadboard/discussions )** to coordinate on contributions, get help, or discuss ideas.
2026-03-05 16:54:03 -08:00
2026-03-01 18:17:58 -08:00
---
2026-03-24 21:10:39 -05:00
## 📄 License
2026-03-05 16:54:03 -08:00
[MIT ](LICENSE )
2026-03-24 21:10:39 -05:00
---
## 🙏 Acknowledgments
Built on [Beads ](https://github.com/steveyegge/beads ) by [Steve Yegge ](https://github.com/steveyegge ), inspired by [Gastown ](https://github.com/steveyegge/gastown ). The bb-pi execution runtime uses [Pi ](https://github.com/badlogic/pi-mono ) by [@mariozechner ](https://github.com/mariozechner ).