Skip to content

Create your own plugin

Setup

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.0 or later is required.


Creating your plugin

The simplest solution to get started and create your own plugin is to:

  1. install one of the sample plugins in the Stream Deck application.
  2. quit the Stream Deck application
  3. locate the installed plugin in the Finder/Explorer. You should find a folder with the extension .sdPlugin in the Plugins folder.

    On macOS, you will find it here:

    bash ~/Library/Application Support/com.elgato.StreamDeck/Plugins/

    On Windows, you will find it here:

    %appdata%\Roaming\Elgato\StreamDeck\Plugins\com.elgato.StreamDeck\Plugins\

  4. Rename the folder com.elgato.counter.sdPlugin to use a unique URI, for example com.example.myplugin.sdPlugin

  5. Edit the manifest.json file 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.

You can use vanilla Javascript (ES2015, ES6 and even ES7 is okay to use) or you can even include/import a library of your choice (e.g. jQuery, VueJS, etc...).


Debugging

Debugging your Javascript plugin

You can debug your Javascript plugin and/or Property Inspector using Google Chrome's web developer tools. In order to do so, you first need to enable the HTML remote debugger in Stream Deck.

  • 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 html_remote_debugging_enabled with value 1 in 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 %appdata%\Elgato\StreamDeck\Plugins (Windows).

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.