Important
The new Stream Deck SDK is now available, with new a Stream Deck CLI for creating plugins.
This repository has been marked as deprecated, and will soon be deleted. If you have any questions, please contact us via maker@elgato.com, or join our Makertplace Makers Discord community.
The Stream Deck Plugin Template
is a template to let you get started quickly when writing a JavaScript plugin for Stream Deck. Stream Deck Plugin Template
requires Stream Deck 6.0 or later.
Stream Deck Plugin Template
is a complete plugin that shows you how to
- load and save settings using Stream Deck's persistent store
- setup and communicate with the Property Inspector
- pass messages directly from Property Inspector to the plugin (and vice versa)
- localize your Property Inspector's UI to another language
- code written in Javascript
- cross-platform (macOS, Windows)
- localization support
- styled Property Inspector included
- Property Inspector contains all required boilerplate code to let you instantly work on your plugin's code.
A short guide to help you get started quickly.
git clone https://github.com/elgatosf/streamdeck-plugin-template
Rename the folder as well as any references.
com.elgato.template.sdPlugin
with my.domain.plugin-name.sdPlugin
Important
When sym-linking the plugin, the folder name must end with .sdPlugin
.
You can either clone the javascript library or add it as a submodule to your repository.
git clone https://github.com/elgatosf/streamdeck-javascript-sdk src/my.domain.plugin-name/libs
git submodule add https://github.com/elgatosf/streamdeck-javascript-sdk src/my.domain.plugin-name/libs
You can get started in app.js!
const myAction = new Action('com.elgato.template.action');
/**
* The first event fired when Stream Deck starts
*/
$SD.onConnected(({ actionInfo, appInfo, connection, messageType, port, uuid }) => {
console.log('Stream Deck connected!');
});
myAction.onKeyUp(({ action, context, device, event, payload }) => {
console.log('Your key code goes here!');
});
myAction.onDialRotate(({ action, context, device, event, payload }) => {
console.log('Your dial code goes here!');
});