$ symphony tui ./WORKFLOW.md

One terminal.
One Kanban board.
Four AI coding agents.

Codex · Claude Code · Gemini · Pi — pick per ticket, run in parallel inside isolated git worktrees, watch live in a Jira-style TUI you never have to leave your terminal for.

symphony@tui — WORKFLOW.md running=2 · retry=1 · tokens=111,840
oh-my-symphony Kanban TUI showing columns Todo, In Progress, Review, Done, Archive with cards DEMO-104, DEMO-098, DEMO-122 and live token counters and running indicators.

columns are your tracker's states · cards show active agent, turn count, last event, accumulated tokens · ● running, ↻ retry queued, ✓ done.

> Why Symphony

A thin layer on top of OpenAI's battle-tested Symphony orchestrator — with four agents, a Jira-style TUI, and operator-grade tooling.

[01] vendor

No vendor lock-in

Swap Codex ↔ Claude Code ↔ Gemini ↔ Pi with one YAML line. New agents drop in behind a thin AgentBackend Protocol — four steps, no orchestrator changes.

[02] visibility

Live progress

Turn count, last event, accumulated tokens, and rate-limit headroom for every running card. No more "is it stuck or just thinking?" — and no SaaS dashboard to log into.

[03] concurrency

Parallel by default

Every ticket gets its own git worktree workspace. Agents can't step on each other. Headless mode mirrors progress to a Markdown file you can tail -F.

[04] zero-saas

No SaaS, no API key to try

File-based Markdown Kanban means tickets live in git next to your code. Linear is supported as a drop-in tracker — you don't need it.

[05] upstream

Battle-tested core

Forked from OpenAI's Symphony reference implementation. Orchestrator, scheduler, retry, workspace lifecycle, and prompt renderer are all upstream.

[06] tooling

Operator-grade tooling

symphony doctor catches the five most common first-run failures in one pass. symphony service runs the orchestrator as a managed background daemon. A web viewer adds Pause / Resume.

> Try it in 60 seconds

No AI CLI required — Symphony ships a fake-agent demo so you can see the Kanban move before installing anything else.

  1. 01

    Install

    One command. Isolated venv via pipx; nothing leaks into your global Python.

  2. 02

    Launch the TUI

    Point Symphony at any WORKFLOW.md. Columns become Kanban lanes, cards become tickets.

  3. 03

    Watch agents pick up tickets

    Move a card to In Progress; the configured agent claims it, runs in its own git worktree, and streams turn counts + tokens live.

~/code/your-project
# 1. install (isolated, no global Python pollution)
$ pipx install oh-my-symphony

# 2. (optional) run the built-in demo with a fake agent
$ symphony tui ./examples/WORKFLOW.fake.md

# 3. then point it at your real workflow
$ symphony tui ./WORKFLOW.md

# 4. health-check your install (catches the 5 most common first-run failures)
$ symphony doctor

> Agent matrix

Each backend is a thin adapter over the agent's official CLI. Set agent.kind in your WORKFLOW.md — or mix backends per ticket.

Agent CLI invocation Transport Resume Best for
Codex codex app-server JSON-RPC stdio · multi-turn native Original Symphony agent · long codebase sessions
Claude Code claude -p --output-format stream-json NDJSON events · per-turn subprocess --resume Complex multi-file refactors · long planning
Gemini gemini -p "" one-shot per turn · stdin → stdout stateless Quick edits · large-context one-shots
Pi pi --mode json -p "" JSONL events · per-turn subprocess --session Multi-backend (Anthropic / OpenAI / Gemini / Bedrock under one CLI)
WORKFLOW.md
# pick an agent — one YAML line
agent:
  kind: claude_code   # or: codex | gemini | pi
  model: claude-sonnet-4-6

# or mix per ticket via card front-matter

> Who this is for

SOLO

Solo devs

Running unattended overnight refactors across dozens of tickets while you sleep. macOS keep-awake stops the lock screen from killing your pipeline.

TEAM

Teams

Parallelizing bug fixes, doc updates, or migration tickets across multiple coding agents simultaneously — without juggling four chat windows.

RESEARCH

Researchers & reviewers

Comparing how Codex, Claude Code, Gemini, and Pi tackle the same task side by side — identical prompts, identical workspaces.

Stop juggling AI coding CLIs.

One terminal. One Kanban. Four agents working in parallel — visible, isolated, and yours.

Forked from openai/symphony Apache 2.0 Python 3.12+ Built on Textual