SirenoDECKv0.2.1

Declarative control for
your Stream Deck

A Node.js CLI that drives your Elgato Stream Deck from a single YAML config. Emulator, real hardware, and dev SPA — all from the same React interface.

Star on GitHub—
brew install sergiocarracedo/tap/sirenodeck

Features

Power up your workflow

Three execution surfaces from the same codebase: browser emulator, real hardware, and Vite-powered development SPA.

Overlay Decks

Contextual decks that appear automatically when you switch applications. Your main deck stays intact while an app-specific overlay takes over temporarily. Overlays maintain their own navigation and return to the previous deck when you close the app.

Overlay deck previewOverlay deck previewOverlay deck previewOverlay deck previewOverlay deck previewOverlay deck previewOverlay deck previewOverlay deck preview

Addons & Themes

Extensible plugin system with a well-defined API. Share addons via npm. Custom themes use a JSON manifest for color, typography, and more. Twelve addons included or distributed across the workspace.

Tinted deck previewTinted deck previewTinted deck previewTinted deck previewTinted deck previewTinted deck previewTinted deck preview

Coding Agents

Live status of OpenCode and Claude Code sessions on the deck — see active agents, send prompts, manage contexts. Preview uses illustrative sessions.

Illustrative coding agent summary and session detailsIllustrative coding agent summary and session details

Configuration

Simple, straightforward YAML

No JavaScript required for basic usage. Define decks, buttons, and actions in a human-readable YAML file.

config.yml
theme: default

decks:
  main:
    name: Main
    buttons:
      - position: 0
        type: core:action
        config:
          icon: icon://github
          label: GitHub
        actions:
          tap: "xdg-open https://github.com"

      - position: 2
        type: date-time:time
        config:
          variant: big

      - position: 4
        type: weather:weather
        config:
          location:
            latitude: 42.2304
            longitude: -8.7256
            name: Vigo
Strict typing

Full schema validation prevents runtime errors before your deck ever boots.

Hot reload

YAML changes reload automatically via SIGUSR1 — no restart loop.

Addons as types

Simple addon:type syntax for any button — your own, third-party, or core.

Full configuration reference

Visual configuration

Shape your deck.
See it as you go.

The config UI pairs a live deck preview with an editor for your decks and buttons. Start in emulator mode to try changes before using hardware.

sirenodeck start --emulator

Explore the emulator
SirenoDECK · Configure
Weather demodemo-weather.yml
Weather demo deck preview with configured city tiles

Button · Weather

Type weather:weather

Location Vigo

Apply change

Illustrative editor layout · weather demo deck preview

For your coding agent

Your setup, explained in your own words.

The optional SirenoDECK skill helps your agent find the right config, understand included YAML, and propose changes to decks, buttons, and themes. You review edits before they happen.

Read the config skill

Install for your preferred agent

sirenodeck skills

Or install directly, without running SirenoDECK:

npx skills add https://github.com/sergiocarracedo/sireno-deck/tree/main/skills/sirenodeck-config --skill sirenodeck-config --global

Optional on first interactive startup. The agent asks before modifying your configuration.

Remote mode

Your deck,
in your pocket.

No Stream Deck hardware required. Start the daemon with--remoteand it serves a token-gated, deck-only view on your LAN. Scan the QR it prints and your phone becomes the deck.

sirenodeck start --remote

The URL is token-gated — only devices with the QR-scoped link can connect. Buttons tap straight into the same runtime as hardware.

Connectivity & remote docs
Demo deck shown inside a landscape phone mockup; remote mode displays the same deck on your phone
QR code linking to the SirenoDECK remote emulator

scan at runtime for your deck URL

Get started

Up in 60 seconds

Install with Homebrew on macOS, Linux, or Windows through WSL.

1

Install the CLI

brew install sergiocarracedo/tap/sirenodeck
2

Start the onboarding

sirenodeck start
First run launches onboarding: pick your device (or the emulator), connect, done. A starter config.yml is generated for you.
3

Make it yours

~/.config/sirenodeck/config.yml
Edit the generated config — decks, buttons, themes. Changes apply on save.Full configuration reference
4

Extend it

pnpm i -g @sirenodeck/addon-app-shortcuts
Then reference it in your config:addons: ["@sirenodeck/addon-app-shortcuts"].Browse the addon registry