Styrene TUI
Note: The TUI is a subpackage of styrened (
styrened.tui), installed viapipx install styrene. The standalonestyrene-tuirepo is archived.
The terminal interface for Styrene mesh management. Designed to be comprehensive enough that an operator can manage their entire edge fleet without leaving the terminal.
Design Principles
TUI as OS. The TUI is the single entry point for operators. One install gives you the mesh daemon, provisioning, encrypted messaging, and fleet management. An operator should never need to install NomadNet, MeshChat, or clone styrene-edge.
Delegate to $EDITOR. Styrene handles orchestration and visualization; Neovim, Helix, or whatever the operator prefers handles text editing.
Daemon lifecycle. On operator workstations, the TUI manages styrened as a subprocess — starts it on launch, tears it down on exit. No systemctl enable required. On edge devices where styrened is a systemd service, the TUI connects to the existing daemon via IPC. Same Unix socket contract either way.
IPC only. The TUI does not initialize the RNS singleton directly. It communicates with styrened exclusively via IPC (ControlClient). styrened owns the mesh stack; the TUI renders what the daemon reports.
Screens
| Screen | Purpose |
|---|---|
| Dashboard | Fleet overview — mesh device table, activity feed, node status |
| Chat | Encrypted LXMF conversations with delivery tracking |
| Device Detail | Mesh node info, actions (Message, Add Contact, Copy Hash, Pages) |
| Settings | Tabbed: Identity, Network, Fleet, System |
| Exploration | Non-Styrene RNS announces on the mesh |
| Upgrade | In-app self-update with changelog and live progress |
| First-Run Wizard | Initial setup and daemon connection |
Network Settings (7 panels)
| Panel | Purpose |
|---|---|
| STYRENE COMMUNITY HUB | Single toggle — controls both transport peer and LXMF propagation |
| TRANSPORT | Mode, transport toggle, announce interval |
| PEERS | Dynamic add/remove of RNS transport peers |
| PROPAGATION | LXMF propagation destination hash |
| LOCAL DISCOVERY | AutoInterface toggle |
| SERVER | Server interface (IP/port) |
| BATMAN-ADV MESH | mesh_id, channel, gateway_mode |
Theme: Imperial CRT
Green phosphor terminal aesthetic inspired by Specularium and eDEX-UI. Every panel earns its screen space through utility; the theme adds atmosphere without sacrificing function.
| Role | Color | Hex |
|---|---|---|
| Bright | Active elements, highlights, success | #39ff14 |
| Medium | Standard text, borders | #32cd32 |
| Dim | Secondary text, inactive elements | #228b22 |
| Dark | Subtle borders, separators | #1a5c1a |
| Background | Screen background (off-black) | #0a0a0a |
| Info | Information, scanning, network | #74c0fc |
| Warning | Warnings, pending states | #ffa94d |
| Danger | Errors, offline, destructive actions | #ff6b6b |
Implementation Status
| Capability | Status |
|---|---|
| Imperial CRT themed TUI | ✅ |
| Fleet dashboard with live mesh status | ✅ |
| Encrypted LXMF chat with delivery tracking | ✅ |
| Device detail with actions | ✅ |
| Settings (Identity, Network, Fleet, System) | ✅ |
| Non-Styrene RNS announce exploration | ✅ |
| In-app upgrade with changelog | ✅ |
| Community Hub toggle (transport + propagation) | ✅ |
| Forge provisioning (USB media prep) | ✅ (in styrene-edge, absorption in progress) |
| Device catalog fetch from styrene-edge at runtime | ⚠️ Not yet — catalog currently bundled |
| Hub Browser (NomadNet page viewer) | ⚠️ Not yet |
| Batch fleet operations (update all, reboot all) | ⚠️ Not yet |
| Configuration management and rollback | ⚠️ Not yet |
| IPC-only mode (replace direct RNS init) | ⚠️ Migration in progress |
See Also
- styrened — the daemon the TUI wraps
- architecture-decisions — distribution model and daemon lifecycle decisions
- components — full component inventory