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

ProfileFeaturesUse case
defaultdaemon + cliHeadless node, container, server
+tuidaemon + cli + tuiDesktop workstation (no args = TUI)
cli-onlycliRemote 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

VariablePurpose
STYRENE_SOCKETOverride the IPC socket path for CLI commands
STYRENED_SOCKETOverride 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

Graph