Dashboard
The Quint Dashboard is a Vite + React single-page application (TanStack Router) that serves as the operator interface for CISOs and security engineers. It provides real-time visibility into every AI agent action across your fleet, with risk scoring overlays, org-wide alerting configuration, and compliance reporting. (Policy authoring is not built — see Policies.)Dual Mode Architecture
The dashboard runs in two modes, sharing the same codebase but connecting to different backends:Local mode automatically strips
HTTP_PROXY and HTTPS_PROXY environment variables to prevent a proxy loop where the dashboard’s own requests get intercepted by the daemon.Data Flow
The dashboard never communicates directly with daemons running on enrolled machines. All data flows through the API service: In local mode, the diagram simplifies to a single daemon serving both the dashboard static files and the API endpoints onlocalhost:8080.
Key Views
Event Feed
Real-time stream of every agent action intercepted by Quint proxies across the fleet. Each event displays the action classification (domain:scope:verb), risk score (1-100), verdict (allow/flag/block), and originating agent.
Filters include:
- Agent — filter by specific agent identity or word-based name
- Platform — filter by AI platform (Cursor, Claude Code, Copilot, etc.)
- Risk level — critical, high, medium, low
- Time range — last hour, 24 hours, 7 days, or custom range
- Verdict — allow, flag, block
Fleet Overview
Displays all enrolled machines with daemon health status, agent count per machine, and protection tier. Each machine card shows:- Daemon version and uptime
- Active agent count and types
- Last event timestamp
- Protection mode (relay, gateway, or forward proxy)
Agent Graph
Interactive parent-child visualization of agent spawn trees, powered by XYFlow. Each node represents an agent with its confidence score and detection method. Edges show spawn relationships with timestamps. The graph helps operators trace delegation chains, such as when a Cursor agent spawns a sub-agent that calls a different model provider, which in turn invokes MCP tools.Policy sync (delivery only)
The dashboard does not have a policy editor. Policy authoring is not built. What exists today is the delivery lane: each endpoint pollsGET /v1/machines/{id}/policies on its heartbeat and applies whatever it
receives. That endpoint is live, ETag-gated, and serves an empty rule set for
every organization — so no rule reaches any endpoint, and nothing is enforced.
Enforcement runs in shadow mode fleet-wide by decision; see
Shadow enforcement.
Policy authoring, historical preview, and dry-run are planned and not
shipped. They were described here before they existed; that was wrong and this
section is the correction.
Compliance Reports
Per-framework violation summaries (SOC 2, ISO 27001, NIST, GDPR, PCI DSS) with:- Time-scoped filtering (daily, weekly, monthly)
- Violation counts grouped by framework control
- Trend charts showing compliance posture over time
- Exportable reports (PDF, CSV)
Alerting rules
The Policies view shows the org-wide alerting rules and delivery configuration the alert-processor actually enforces — read-only. There is no per-alert acknowledge/escalate/dismiss workflow.Audit Trail
Searchable audit log. Entries are Ed25519-signed and SHA-256 chain-linked to their predecessors, so an edit to signed history is cryptographically detectable. Two honest caveats a reviewer will hit: rows written before signing was enabled on an installation predate the chain, and chain verification runs over a bounded window (quint audit verify --window), not the entire history in one call. Operators can:
- Search by agent, action, time range, or verdict
- Verify chain integrity over a chosen window
- Export audit logs for external compliance tools
Tech Stack
This table previously listed a Next.js 16 / Server Components / Supabase-auth stack that matches nothing in the repository. The actual stack, frompackage.json on main:
Authentication
1
Cloud Mode
The platform API issues the session as an httpOnly cookie (email login
code, Google, or WorkOS). The dashboard’s
/api/auth proxy forwards it with
credentials: "same-origin"; client code deliberately cannot read the
session, and there is no token in the bundle — the design recovers from a
previously-published VITE_-prefixed key.2
Local Mode
No authentication. The dashboard is served on
localhost:8080 only and is not accessible from outside the machine. This is appropriate for single-developer workstation monitoring.Route Structure
This section previously showed a Next.jsapp/ tree that did not match the
repository (and labelled policies/ a “Policy editor” — no editor exists).
The actual routes, from src/routes/ on main: