Skip to main content
The Longshot Dashboard is a Rich Terminal UI that provides real-time monitoring for the massively parallel autonomous coding system. It renders a fullscreen multi-panel dashboard at 4 Hz, showing agent grids, planner trees, merge queues, and activity feeds.

Starting the Dashboard

The dashboard is implemented in dashboard.py and can be run in several modes:

Default Mode (Spawns Orchestrator)

python dashboard.py
This spawns the orchestrator as a subprocess and displays its output.

Demo Mode

Test the dashboard with synthetic data without needing a running orchestrator:
# Default demo with synthetic agent data
python dashboard.py --demo

# Demo with custom number of agent slots
python dashboard.py --demo --agents 100

Pipe Mode

Pipe orchestrator output directly to the dashboard:
node packages/orchestrator/dist/main.js | python dashboard.py --stdin

Follow Mode

Tail the latest run logs live (useful with the Poke workflow):
python dashboard.py --follow
This watches logs/run-*.ndjson files and displays the most recent one in real-time.

Dashboard Layout

The dashboard consists of several panels:

Header Panel

Shows:
  • Longshot branding and elapsed time
  • Planning status - Displays “PLANNING” with animated dots when the planner is thinking
  • Active agents and total tasks count
  • Merged branches count

Metrics Panel (Left Side)

Displays key performance indicators:
  • Iteration - Current planning iteration number
  • Commits/hr - Throughput rate
  • Completed - Progress (e.g., “45/100 45%”)
  • Failed - Number of failed tasks
  • Pending - Tasks waiting to be assigned
  • Merge rate - Percentage of successful merges (color-coded: green >90%, yellow >70%, red otherwise)
  • Tokens - Total tokens used, with in-flight estimate
  • Est. cost - Estimated cost based on token usage
  • Velocity - Tasks completed per minute with sparkline graph
  • Running - Currently active agents

Planner Tree (Right Side)

Two side-by-side tree views:

In Progress Panel

Shows active tasks in a hierarchical tree:
  • Root planner at the top
  • Subplanners and workers as child nodes
  • Progress bars for each task (■■■■ when complete, □□□□ when pending)
  • Status indicators (running, assigned, pending)
  • Task descriptions and durations
  • Worker progress details (e.g., “Cloning repo…”, “Running tests…”)

Completed Panel

Shows finished tasks with:
  • Success/failure indicators
  • Metrics: lines added/removed, files changed, tokens used
  • Final status (complete, failed, cancelled)

Merge Queue Panel (Left Side, Bottom)

Displays merge statistics:
  • Success rate - Visual progress bar and percentage
  • Merged - Successfully merged branches
  • Conflicts - Branches with merge conflicts
  • Failed - Failed merge attempts

Activity Feed

Access via Tab key. Shows timestamped events:
  • Task creation and completion
  • Merge results
  • Worker progress updates
  • Iteration completions
  • Reconciler actions
  • Errors and timeouts
Color-coded by event type:
  • Cyan - Task created
  • Green - Success events
  • Yellow - Warnings/conflicts
  • Red - Errors/failures
  • Progress Bar - Overall task completion percentage
  • Controls - Shows current zoom level and available controls

Interactive Controls

KeyAction
+Zoom in (show more planner tree levels)
-Zoom out (show fewer planner tree levels)
TabSwitch between Agent Grid and Activity Feed tabs
w / sScroll In Progress panel up/down
e / dScroll Completed panel up/down

Dashboard Options

Cost Rate

Set a custom cost per 1K tokens for accurate cost estimation:
python dashboard.py --cost-rate 0.002
Default is $0.001 per 1K tokens.

Replay Mode

Replay a previous run’s NDJSON log file:
python dashboard.py --replay logs/run-20250115-143022.ndjson --speed 2.0
The --speed parameter controls playback speed (2.0 = 2x faster).

Understanding the Display

Task Status Colors

  • Bright Yellow - Running
  • Bright Green - Complete
  • Bright Red - Failed
  • Cyan - Assigned to worker
  • Blue - Pending

Progress Indicators

Each task shows a 4-segment progress meter:
  • ■■■■ - Complete (100%)
  • ■■■□ - ~75% complete
  • ■■□□ - ~50% complete
  • ■□□□ - ~25% complete
  • □□□□ - Just started

Planner Tree Depth

The tree visualization supports multiple levels:
  • Level 0 - Root planner
  • Level 1 - Top-level feature planners
  • Level 2 - Subplanners (for complex features)
  • Level 3+ - Nested subplanners and workers
Use +/- to adjust how many levels are visible. Hidden descendants are indicated with ”… N hidden” labels.

Performance Metrics

Velocity Sparkline

The velocity sparkline shows task completion rate over the last 5 minutes:
  • Each bar represents a 30-second bucket
  • Height indicates number of completions in that bucket
  • Characters used: ▁▂▃▄▅▆▇█ (from zero to max)

Merge Success Rate

Calculated as:
merged / (merged + conflicts + failed)
A healthy system maintains >90% merge success rate.

Troubleshooting

Dashboard Not Updating

If the dashboard appears frozen:
  1. Check that the orchestrator is still running
  2. Verify NDJSON events are being emitted to stdout
  3. Try restarting in --stdin mode with explicit piping

Missing Rich Library

If you see an error about the Rich library:
pip install rich

Terminal Size Issues

The dashboard requires a minimum terminal size. If panels appear garbled:
  1. Maximize your terminal window
  2. Ensure at least 80 columns × 24 rows
  3. The dashboard adapts to larger terminal sizes for better visibility

Next Steps

LLM Configuration

Set up and configure your LLM providers

Debugging

Learn how to debug issues using dashboard insights

Build docs developers (and LLMs) love