Running the Service
Sireno Deck runs as a background daemon that connects to your Stream Deck and serves the frontend.
Commands
Section titled “Commands”sireno run
Section titled “sireno run”Run in the foreground (development mode):
sireno run [options]Options:
--config <path>— Path to config.yml--port <number>— Local server port (0 = random)--emulator— Run with emulator instead of real device--dev— Enable HMR for development--device-model <model>— Emulator device model (mk2, plus, mini, xl)
Example:
# Run with emulatorsireno run --emulator
# Run with custom devicesireno run --emulator --device-model xl
# Development with hot reloadsireno run --dev --emulatorsireno start
Section titled “sireno start”Install and start the daemon:
sireno start [options]Options:
--config <path>— Path to config.yml--port <number>— Local server port--emulator— Run in emulator mode--device-model <model>— Device model--http-port <number>— HTTP server port (default: 3939)--system— Install as system service (requires root)--logs— Follow logs after starting
Example:
# Start in backgroundsireno start
# Start and follow logssireno start --logs
# Start as system servicesudo sireno start --systemsireno stop
Section titled “sireno stop”Stop the running daemon:
sireno stopsireno status
Section titled “sireno status”Check daemon status:
sireno statusOutput shows:
- Running/stopped state
- Daemon PID
- Child process IDs
- Token info
sireno restart
Section titled “sireno restart”Restart the daemon:
sireno restart [options]Options:
--logs— Follow logs after restart
sireno reload
Section titled “sireno reload”Send SIGUSR1 for in-place reload (preserves runtime state):
sireno reload [options]Options:
--logs— Follow logs after reload
sireno update-config
Section titled “sireno update-config”Update the config path the daemon uses:
sireno update-config --config <path> [options]Options:
--reload— Use in-place reload instead of restart--logs— Follow logs after update
sireno logs
Section titled “sireno logs”Tail the service log:
sireno logs [options]Options:
--follow / -f— Follow log output (default: true)--lines / -n— Initial lines to show (default: 50)
Global Options
Section titled “Global Options”All commands support:
--verbose / -v— Enable verbose debug logging--dev-mode— Enable developer mode logging (infolevel)--quiet / -q— Suppress all logs and the startup banner (silentlevel)--log-level <level>— Override log level (trace,debug,info,warn,error,fatal,silent,none)--json— Emit logs as JSON
By default, the CLI only logs errors. Use --dev-mode for normal operational output, --verbose for debug output, or --log-level for full control. Use --quiet (or --log-level silent / --log-level none) to silence logs and suppress the startup banner.
Startup Banner
Section titled “Startup Banner”When you run sireno start, the CLI prints a structured banner to stderr summarizing the startup state:
┌ Starting SirenoDeck│◇ Device: Emulator (mk2)││ [✓ keystrokes] [✓ clipboard] [✗ notifications — notify-send]│ [✓ active-win] [✓ media] [✓ exec] [✗ http — unreachable]│└ ✓ SirenoDeck startedThe banner shows the detected device (or emulator model), a horizontal list of OS features with availability status, and a completion line once the daemon is serving. It is independent of the log level and is suppressed by --quiet, --log-level silent, --log-level none, or non-interactive output (pipes, CI).
Daemon Lifecycle
Section titled “Daemon Lifecycle”The daemon writes runtime files to:
- Linux:
$XDG_RUNTIME_DIRor$TMPDIR - macOS:
~/Library/Application Support/sireno-deck - Windows:
$LOCALAPPDATA/sireno-deckor$TMPDIR
Files created:
sireno-deck.pid— Daemon process IDsireno-deck.token— WebSocket authentication tokensireno-deck.children.json— Child process IDssireno-deck.config— Config file pathsireno-deck.flags.json— Runtime flags
Service Manager Integration
Section titled “Service Manager Integration”Linux (systemd)
Section titled “Linux (systemd)”User-level:
systemctl --user status sireno-deck.serviceSystem-level (requires root):
sudo systemctl status sireno-deck.servicemacOS (launchd)
Section titled “macOS (launchd)”launchctl list | grep sirenoTroubleshooting
Section titled “Troubleshooting”See Troubleshooting for common issues.