dashboard
Installation
SKILL.md
Run dashboard
uv sync --extra dashboard && uv run dashboard [output_dir ...] (default outputs/, or $PRL_OUTPUT_DIR) serves a web UI at http://localhost:7788. It only reads run dirs, so it is safe against live runs and installs anywhere: GPU dependencies live behind the gpu extra.
What is not obvious from the UI:
- Overview and Metrics read the same
monitors/file/metrics.jsonl. Overview is the curated view: a step bar (click a cell for that step's batch), summary tiles (reward per train env and avg@k per eval env, each with the change from its first logged value in the corner; error / truncation / timeout rate; step time), then the sections of the W&B overview (train, eval, stability, inference, performance) with readable panel names (hover a panel'sifor how it is computed and its raw key). Metrics is every key in the file, one pane per key, sectioned by parent path (Flat) or as a tree of sections along the key path (Nested), with a regex filter; time-keyed rows (inference/,concurrency/,dispatcher/) chart against wall time. - The
filtermenu (status, kind, env, outcome) is one state shared by the overview, the traces tab and the trace viewer: an env or outcome set in one applies in all. On the overview it narrows the sections and tiles to that env / kind and, for an eval run, the distributions to that outcome (ok/error; errored episodes read red). - Config and Logs default to
latest (attempt <n>); select an attempt to inspect an earlier launch. The Config view shows a copyable launch command. - Trace viewer views: Transcript, Timeline (wall-clock Gantt of prefix branches), Replay (the branch as a terminal session; response text is paced evenly across the recorded model-call span and labelled inferred; default 8×; Skip inference collapses model calls but keeps tool delays; T toggles thinking, never advertise Ctrl+T) and Semantic (
semantic_parentsas a causal graph of model calls; width reflects peak agent concurrency; unplaceable fragments show as unlinked). Traces without semantic parents disable Semantic. - Live rollouts appear in the traces table with a pulsing dot and a phase badge, and open in the viewer, which follows them (pinned to the newest turn until you scroll up; the request in flight's uncommitted messages render dimmed as
awaiting model). They come frommonitors/file/traces/live/*.jsonl, polled once a second. - For an eval run the overview tab shows every env the filter keeps, one block after another when there are several (the progress head names each): a block progress bar (one cell per expected episode, from
monitors/file/plan.json), summary tiles (avg@k, pass@k, error and truncation rate coloured >10% yellow / >50% red, turns / branches, episode time, tokens, cost), env metrics as dot plots or beeswarms (hover a dot for its episode, click to open it; hover the background for the quantiles), and usage / timing composition panes (icicle of the mean split over per-episode strips;otheris wall time no phase accounts for; hover a part to dim the rest; 40 strips by default,show allfor every one). view on platformin the top bar links to the run on the Prime platform when--monitors.primewas on (monitors/prime/run.json); an eval's evaluation opens at epoch start, so the link is live from the first episode.- An eval reads
completedonce its stream is sealed by a clean exit; a crashed or interrupted one readsstoppedafter its files go quiet.
Every dashboard instance serves the dirs it was started with plus every dir in the per-user registry (~/.cache/prime-rl/dashboard/dirs.json). Launchers register their output dir on every start and, in interactive sessions, auto-start a dashboard only when none is live; --no-dashboard opts a run out, non-interactive launches never spawn one. --isolated serves only the given dirs and ignores the registry.