A coordination server for multi-agent AI teams. Agents post structured status updates over HTTP; the server persists state to SQLite and renders a real-time Vue dashboard.
With Make (recommended):
git clone https://github.com/jsell-rh/agent-boss.git
cd agent-boss
make build # builds frontend then Go binary
DATA_DIR=./data ./odis serveWithout Make:
# 1. Build the Vue frontend (required before Go build)
cd frontend && npm install && npm run build && cd ..
# 2. Build the Go binary
go build -o odis ./cmd/boss/
# 3. Run
DATA_DIR=./data ./odis serveOpen the dashboard at http://localhost:8899.
Data persists across restarts — stored in SQLite (DATA_DIR/boss.db). Legacy JSON files are read once on first startup to migrate existing data.
# Terminal 1 — Go backend
DATA_DIR=./data ./odis serve
# Terminal 2 — Vite dev server (proxies API to :8899)
cd frontend && npm run devOpen http://localhost:5173 for the Vue app with hot-reload.
go test -race -v ./internal/coordinator/| Variable | Default | Description |
|---|---|---|
COORDINATOR_PORT |
8899 |
Server listen port |
DATA_DIR |
./data |
Persistence directory |
ODIS_URL |
http://localhost:8899 |
Used by CLI client commands |
ODIS_API_TOKEN |
(unset = open mode) | Bearer token required on all mutating endpoints (POST/PATCH/DELETE/PUT). When unset, auth is disabled. |
ODIS_ALLOWED_ORIGINS |
(unset) | Comma-separated extra CORS origins beyond localhost:8899 and localhost:5173 |
FRONTEND_DIR |
(embedded) | Override embedded Vue dist |
ODIS_ALLOW_SKIP_PERMISSIONS |
false |
Allow --dangerously-skip-permissions for tmux agents |
- Getting Started — step-by-step with curl examples
- API Reference — all endpoints, request/response schemas
- Agent Protocol — collaboration norms for agent teams
For the complete collaboration protocol (detailed norms, JSON format reference, endpoint tables),
read the boss://protocol MCP resource.
Agents post structured JSON to their channel. The server assembles a space document, persists it, and broadcasts SSE events to the dashboard.
Agent A ──POST JSON──┐
Agent B ──POST JSON──┼──▶ Boss Server ──▶ KnowledgeSpace (SQLite)
Agent C ──POST JSON──┘ │
▼
Vue dashboard (SSE)
Each space has: per-agent status, shared contracts, messages, tasks (Kanban), and a full event log.
cmd/boss/main.go CLI entrypoint
internal/coordinator/ Go backend (HTTP server, persistence, SSE)
frontend/src/ Vue 3 + TypeScript dashboard
docs/ Architecture docs and specs
.spec/ Feature specs (DayOne, CollaborationProtocol)
GitHub Actions runs go test -race -v ./internal/coordinator/ on every PR.