Create your own plugin
To get started on creating your own Stream Deck plugin, you will need:
a Stream Deck hardware
to download and install the latest release of Stream Deck. Version 4.1 or later is required.
Creating your plugin
The simplest solution to get started and create your own plugin is to:
- install one of the sample plugins in the Stream Deck application.
- quit the Stream Deck application
locate the installed plugin in the Finder/Explorer. You should find a folder with the extension
On macOS, you will find it here:
On Windows, you will find it here:
Rename the folder
com.elgato.counter.sdPluginto use a unique URI, for example
- Edit the
manifest.jsonfile to change the actions UUID, name, plugin name, author, ...
If you now launch the Stream Deck application, your plugin should appear in the
Custom category in the Actions list.
- on macOS, you will need to run the following command line in the Terminal:
defaults write com.elgato.StreamDeck html_remote_debugging_enabled -bool YES
- on Windows, you will need to add a DWORD
1in the registry
@ HKEY_CURRENT_USER\Software\Elgato Systems GmbH\StreamDeck.
After you relaunch the Stream Deck app, you can open http://localhost:23654/ in Chrome, where you will find a list of 'Inspectable pages' (plugins). Inspecting your plugin is pretty straightforward: Click the reverse DNS name of your plugin and Chrome shows it's developer tools, where you can further inspect used components and log messages.
Debugging your compiled plugin (C++, Objective-C, ...)
After the Stream Deck application launches the plugin, you can attach to it in Xcode or Visual Studio. When implementing your own plugin, you should create and debug your plugin in the folder
~/Library/Application Support/com.elgato.StreamDeck/Plugins/ (macOS) and in the folder
With Xcode, you can even start and debug the plugin by using the
Wait for executable to be launched in the
Run settings of the Scheme.
Debugging the Property Inspector
To make the Property Inspector appear in the above mentioned list, it needs to be active. Please note, that the Property Inspector is instantiated everytime it is shown, so it will only appear in the list of inspectable pages, if it is visible in StreamDeck software.
While plugins have no visible DOM elements, you can inspect Property Inspector's elements using the element-inspector from developer tools. To do so, just activate the element-inspector and click the element in question inside StreamDeck's property inspector.
The plugin and Property Inspector can use the
logMessage event to write a debug messages to a logs file.
Logs are saved to disk per plugin in the folder
~/Library/Logs/StreamDeck/ on macOS and
%appdata%\Elgato\StreamDeck\logs\ on Windows. Note that the log files are rotated each time the Stream Deck application is relaunched.
Crash and exit codes
If your compiled plugin unexpectedly crashes, the Stream Deck application will try to restart it. In this case, you will see in the Stream Deck logs a line like:
The plugin 'CPU' crashed with code 12345
The code is a system error code depending on the platform. Here are some good references to learn more about these error codes: