TUI Dashboard

10-screen terminal dashboard with keybindings and screen layouts

The unifly tui subcommand launches a real-time terminal dashboard for monitoring your UniFi network. Eleven screens cover everything from live bandwidth charts to WiFi observability.

๐Ÿ”—Launch

unifly tui                   # Launch with default profile
unifly tui -p office         # Use a specific profile
unifly tui -k                # Accept self-signed TLS certs
unifly tui -v                # Verbose logging to temp directory

๐Ÿ”—Screens

Navigate with number keys 1-9, Tab/Shift+Tab, or , for Settings:

KeyScreenWhen to Use
1DashboardAt-a-glance health check. Start here.
2DevicesInvestigating a specific device, checking firmware, restarting
3ClientsFinding a client, checking signal strength, blocking a device
4NetworksReviewing VLANs, editing DHCP settings, checking subnets
5FirewallAuditing policies, reordering rules, checking zone assignments
6TopologyUnderstanding physical network layout, tracing uplink paths
7EventsReal-time troubleshooting, watching for connectivity issues
8StatsHistorical analysis, bandwidth trends, DPI app breakdown
9WiFiAP health, channel overlap, client experience, roaming history
,SettingsSwitching profiles, changing themes, adjusting display options
OnboardingFirst-run setup wizard (shown automatically on first launch)

๐Ÿ”—Dashboard Panels

The dashboard packs eight live panels into a dense, information-rich overview:

PanelWhat It Shows
WAN TrafficArea-fill chart with Braille line overlay, live TX/RX rates, peak tracking
GatewayModel, firmware, WAN IP, IPv6, DNS, ISP name, latency, uptime
ConnectivitySubsystem status dots (WAN/WWW/WLAN/LAN/VPN), aggregate traffic bars
CapacityColor-coded CPU/MEM gauges, load averages, device/client fleet count
NetworksVLANs sorted by ID with IPv6 prefix delegation and SLAAC mode
WiFi / APsClient count and WiFi experience percentage per access point
Top ClientsProportional traffic bars with fractional block characters
Recent EventsCompact event display, color-coded by severity

๐Ÿ”—Key Bindings

๐Ÿ”—Global

KeyAction
1-9, ,Jump to screen
Tab / Shift+TabNext / previous screen
j / k / Up / DownNavigate up / down
g / GJump to top / bottom
Ctrl+d / Ctrl+uPage down / up
EnterSelect / expand detail
EscClose detail / go back
/Search
?Help overlay
qQuit

๐Ÿ”—Screen-Specific

ScreenKeyAction
DevicesRRestart selected device
DevicesLLocate (flash LED)
Devices (detail)h / lPrevious / next detail tab
ClientsTabCycle filter (All / Wireless / Wired / VPN / Guest)
Clientsb / BBlock / unblock client
ClientsxKick client
NetworkseEdit selected network (opens overlay)
Firewallh / lCycle sub-tabs (Policies / Zones / ACL / NAT)
FirewallK / JReorder policy up / down
TopologyArrowsPan canvas
Topology+ / -Zoom in / out
TopologyfFit to view
EventsSpacePause / resume live stream
Statsh d w mPeriod: 1h / 24h / 7d / 30d
StatsrRefresh data
WiFiTabCycle sub-tabs (Overview / Clients / Neighbors / Roaming)
WiFicToggle channel map on the Overview tab
WiFi[ / ]Switch WiFi band in the channel map
WiFiR / LRestart / locate selected access point
WiFib / u / xBlock / unblock / kick selected wireless client

๐Ÿ”—Detail Views

Press Enter on any list item to open a detail panel with comprehensive information:

  • Devices: 5-tab panel (Overview, Performance, Radios, Clients, Ports)
  • Clients: Connection details, traffic history, DHCP info
  • WiFi: AP health decomposition, per-client WiFi metrics, channel occupancy, roam history
  • Networks: Full VLAN config with DHCP ranges and IPv6 settings
  • Firewall: Policy details with traffic filter breakdown

Navigate detail tabs with h/l. Press Esc to close.

๐Ÿ”—Data Refresh

graph LR
API["Integration + Session APIs"] -->|"Every 10s"| DS["DataStore"]
WS["WebSocket"] -->|"Real-time push"| DS
DS -->|"watch channels"| TUI["TUI Screens"]

    style WS fill:#50fa7b,color:#0a0a0f
    style DS fill:#80ffea,color:#0a0a0f
  • Devices and clients: polled every 10 seconds from both APIs
  • Health and system info: polled every 10 seconds
  • Events: pushed via WebSocket in real-time (no polling delay)
  • Bandwidth: sampled from device stats on each refresh cycle

๐Ÿ”—Authentication Modes

The TUI works with all authentication modes, but some screens degrade gracefully:

ModeDashboardDevicesClientsEventsStatsWiFi
API KeyPartialFullFullNoNoFull
Username/PasswordFullFullFullFullFullFull
HybridFullFullFullFullFullFull

API Key mode works for most TUI screens on UniFi OS. Use Hybrid mode only when you need live WebSocket event streaming (the Events screen). Statistics and device data are available via Session HTTP endpoints that API Key mode can reach.

๐Ÿ”—Graceful Degradation

When data is unavailable (e.g., API-key-only mode without Session access), panels show placeholder lines instead of crashing. The dashboard adapts to whatever data sources are available. Missing data is indicated with dim placeholder text.

๐Ÿ”—Theme

The TUI uses the Opaline theme engine with the SilkCircuit color palette. Press , to open Settings and use the theme selector to preview and switch themes. Theme changes take effect immediately and persist to defaults.theme in your config file. You can also set the initial theme via the UNIFLY_THEME environment variable at launch.

Known Limitation

Controller reconnect after a network interruption is currently broken. If the connection drops, restart the TUI to reconnect.

๐Ÿ”—Next Steps