Styrene CLI
styrene is the unified binary for the Styrene mesh platform. It combines the daemon, TUI, and CLI into a single tool with feature flags controlling what’s compiled.
Deployment profiles
| Profile | Features | Use case |
|---|---|---|
| default | daemon + cli | Headless node, container, server |
| +tui | daemon + cli + tui | Desktop workstation (no args = TUI) |
| cli-only | cli | Remote management client |
# Default build (daemon + cli)
cargo install --path crates/apps/styrene
# TUI build (full workstation)
cargo install --path crates/apps/styrene --features tui
# CLI-only (remote client, no daemon deps)
cargo install --path crates/apps/styrene --no-default-features --features cli
Commands
styrene status
Show daemon and mesh status.
$ styrene status
styrene status
identity 04f1f9eba221462eb45b5249a1ad4d5c
name wilson-mesh
version 0.1.0
uptime 502332s
rns initialized
transport active
interfaces 2
peers 7
links 1
styrene peers [query] [--styrene-only]
List known mesh peers. Optional search query filters by name or hash.
$ styrene peers
styrene peers (3 peers)
⬡ 10da62355ca6… edge-node-alpha
⬡ 3c9d01305d50… wilson-laptop
○ 8f2a0b1c3d4e… (unnamed)
⬡ = Styrene node, ○ = generic RNS peer.
styrene send <destination> <content> [--title TITLE]
Send an LXMF message to a peer.
styrene send 10da62355ca6 "deploy complete"
styrene send 10da62355ca6 "restart nginx" --title "fleet-cmd"
styrene messages <peer> [--limit N]
Show message history with a peer.
$ styrene messages 10da62355ca6
styrene messages (5 messages with 10da62355ca6…)
→ ping — are you up?
← yes, uptime 3d
→ deploying v2.1
→ deploy complete
← confirmed, services healthy
styrene identity
Show the daemon’s mesh identity.
$ styrene identity
styrene identity
hash 04f1f9eba221462eb45b5249a1ad4d5c
dest a1b2c3d4e5f6a7b8
lxmf c9d0e1f2a3b4c5d6
name wilson-mesh
styrene announce
Trigger a mesh announce (broadcast identity to peers).
$ styrene announce
✓ announce sent
styrene config
Show daemon configuration.
styrene daemon (planned)
Run the mesh daemon in foreground. This will be the primary entry point for servers and headless nodes. Currently a stub — use the standalone styrened binary until wiring is complete.
# Current: use standalone daemon
styrened --rpc 127.0.0.1:4243
# Future: unified binary
styrene daemon --identity /etc/styrene/identity.key
Environment variables
| Variable | Purpose |
|---|---|
STYRENE_SOCKET | Override the IPC socket path for CLI commands |
STYRENED_SOCKET | Override the IPC socket path for the daemon |
IPC socket
The daemon listens on a Unix socket. CLI commands connect to this socket for one-shot RPC calls using the msgpack wire protocol.
Default path: $XDG_RUNTIME_DIR/styrened/control.sock (falls back to ~/.local/run/styrened/control.sock). Override with STYRENE_SOCKET (CLI) or STYRENED_SOCKET (daemon).
Relationship to nex
nex is the cold-start machine lifecycle tool — it installs packages, creates the StyreneIdentity, provisions machines. styrene is the runtime mesh tool — it operates the daemon and communicates on the mesh.
The handoff: nex identity init creates ~/.config/styrene/identity.key. styrene daemon loads it at startup. Either tool can create the identity — whichever runs first.
See also
- Identity — the key hierarchy both tools share
- Daemon internals — service architecture
- Getting Started — install and first run