Skip to content

Emulator vs Hardware

Sireno Deck supports both real Stream Deck hardware and an emulator for development and testing.

The emulator provides a virtual Stream Deck interface in your browser.

Terminal window
# Run with emulator
sireno run --emulator
# With specific device model
sireno run --emulator --device-model xl
# Start daemon with emulator
sireno start --emulator
# Headless / capture runs: don't auto-open the browser
sireno start --emulator --no-autoopen

By default the emulator URL auto-opens in your system browser. Pass --no-autoopen to skip that — useful for scripts and capture tooling (the emulator is still served at its URL, it just won’t launch a tab).

When running with emulator:

  • Click buttons to trigger gestures
  • Device model switching (mk2, plus, mini, xl)
  • Deck tree navigation
  • Real-time logs
  • Configuration viewer
  • Fullscreen toggle in deck-only mode
  • Iframe load and error diagnostics with retry

The emulator derives both its own URLs and the frontend iframe URL from the page hostname. This means the same sireno start --emulator instance is reachable from:

  • http://127.0.0.1:52938 on the same machine
  • http://<lan-ip>:52938 from another device on the network
  • http://<tailscale-hostname>:52938 over a Tailscale or VPN connection

You do not need to configure the frontend URL manually for these cases; the emulator automatically points the iframe at the same host it was loaded from.

If the embedded frontend fails to load, the emulator shows an error overlay with the attempted URL so you can check network reachability and retry.

Connect to a real Stream Deck device.

Model Key Count Dimensions
Stream Deck Original/MK.2 15 5x3
Stream Deck + 32 8x4
Stream Deck Mini 6 3x2
Stream Deck XL 32 8x4
Terminal window
# Run with real device (default if connected)
sireno run
# Specify device model for emulator
sireno run --device-model mk2

If no device is found:

  • Interactive mode: Prompts to fall back to emulator
  • Non-interactive mode: Errors with message to use --emulator
Use Case Recommendation
Initial setup/testing Emulator
Development with HMR Emulator with --dev
Daily use Hardware
CI/automated testing Emulator
  1. Develop with emulator (sireno run --emulator --dev)
  2. Test on emulator
  3. Deploy to hardware (sireno start)