Kata Symphony

Headless agent
orchestrator

Polls Linear for issues, dispatches parallel agents, manages the full PR lifecycle. Unattended, from Todo to merge.

symphony WORKFLOW.md --port 8080

v0.1.0 · Rust · Open Source

Capabilities

Autonomous ticket
execution engine

Linear Integration

Polls a Linear project for candidate issues. Manages state transitions, respects priorities, and handles dependency graphs automatically.

Parallel Agents

Configurable concurrency with per-state slot limits. Multiple agents work on different issues simultaneously across isolated workspaces.

Multi-Turn Sessions

Agents continue on the same thread across turns, preserving conversation history. Context carries forward through review cycles.

Full PR Lifecycle

Agents create PRs, address review feedback, resolve comment threads, and merge approved PRs. The complete cycle runs without intervention.

Live Dashboard

HTTP dashboard with running sessions, token tracking, retry queue, and polling stats. JSON API for programmatic access. Auto-refreshes every 2 seconds.

Workspace Strategies

Clone-local with hard links for speed, clone-remote for full isolation, or worktree for lightweight branching. Auto-cleanup on terminal state.

Lifecycle

From Todo to merge

01

Todo

Human queues issue in Linear

Human
02

In Progress

Agent implements in isolated workspace

Agent
03

Agent Review

Agent addresses PR review comments

Agent
04

Human Review

PR awaits human approval

Human
05

Merge

Agent merges approved PR

Agent
Human can set Rework at any point to restart from scratch
Observability

Live dashboard

localhost:8080
3 Running
1 Retry
7 Claimed
12 Done
IssueStateElapsedWorker
KAT-142 In Progress 4m 32s local-0
KAT-138 Agent Review 12m 08s local-1
KAT-145 In Progress 1m 15s local-2

Common Questions About Kata Symphony

How do I install Kata Symphony?
Symphony is a Rust binary. Clone the repo and build with cargo build --release. The binary lives at target/release/symphony. Run it with a WORKFLOW.md config file and a Linear API key.
What agent runtimes does Symphony support?
Symphony dispatches to Codex (OpenAI's coding agent) via the codex app-server interface. The agent config in WORKFLOW.md controls the command, stall timeout, and approval policy.
Can Symphony manage multiple projects?
Yes. Run one Symphony instance per project, each with its own WORKFLOW.md. Different projects can use different workflow configurations, workspace settings, and prompt templates. Use different ports if running multiple instances.
How does the ticket lifecycle work?
Issues flow: Todo (queued) → In Progress (agent working) → Agent Review (addressing PR feedback) → Human Review (waiting for approval) → Merging (agent merges) → Done. Humans can also set Rework to restart fresh.
What happens when an agent fails?
Failed sessions enter a retry queue with configurable backoff. The dashboard shows retry timing and error details. If retries exhaust, the issue stays visible for manual triage. Stall detection catches hung agents.
How is Symphony different from Kata Orchestrator?
Orchestrator is a developer-facing harness that you interact with inside your coding agent (Claude Code, Gemini CLI, etc.). Symphony is a headless daemon that runs unattended, polling Linear and dispatching agents without human involvement. Orchestrator is hands-on; Symphony is hands-off.

Start orchestrating

Clone the repo, configure your WORKFLOW.md, and let Symphony handle the rest.

cargo build --release
View on GitHub