Use the Mission Control dashboard
Mission Control collects uploaded Testronaut reports so you can review runs, compare trends, and find failures without opening local report files individually.
Upload a reportβ
Authenticate the CLI once, run a mission, and upload either the latest report or a specific run:
testronaut login
testronaut missions/login.mission.js
testronaut upload
# Select an older or specific report
testronaut upload run_1788745106444
Only screenshots referenced by the selected report are uploaded. See Upload Reports for selection and screenshot controls.
Find a reportβ
The Recent Reports section supports several controls that can be combined:
- Search by run ID, uploaded report filename, mission name, or source mission filename.
- Filter reports by Passed, Recovered, or Failed status.
- Filter by one or more tags with Any or All matching.
- Sort by newest, oldest, longest duration, or most failures.
- Select Clear filters to return to the default view.
- Select Refresh to request the newest report list immediately.
The result count shows how many reports match. An empty account displays an upload prompt, while a search with no matches displays filter-specific guidance.
Read report metadataβ
Open a report to inspect its mission groups, submissions, individual turns, token usage, events, and screenshots. Reports created by current CLI versions also retain:
- the Testronaut CLI version;
- the human-readable mission name;
- the source
.mission.jsor.mission.tsfilename; - provider and model information;
- run and mission tags.
Older reports remain viewable when some of this metadata is absent.
Recovered missions use an amber state and show every recorded action, reason, turn number, evidence note, and available screenshot. The dashboard includes recovered mission counts in its existing run trend so degraded behavior remains visible without adding a separate per-mission chart.
Analyze consumption and durationβ
Open the Analytics tab on an individual report to compare:
- main-model and guardrail input/output tokens;
- estimated input/output cost for recognized models; and
- recorded duration.
Switch between Per mission and Per turn, then choose Individual or Cumulative values. The charts share filters for mission tags, premission and postmission phases, screenshot turns, and tool types. Tool filters use OR matching, so a turn is included when it uses any selected tool.
Cost values are estimates, not provider invoices. Mission Control uses a dated standard-rate snapshot and identifies tokens it cannot price. Estimates can exclude cached-token discounts, service-tier or batch adjustments, regional or long-context uplifts, separately billed tools, unknown models, and legacy token totals without an input/output split. Use your provider billing dashboard for authoritative spend.
Filter and edit tagsβ
The report detail view can filter mission groups by tag using Any or All matching. You can either hide nonmatching missions or leave them visible in a muted state.
Editing a run tag updates all main-mission entries in that uploaded report. Editing a mission tag affects only the matching mission. These changes modify the uploaded report snapshot; they do not edit local mission source files.
Change appearanceβ
Use the light/dark mode control in the upper-right corner. The preference is stored in the browser and persists across navigation and later visits on that device.
Local reports versus Mission Controlβ
testronaut serve displays the newest local HTML report from your configured outputDir. Mission Control displays reports uploaded with testronaut upload. The local report is optimized for immediate run inspection; upload it when you need filtered or cumulative token, estimated-cost, and duration analytics. A local report can therefore exist without appearing in Mission Control until it is uploaded.