Skip to main content
Skip to Content

The dashboard is a local web app for everything agent-qa records. It reads the same run store as the CLI and your coding agent, so every run shows up there, wherever it started.

Start it

Open the dashboard
npx agent-qa dashboard --open

It prints Dashboard running at and the address. The port comes from --port, then services.dashboard.port, then 3470, which is also what init writes. --db <path> points at another run store, and --open opens your browser, at a page when you name one, such as --open /config/models. npx agent-qa serve starts the same server with your config's settings and no flags.

An interactive npx agent-qa init ends by starting the dashboard, unless you pass --no-dashboard, and opens it on the model page while the model is not ready yet. Run again on a set-up project, init starts it only while the model is not ready.

The dashboard listens on your own machine only. It needs the project's .env, secrets file and hooks file to exist, like agent-qa run does.

Runs

The Runs page lists every run, newest first, with its verdict and timing. Open one to see:

  • the verdict, and the status of post-run analysis and curation;
  • every test and step, with the screenshots the model saw;
  • where each test ran: this machine, or a remote by name, with the remote's server, Appium version and device type for a remote device, and a link to the session when a plugin returns one;
  • the session video;
  • a feedback panel to mark the run, with a preview of the fix;
  • Re-run, or press R.

Each step has these tabs:

TabShows
OverviewWhat the step saw, decided, did and checked.
VariablesVariables at that step, with secrets masked.
NetworkRequests and responses.
ConsoleBrowser console messages, or the output of a hook.
ARIA TreeThe accessibility tree the agent read.
A11yAccessibility check results.
KnowledgeWhat memidex gave the step, its effect, and what changed afterwards.

Live view

A run started from the dashboard can be watched while it runs: a step list next to a live picture of the browser or device. A plugin's progress, such as a queue position or an upload, shows there while the session is being prepared. When the run ends, the page becomes the run's detail view. Runs started elsewhere, from a terminal or a coding agent, still appear in the list, but cannot be watched live.

Tests, suites and hooks

The Tests, Suites and Hooks pages list what your project has, with an editor for each that switches between a form and the YAML. New tests, suites and hooks get their IDs here. Listing tests also adds an ID to any test file that lacks one.

Insights

Insights charts pass rate, duration, token usage and the changes memidex made, over one day, seven days, 30 days or all time, with a breakdown per test. To count only some runs in the pass rate, label runs with --run-attr KEY=VALUE and filter on those labels with analytics.passRateScope.attributes in your config.

Config

Config edits agent-qa.config.yaml in five tabs: Models, Targets, Execution, Project and Advanced. Changes are written to your files, so review them with git diff like any other change. Credentials are not stored in the config; see Models and credentials.

The Config page lists your remotes read-only, by name, kind and origin or plugin package, and sets the project's default place for web tests. Each test's and suite's settings show where it runs. The dashboard never changes registry.remotes or a plugins entry; edit those in the file.

Runs queued from the dashboard

Runs started from the dashboard wait in its run queue, which runs as many at once as your machine has CPU cores. From a terminal, agent-qa queue list --server <dashboard address> shows the queue, and agent-qa queue cancel <runId> --server <dashboard address> stops a run.

Run service

The dashboard also serves a small HTTP interface on the same port, for scripts on your machine:

RequestDoes
POST /run with {"patterns": ["tests/checkout.yaml"]}Starts a run and answers with its ID.
GET /run/<runId>/eventsStreams the run's events as server-sent events.
GET /okReports whether the service is up.

It accepts requests from your machine only and uses no tokens.