Wheelhouse docs

The manual#

One page per screen in the web UI, and for the larger screens one page per tab. Each page says what the screen reads, what each control writes, the exact set and delete commands an editor stages, and — the part most documentation leaves out — what the screen does not do.

Sixty-two pages, in three sections that follow the left navigation.

The Wheelhouse dashboard on a live router: a left navigation grouped into Overview, Network, Security, VPN, Services, Monitoring and System; four headline tiles for interfaces up, active sessions, memory and storage; live receive and transmit graphs for eth0 and eth1; and panels counting configured objects, listing top talkers and naming the running build.

The three sections#

SectionWhat is in it
NetworkEverything that decides where a packet goes and what address a host has: interfaces and their live kernel state, static routes beside the forwarding table, BGP and OSPF, multi-WAN and VRRP, DHCP and DNS.
Security, VPN and accountsWhat reaches the router and who may change it: the firewall, NAT, the IDS, WireGuard, users, roles, your own account, single sign-on and API tokens.
Services, monitoring and systemEverything that watches the router or changes the box rather than a protocol: the Dashboard, telemetry, shaping, the app catalogue, diagnostics, the journal, system settings, boot images, backup, the audit log and the licence.

The screens, in navigation order#

Twenty-nine entries in eight groups, exactly as ui/src/components/nav.ts declares them.

Nav groupScreenPage
OverviewDashboardDashboard
NetworkInterfacesInterfaces
NetworkStatic routesStatic routes
NetworkBGP / OSPFBGP / OSPF
NetworkHigh availabilityHigh availability
NetworkQoSQoS
SecurityFirewallFirewall
SecurityNATNAT
SecurityIDSIDS
VPNWireGuardWireGuard
VPNIPsecnot documented — see below
VPNOpenVPNnot documented — see below
ServicesDHCPDHCP
ServicesDNSDNS
ServicesAppsApps
ServicesCompanionsCompanions
MonitoringSessionsTelemetry
MonitoringDiagnosticsDiagnostics
MonitoringLogsLogs
SystemSystemSystem
SystemCertificatesnot documented — see below
SystemConfig treeThe configuration tree
SystemReconcileDesired state
SystemFleetFleet
SystemAboutAbout Wheelhouse
AdministrationUsersUsers, and Single sign-on for the section of that page
AdministrationAPI tokensAPI tokens
AdministrationAgent settingsAgent settings
AdministrationLicenceLicence

Account is not in that list: it sits behind your own name at the foot of the navigation — Account.

Three entries do not always appear. IDS and WireGuard are hidden until their feature module is installed, which is the plugin model the app catalogue uses. Fleet is hidden without a licence whose plan carries the fleet feature, because a page whose whole content is buy the plan that turns this on is an advert in the navigation of every single-router install.

Four things that hold on every page in this section#

They are repeated on each page rather than assumed, because a reader arrives at one page from a search result rather than reading the section in order.

Nothing on a configuration screen applies itself. Every editor calls stage(...) and renders the exact commands it will run before it stages them. The Commit Bar is the only thing in the product that commits — ui/src/lib/staging.tsx, ui/src/lib/format.ts (renderOp). The accounts pages are the exception and say so: Users, API tokens and Account change the agent's own state file and take effect the moment you click. Every page in this section shows that bar in its own screenshot — NAT is the one to look at first, because it is the screen with the most rules on it.

Reading never needs a licence; changing anything does. The write plane is wrapped in writeable(requireLicense(...)) — the operator role and a usable licence. An unlicensed agent answers 402 on those routes and keeps serving every read about this router, the audit log and the login screen — What the licence gates.

Live state and configured intent are different things, and the pages never blur them. A panel that shows what the kernel is doing is labelled as such; a panel that shows what the configuration says is labelled as such. Where they disagree, that disagreement is the information — State against intent.

A greyed-out control is a courtesy, not the enforcement. Roles are enforced server-side on every route, and an attempt to use one your role does not reach is recorded in the audit log with your name on it — Roles.

Where to go instead#

  • To do a specific job rather than to understand a screen — Task guides. A guide names the screens it uses and links back here.
  • For the exact value of a fieldReference, which has every default, bound and endpoint in tables.
  • To understand why the product is shaped this wayHow Wheelhouse works.

See also#

Updated 2026-09-03 manual ui screens