A Stream Deck plugin that drives MAGDA over its remote JSON-RPC WebSocket API. Targets the Stream Deck + (8 keys, 4 push dials, touch strip); on other decks the key pages still work, dial actions simply never appear.
Nothing on the deck is a static image. Every key and dial is painted by the plugin from MAGDA's live state, so what you see is always what MAGDA is doing.
Once published, install from the Elgato Marketplace. Until then, download the
.streamDeckPlugin file from a release and double-click it.
The plugin talks to MAGDA over a WebSocket listener that is off by default.
- Open MAGDA.
- Go to Settings > Connections.
- Switch the WebSocket listener on.
- The first time the plugin connects it lands read-only; grant it Transport, Edit and Session access from the same screen.
MAGDA and the plugin must be on the same machine; the plugin only ever
connects to 127.0.0.1.
See docs/SPEC.md for the full spec and docs/layout.md for the key/dial grid.
Requires Node 20, matching the runtime the Stream Deck app bundles.
npm install
npm run build # rollup -> com.magda.streamdeck.sdPlugin/bin/plugin.js
npm run link # symlinks the .sdPlugin into the Stream Deck app
npm run watch # rebuilds and restarts the plugin on change
npm run lint
npm run typecheck
npm test
npm run validate # streamdeck validate
npm run pack # emits com.magda.streamdeck.streamDeckPlugindocs/protocol.md tracks what the plugin needs from MAGDA's remote API, including the small set of operations magda-core still needs to add before v1.
GPL-3.0-or-later, matching magda-core. See LICENSE.