TUI Dashboard
Monitor hosts, VPN connections, and configuration with the interactive terminal dashboard.
Nefia includes a built-in terminal UI (TUI) dashboard for browsing hosts, VPN tunnels, and configuration from your terminal. Built with the Bubble Tea framework, it provides an at-a-glance operational view without leaving the CLI.
Launching the Dashboard
Start the dashboard by running nefia with no subcommand:
nefiaYou can also use the explicit command:
nefia dashboardDashboard Layout
The dashboard is organized into three tabs: Hosts, VPN, and Config. The header shows the current version plus a live summary in the form <host count> hosts | <active VPN count> connected | VPN Active|VPN Off.
Here is a simplified view of what you will see:
┌─────────────────────────────────────────────────────────────────────────┐
│ Nefia v1.0.0 4 hosts | 2 connected | VPN Active │
├──────────────┬──────────┬────────┐ │
│ Hosts (4) │ VPN (3) │ Config │ │
├───────────┴──────────┴──────────┴───────────────────────────────────────┤
│ │
│ Status ID Address OS User Tags VPN │
│ ──────── ────────────── ───────────── ─────── ────── ──────────── ─────────── │
│▸ ● active my-server 10.99.0.2 linux deploy env=prod Active │
│ ● active dev-box 10.99.0.3 macos admin env=dev Active │
│ ◐ pending build-node 10.99.0.4 linux ci role=ci Pending │
│ ○ offline win-desktop 10.99.0.5 windows ops env=staging Configured │
│ │
│ │
├────────────────────────────────────────────────────────────────────────┤
│ tab/h/l: switch | j/k: navigate | R: refresh | ?: help | /: filter │
└────────────────────────────────────────────────────────────────────────┘Tabs
Hosts
The default tab. Displays all registered hosts in a table:
| Column | Description |
|---|---|
| Status | Connection status indicator: active, pending, or offline |
| ID | Hostname assigned during enrollment |
| Address | VPN IP address (10.99.0.x) when available, otherwise the host's configured address |
| OS | Operating system: linux, macos, or windows |
| User | SSH user for the connection |
| Tags | Sorted key=value pairs from host tags |
| VPN | VPN configuration status: Active, Pending, Configured, or - (no VPN) |
VPN
Displays the current VPN configuration and a peer table derived from hosts that have VPN settings:
VPN Overview Status: Enabled Operator Address: 10.99.0.1/24 Listen Port: 51820 STUN Servers: stun.l.google.com:19302, stun.cloudflare.com:3478 MagicDNS: active (.nefia, 4 records)
Peers Host ID VPN Address Endpoint Status Public Key ─────── ─────────── ──────── ────── ────────── my-server 10.99.0.2 203.0.113.10:51820 active AbCd1234... dev-box 10.99.0.3 198.51.100.5:51820 active EfGh5678... build-node 10.99.0.4 192.0.2.40:51820 pending XyZk9012...
If VPN is disabled, the tab shows an informational card instead of the peer table.
Config
A scrollable view of your current nefia.yaml settings, organized into cards:
- General -- Version, Concurrency, Timeout, Output format, Max output, Shell map
- SSH -- SSH agent usage, known_hosts path, identity files
- VPN -- Enabled flag, listen port, operator address, STUN servers
- Policy -- Mode, allowed roots, allow commands, deny commands, deny paths
- Audit -- Enabled flag and audit directory
- Auth -- API base URL and Web base URL
Keyboard Shortcuts
| Key | Action |
|---|---|
Tab / l | Next tab |
Shift+Tab / h | Previous tab |
1 / 2 / 3 | Jump directly to Hosts / VPN / Config |
j / Down | Move selection down |
k / Up | Move selection up |
/ | Start filter mode (applies to both Hosts and VPN tabs) |
Enter | Apply the current filter |
Esc | Clear active filter or close help overlay |
R | Refresh data from disk |
? | Toggle help overlay |
q / Ctrl+C | Quit the dashboard |
When a host row is selected, additional shortcuts are available from the Hosts and VPN tabs:
| Key | Action |
|---|---|
Enter | Open the selected host's details drawer |
d | Run doctor for the selected host |
r | Generate a reinvite flow for the selected host |
t | Run a VPN/SSH connectivity test for the selected host |
a | Approve the selected pending host |
When to Use TUI vs CLI
The TUI dashboard is best for:
- Monitoring -- watching VPN status and host health in real time
- Orientation -- getting a quick overview when you sit down at your operator PC
- Debugging -- checking which hosts are offline or have stale handshakes
- Demos -- showing infrastructure status to colleagues
Related
Full reference for all Nefia CLI commands and flags.
Configure NAT traversal, diagnostics, and key rotation.