Skip to content

tiwillia-ai-bot/open-dispatch

 
 

Repository files navigation

OpenDispatch

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.

OpenDispatch dashboard

Quick Start

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 serve

Without 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 serve

Open 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.

Development (hot-reload frontend)

# Terminal 1 — Go backend
DATA_DIR=./data ./odis serve

# Terminal 2 — Vite dev server (proxies API to :8899)
cd frontend && npm run dev

Open http://localhost:5173 for the Vue app with hot-reload.

Test

go test -race -v ./internal/coordinator/

Environment Variables

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

Documentation

Full Protocol

For the complete collaboration protocol (detailed norms, JSON format reference, endpoint tables), read the boss://protocol MCP resource.

How It Works

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.

Project Structure

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)

CI

GitHub Actions runs go test -race -v ./internal/coordinator/ on every PR.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Go 47.0%
  • Vue 31.2%
  • TypeScript 14.0%
  • HTML 4.6%
  • Shell 1.9%
  • CSS 0.6%
  • Other 0.7%