Live Sessions
Live Sessions is the core real-time monitoring and control interface for Coral. It lets you observe and interact with AI coding agents (Claude and Gemini) as they work in parallel git worktrees — all from a single browser tab.
Each live session represents one agent running in a tmux session. The dashboard provides a browser-based view of the agent's terminal output, activity timeline, tasks, notes, and conversation history, all updating in real time.
Getting started
Start the dashboard
# Dashboard only
coral
# Dashboard + agents for all worktrees in current directory
launch-coral
Open http://localhost:8420 in your browser. The sidebar shows Live Sessions at the top with any running agents grouped by worktree name.
Launch a new session
Click the + New button in the Live Sessions sidebar header. The launch modal offers three types:
AI Agent
Launch a single agent with an optional initial prompt and message board subscription.
- Fill in the fields:
- Agent Name (optional) — A display name like "Auth Feature"
- Working Directory — The git repo path (click Browse to navigate)
- Agent Type — Claude or Gemini
- Flags (optional) — CLI flags like
--verbose. Use the shortcut buttons for--chromeand--dangerously-skip-permissions. - Prompt (optional) — An initial instruction to send to the agent on launch
- Click Launch.

Agent Team
Launch multiple agents on a shared message board with per-agent roles and behavior prompts. See Agent Teams & Message Board for the full guide.
Terminal
Launch a plain shell session in a tmux pane — useful for running manual commands alongside your agents.
The new session appears in the sidebar. Click it to select.
!!! tip
You can also launch agents from the command line with launch-coral <path-to-worktrees>, which discovers subdirectories and creates one agent per worktree automatically.
Session view
When you select a live session, the main panel shows three areas: the session header, the terminal area, and the command pane.

Session header
The header displays:
- Status dot — Color-coded: green (active), yellow (waiting for input), gray (stale)
- Agent type badge —
CLAUDEorGEMINIwith distinct styling - Session name — Display name or worktree folder name
- Branch — Current git branch with a copy-to-clipboard button
- Goal — High-level objective parsed from
||PULSE:SUMMARY||markers - Status — Current task parsed from
||PULSE:STATUS||markers
The header also contains action buttons:
| Button | Description |
|---|---|
| Info | View session metadata (tmux session name, attach command, working directory, log path, branch, latest commit) |
| Attach | Open a native terminal window attached to the agent's tmux session |
| Restart | Restart the agent in the same working directory (optionally add new flags) |
| Kill | Terminate the tmux session and stop the agent |
Waiting for input banner
When the agent needs a response, a yellow banner appears above the terminal:
⏳ Agent is waiting for input
The sidebar also shows a NEEDS INPUT badge on that session.
Terminal area
The terminal area shows the agent's live output. Two rendering modes are available:
- xterm.js — Full terminal emulation with colors and formatting (default for Claude)
- Semantic blocks — Parsed output blocks (default for Gemini)
You can change the default renderer per agent type in Settings (gear icon, top right).
!!! info When you select text in the terminal, updates pause automatically to prevent the selection from being lost. A "Updates paused — text selected" badge appears until you deselect.
Command pane
The command pane at the bottom has a resizable toolbar and a text input area.
Toolbar buttons (left to right):
| Section | Buttons | Description |
|---|---|---|
| Mode toggles | Plan Mode, Accept Edits, Bash Mode | Toggle Claude Code modes via Shift+Tab |
| Macros | /compact, /clear, custom macros |
Send common commands with one click |
| Add macro | + | Create a custom macro button with a label and command |
| Navigation | Esc, ↑, ↓, ↵, Send | Send navigation keys or submit the typed command |
Type any command in the textarea and click Send (or press Enter) to send it to the agent.
!!! tip Your input text is preserved per-session — switch between sessions without losing what you were typing.
Side panel
The right-side panel has four tabs: Activity, Tasks, Notes, and History. The panel is resizable by dragging its left edge.
Activity
The Activity tab shows a real-time event timeline of everything the agent is doing. Each event has an icon, description, and timestamp.
Event types include:
- Read, Write, Edit — File operations
- Bash — Shell commands
- Grep, Glob — Search operations
- Web — Web fetches
- Tasks, Subagents — Task and sub-agent activity
- Status, Goal, Confidence — PULSE protocol events
- Stop/Notify — Agent pause events
Use the Filter dropdown to toggle event categories on or off. An activity chart at the bottom shows the event distribution over time.
Tasks
Create and manage task checklists for each session. Tasks are drag-reorderable and persist across Coral restarts.
- Click to add a new task
- Check the box to mark complete
- Drag to reorder
Notes
Write markdown notes about each session. Click the notes area to edit, and the content renders as formatted markdown when you click away.
History
The History tab shows the live JSONL conversation log — the full chat transcript between you and the agent. It displays:
- User messages — Your prompts and commands
- Assistant messages — Agent responses
- Tool cards — Expandable cards for Bash commands, Edit diffs, Read file contents, and other tool uses
The transcript polls for updates every second while the tab is active.
Session management
Renaming a session
Right-click a session in the sidebar to open the context menu and set a custom display name.
Restarting a session
Click Restart in the session header. A modal appears where you can optionally add new CLI flags. The agent restarts in the same working directory with a new session UUID.
Resuming a historical session
You can pick up where a previous session left off:
- Find the completed session in the History section of the sidebar.
- Click the Resume button in the historical session's header.
- The Resume modal shows a list of currently live agents. Select which agent should continue the session.
- Coral restarts the selected agent with
--resume, loading the full conversation context from the previous session.
!!! warning Resume is supported for Claude agents only. Gemini does not support session resume.
!!! info
If Coral restarts, resumed sessions are automatically re-resumed via resume_persistent_sessions(). The resume linkage is stored in the database.
Session info modal
Click Info to view full session metadata:
| Field | Description |
|---|---|
| Agent Name | Display name of the session |
| Agent Type | claude or gemini |
| Tmux Session | Full tmux session name (e.g., claude-<uuid>) |
| Attach Command | tmux attach -t <session> with a Copy button |
| Working Directory | Filesystem path for the agent's repo |
| Log Path | Path to the agent's log file |
| Pane Title | tmux pane title |
| Branch | Current git branch |
| Latest Commit | Most recent commit hash and message |
| Prompt | The initial prompt sent to the agent (if any) |
| Message Board | Clickable link to the agent's message board (if subscribed) |
How it works
- Each session maps to one tmux session running one agent in one working directory
- Sessions are identified by UUIDs (tmux session name:
{agent_type}-{uuid}) - The dashboard auto-discovers sessions by querying tmux for panes matching the UUID naming convention
- WebSocket
/ws/coralprovides coral-wide session list updates every 3 seconds - WebSocket
/ws/terminal/{name}streams raw terminal content at 0.5-second intervals - Sessions persist across Coral restarts — the
live_sessionsdatabase table tracks registered sessions and relaunches them on startup - Session prompts and board subscriptions are persisted, so agents are re-sent their prompt and re-subscribed to their board on restart
Configuration
| Setting | Method | Default | Description |
|---|---|---|---|
| Dashboard port | CORAL_PORT env var or --port |
8420 |
Web dashboard port |
| Dashboard host | --host flag |
0.0.0.0 |
Bind address |
| Default renderer | Settings modal | xterm (Claude), blocks (Gemini) |
Terminal rendering mode per agent type |
| Default agent type | Settings modal | claude |
Default for new sessions |
| Default working directory | Settings modal | Coral root | Pre-filled path in launch modal |
| Fit pane width | Settings modal | off | Auto-resize tmux pane to match browser width |
| Custom macros | Toolbar + button | /compact, /clear, Reset |
Configurable command buttons |
| Log directory | TMPDIR env var |
/tmp |
Agent log file location |
Database location: ~/.coral/sessions.db (SQLite, WAL mode)