To download the current official release, visit our page on the Elgato marketplace.
If you're interested in developing a software intergration with Meld Studio, you can find our API documentation here. If you have any questions, please join our discord and reach out in #support.
The plugin is built on Elgato's official Node.js Stream Deck SDK (@elgato/streamdeck). It runs as a single long-lived Node process, so there is exactly one connection to Meld Studio for the whole plugin, shared by every action and every property inspector.
src/plugin.ts— entry point; registers the 14 actions and starts the Meld connection.src/meld/— the Meld service layer: a single QWebChannel-over-WebSocket connection (connection.ts) with automatic reconnect and a track-observer registry, a typed session model (session.ts/types.ts), and typed events (events.ts).src/actions/— one file per action, all extendingMeldAction(base.ts), which turns Meld/session/reconnect events into a single declarativerender()call.src/ui-bridge.ts— answers property-inspector requests for session data from the one connection; the inspectors underco.meldstudio.streamdeck.sdPlugin/ui/never talk to Meld directly.
The build (rollup) bundles src/plugin.ts into co.meldstudio.streamdeck.sdPlugin/bin/plugin.js.
Requires Stream Deck 7.1+ and bundles the Node 24 runtime (see manifest.json).
We primarily develop on macOS, so these instructions are tailored to macOS. Feel free to submit a PR to update them for Windows if that's your flavor of OS.
Check out the repository and run
npm install.Run
scripts/install.sh(optionally,--freshto remove and reinstall).This builds the plugin (
npm run build) and syncs it into~/Library/Application\ Support/com.elgato.StreamDeck/Plugins/.Code away. Type-check with
npm run typecheck.Run
scripts/install.shagain to rebuild and update the install, or usenpm run watchto rebuild on save and restart the plugin automatically.See below for debugging information.
The plugin runs in Node, so it is debugged as a Node process, while property inspectors remain web pages.
- Plugin (Node): the manifest enables the Node inspector (
"Nodejs": { "Debug": "enabled" }). Attach a debugger / openchrome://inspectin Chrome to connect to the plugin process. Logs are written toco.meldstudio.streamdeck.sdPlugin/logs/. - Property inspectors (web): run
defaults write com.elgato.StreamDeck html_remote_debugging_enabled -bool YESand restart the Stream Deck app, then navigate tohttp://localhost:23654/in Chrome to inspect the inspector pages.
Elgato provides a CLI packaging tool.
[https://docs.elgato.com/sdk/plugins/packaging]
$ npm install
$ npm run build
$ npx streamdeck validate co.meldstudio.streamdeck.sdPlugin
$ npx streamdeck pack co.meldstudio.streamdeck.sdPlugin
Or simply npm run pack, which builds and packs in one step.

