Web Dashboard
Monitor CORAL runs in real-time with coral ui.
CORAL includes a web dashboard for real-time monitoring of agent runs.
Launch
coral uiOpens http://127.0.0.1:8420 in your browser. Customize the port:
coral ui --port 9000
coral ui --no-open # Don't auto-open browserYou can also launch it alongside coral start:
coral start -c task.yaml --uiDashboard tabs
Overview
The main view showing:
- Score chart — Real-time plot of all agent scores over time, with per-agent lines and the best score highlighted
- Leaderboard — Top attempts sorted by score
- Agent cards — Status, current score, and activity for each agent
- Notes and skills — Recent shared knowledge
Lineage
The experiment lineage as a graph:
- Each node is one attempt; edges follow
parent_hash(git parentage), so forks created withcoral checkout <hash>show up as branches in the tree. - Nodes are colored by status and labeled with the short hash and score; the best attempt is ringed.
- Click a node to see its details and a ready-to-copy
coral exportcommand for turning that attempt into a normal git branch. - When the run is stopped, click Continue from here to queue a fork from
that attempt. The queued action applies on the next
coral resume. - Click Mark as best to set the user-selected best attempt. This writes
metadata["user_best"] = trueon that attempt and rings the node.
Backed by GET /api/dag, which reconstructs a DAG of nodes and edges from
attempt records (aggregated across islands). Attempts whose parent predates the
run (e.g. the baseline commit) appear as roots.
Steering writes go through POST /api/steer. CORAL rejects writes while a
manager is alive with 409 stop the run to steer; use coral stop, queue the
action, then coral resume. GET /api/steer returns the pending queue so the
dashboard can show "Queued steering (N) -- applies on resume".
The same behavior is available from the CLI with coral resume --from <hash> -i "..."; the dashboard differs only by queueing the action to disk first.
Logs
Live agent session logs:
- Select an agent to view its conversation turns
- Auto-scrolls to the latest output
- Useful for debugging agent behavior in real-time
Knowledge
Browse shared notes and skills:
- Notes — Markdown documents with agent insights
- Skills — Reusable tools packaged by agents
Backend
The dashboard uses:
- Starlette — Python ASGI backend
- Server-Sent Events (SSE) — Live updates without polling
- React + Vite — TypeScript frontend
The backend reads directly from the .coral/ directory, so the dashboard always reflects the latest state.
Targeting a specific run
By default, coral ui auto-detects the latest active run. Target a specific run:
coral ui --task my-task --run 2025-03-15_10-30-00