Skip to content
Orkestra
v1.0 · MIT · self-hosted

Local ticketing your LLM agents can swarm against.

Orkestra is a single ~20 MB Docker container that exposes 13 MCP tools and replies in TOON — a compact format that cuts ~65% off every response. No cloud. No rate limits. No per-request bill.

  • 13MCP tools
  • ~65%fewer tokens
  • ~20 MBcontainer
  • 0cloud calls
PROJECT_ID=myapp go run ./cmd/server
sqlite WAL ready · /data/orkestra.db
mcp listener on :8080 · 13 tools registered
TOON/1 · backups every 1h
Live demo

Why TOON wins on tokens

Edit the JSON on the left. The right side is what your agent actually sees in its context window. The badge in the middle is the savings.

JSON~54 tokens
−46%
TOON format uses approximately 46% fewer tokens than JSON
TOON~29 tokens
TOON/1 T{id:myapp-001,t:"Fix auth bug",s:ip,p:h,typ:bug,lbl:[auth,security],ca:2024-01-15,ua:2024-01-15T10:00:00Z}
Why Orkestra

Designed for autonomous agents

Purpose-built primitives for agentic workflows.

Token economy

TOON cuts ~65% off every reply

Compact field aliases, enum codes, and bare values mean a 400-token JSON ticket lands in your context as ~120 TOON tokens.

Local-first

Your tickets never leave the box

A single ~20 MB Docker image. SQLite WAL. No telemetry, no phone-home, no cloud sync. The only network surface is the MCP HTTP listener.

Multi-agent native

Atomic claim, etag locking, sequential gates

Built so a swarm of agents can chew through a backlog without stepping on each other. No leader election, no leases — just one CAS.

Multi-agent native

Built for swarms, not single agents

Spawn an epic. Drop child tickets. Watch a fleet of agents pick them up in parallel — ticket_claim is an atomic CAS, so no two agents ever grab the same ticket.

EP myapp-100 Auth system myapp-101 JWT middleware Agent A myapp-102 OAuth provider Agent B myapp-103 Session store Agent C myapp-104 Audit log Agent D
One epic. Four agents. ticket_claim is atomic — no two agents grab the same one.
13 tools, three categories

Skim the surface area

Filter by category, search by keyword, click any card to expand its full schema. Same data your agent sees on /skill.

  • Create a new ticket. Always lands in backlog (s=bk).

  • Fetch a single ticket with full relations (comments, links, child IDs).

  • Atomically take ownership. Moves bk/td/bl → ip.

  • Update any field. Always supply etag when working with concurrent agents.

  • Soft-delete. Sets archived_at. Excluded from all queries.

  • Filter tickets across any combination of fields. Ordered by created_at DESC.

  • Priority-ordered view of bk tickets. Use this to decide what to do next.

  • Kanban snapshot grouped by status.

  • Full-text search across title, description, labels via SQLite FTS5.

  • List children of a ticket, sorted by exec_order.

  • Mermaid flowchart of ticket hierarchy with status colors.

  • Append a note to a ticket.

  • Create a directional relationship between two tickets.

Get started

Install in minutes

Auto-detects Claude Code, Cursor, Copilot, Windsurf, and Zed.

30-second install

Pick your setup. They all land at the same place: a local MCP endpoint your agent talks to.

git clone https://github.com/Vijay431/Orkestra
cd Orkestra
PROJECT_ID=myapp ./install.sh

Detects Claude Code · Cursor · Copilot · Windsurf · Zed · Continue.dev and wires up the MCP entry for you.

Stop paying per ticket.

Orkestra runs offline, on your hardware, with the same MCP surface as the cloud alternatives. MIT-licensed. Fork it, ship it.