Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
No. 1950Tools index

Previous survey · No. 1838 ·

Pricing
Open Source
Type
TOOL
Use case
Coding
Interfaces
Web
GitHub
3 stars
Date

About

An open-source control room that visualizes AI coding agents (Claude Code, Codex, opencode) editing a repository in real time, flagging file collisions before they cause merge conflicts. It uses a lightweight install hook rather than SDK instrumentation, and adds a live 3D agent map, dependency blast-radius view, and optional LLM-generated work summaries.

What it does

Symphony puts a small script inside each teammate's coding agent that reports every file the agent touches to a shared Python server. The server keeps that state in your own Supabase database and pushes it to a browser board, so you can see which person and which agent holds which file right now. When a second agent is about to change a file someone else has claimed, the agent itself gets a warning in its context before it saves, and Slack can message both people.

Why it's ranked here

Most agent observability traces code you wrote against an SDK. Symphony watches off-the-shelf agents instead, and the collision warning reaches the agent, not just a dashboard someone may not be watching. The engineering behind that is careful: retried events cannot double count, alerts run off the edit path so they never slow an agent down, and untrusted names and paths are capped before they reach Slack or an agent prompt. MIT licensed, Python 3.11 or newer, self-hosted. The catch is that it assumes a team, a Supabase project and some operations work.

What's good

Old claims are ranked by age rather than dropped. A claim seen in the last 30 minutes reads as a hard conflict; older ones soften through one day, two days, a week and beyond, and an agent never gets warned about its own earlier edit. Slack alerts go to each person directly, fire once per file and group of people, and repeat at most every six hours. Security details are specific: request bodies are capped at 128 KB for hook calls, tokens are compared in constant time, and the token for the live event stream expires after an hour. AI summaries switch off cleanly without a key.

Tradeoffs

You need a Supabase project; there is no local-only storage mode. The installer appends to your global Claude Code and Codex hook settings and writes an opencode plugin into your home directory. File claims do not expire with age: they clear only when that agent pushes or the file leaves its uncommitted changes, so abandoned sessions linger as stale notices. The deployment guide says rate limiting is not enforced in the app. Optional AI features send board content to OpenAI or Anthropic, OpenAI first when both keys are set. Older internal naming from a previous project name is still visible in code and settings.

How to use it well

It fits a small team running several coding agents in parallel against one repository, where two agents quietly rewriting the same file is a real cost. Run the doctor check after installing, restart open agent sessions, and add the team roster so identities group under people. Keep the write token private, since the app leans on it instead of rate limits. It does not trace prompts, costs or agent reasoning in the way SDK tracing tools do, and a solo developer with one agent gets little from it.

Technical notes+

symphony/hooks.py mints a deterministic event id from runtime, session, tool, sorted paths and a nanosecond timestamp, so a spooled retry reuses its id and the ingest RPC's on-conflict-do-nothing makes delivery idempotent; git calls there run with 0.3 second timeouts. symphony/store.py talks to Supabase only through named RPCs over one pooled requests session. symphony/pre_edit_advisory.py tiers claims at 30 min, 24h, 48h and 7d, excludes the requester, and caps output at 6 editors and 2000 characters. symphony/conflict_alerts.py runs in a daemon thread, escapes Slack markup, and caps names at 8 and editors at 50. symphony/server.py streams bodies against per-route caps (16 MB tree, 24 MB ask) and compares tokens as bytes. symphony/llm.py tries OpenAI then Anthropic.

Observed

License
MIT (LICENSE, pyproject.toml)
Language
Python, requires 3.11 or newer
Server framework
FastAPI, with uvicorn as an optional serve extra
Storage backend
Supabase required, accessed only through service-role RPCs
Supported agents
Claude Code, Codex and opencode via installed hooks
Deployment targets
Local server or Modal, per symphony/README.md
Rate limiting
Not enforced in-app, per symphony/README.md
LLM providers
Optional OpenAI or Anthropic, OpenAI tried first (symphony/llm.py)
Test runner
pytest via the dev extra, testpaths set to tests in pyproject.toml

Read from README.md, pyproject.toml, LICENSE, docs/DESIGN.md, symphony/README.md, symphony/server.py, symphony/hooks.py, symphony/hook_auth.py, symphony/store.py, symphony/conflict_alerts.py, symphony/llm.py, symphony/pre_edit_advisory.py, .env.example, symphony/requirements.txt.

What it can do

  • Visualize AI coding agents editing a repository in real time

    File-edit events from AI coding agents → Live dashboard view

  • Flag file edit collisions between agents before merge conflicts occur

    File-edit events → Collision alerts

  • Display a live 3D map of agent activity

    File-edit events → 3D agent map

  • Show dependency blast-radius view for edited files

    Repository file dependencies → Blast-radius visualization

  • Generate LLM-based summaries of agent work

    Agent activity/edit data → Text summary

  • Stream file-edit events into a self-hostable dashboard

    File-edit events from AI coding agents → Shared dashboard data

Tags

ai-agentsclaude-codecodexdeveloper-toolsobservabilityreal-timesupabasecollision-detection

Tech Stack

Python

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.