Dashboard
The Hoziron web dashboard (internally the "console") is a real, actively developed browser-based operations UI — it is not a future/planned feature. It's built with React 19 + TypeScript + Vite, using Mantine as its component/theme system, and ships embedded inside the hoziron-server binary (no separate deploy step).
Its information architecture is specified in ADR-062 (19 tier-1/expand-group screens, verified against the live route table) — the pages below follow that same structure.
Enabling it
The dashboard is a surface, same as api, registry, and mcp — disabled by default. Enable it via the --surfaces flag or config.toml:
hoziron-server --surfaces api,dashboard
[surfaces.dashboard]
enabled = true
mount = "api" # shares the API surface's listener (default when enabled)
base_path = "/dashboard"
By default the dashboard is mounted on the API surface's listener rather than owning its own address — mount = "api" shares whatever api binds to (address, TLS, IP allowlist, request limits). Setting listen directly on the dashboard surface instead would make it a main route in its own right; it can't declare the same address as another main route (that's a hard config-validation error — see TLS and networking), so give it its own distinct address if you want it independently addressable. With the default mount = "api", once running, open http://<host>:4200/dashboard.
Screens
| Screen | Covers | Reference |
|---|---|---|
| Dashboard Overview | Orchestration, Gateway, Business Activity, Feed, Compliance, and Integrations panels | overview below |
| Incidents | Structural-violation feed | incidents.md |
| Agents | List + detail (config, skills, tools, memory, schedules, history), Live Console | agents.md |
| Workflows | List + detail, Workflow Studio (node-graph authoring), Run Detail | workflows.md |
| Catalog | Registry, Competencies, Skills, Integrations, Studio, shared Package Detail | catalog.md |
| Observability | Metrics & Budget, Gateway & Providers (+ read-only effective config) | observability.md |
| Observability › Audit Trail | Searchable, filterable, exportable audit log | audit-trail.md |
| Observability › Memory | Global, cross-agent, PII-redacted memory browser | memory.md |
| Security Overview | Read-only security status | security-overview.md |
| Settings | Channels, Cron Scheduler | settings.md |
| Authentication | The console's own OIDC/local login flow | authentication.md |
There is no Devices, Webhooks, Approvals, or standalone Platform Config screen in the console. Webhook-driven invocation is surfaced via Settings › Channels, backed by the generic HTTP webhook channel adapter. There is no human-in-the-loop approval queue anywhere in this platform — see reference/api/approvals.md. Platform configuration is read-only by design (config.toml + restart, no console write path); the effective configuration is shown as a panel on Observability's Gateway & Providers screen.
Dashboard Overview
The / route renders six panels in one screen: Orchestration (agent/workflow rollup), Gateway (routing pool state), Business Activity, Feed, Compliance, and Integrations. Each panel tile links out to the corresponding deeper screen above — the overview is a summary/navigation surface, not where you take action.
Authentication
The dashboard surface honors the same [auth] configuration as the API surface — see authentication.md for the actual login-gate UX (OIDC redirect/callback, dev-mode bypass, token expiry) rather than just the config.
Current status
The console is under active development, and page depth varies — see each page's own reference for what it currently shows. security-overview.md in particular is a read-only status dump with no API-key or RBAC-matrix UI.
Everything the dashboard does is also available through:
- The CLI (
hoziron-clicommands) — see CLI reference - The REST API — see API reference
Related:
- ADR-062: Console Navigation Map — the authoritative screen inventory this page follows
- CLI reference
- API reference
- Getting started