Skip to content

Overview

Stream Deck Hardware

Stream Deck is a USB peripheral providing several dedicated, programmable keys. Each key operates as a separate graphics display that can show the key's function, status, or title. The Stream Deck hardware exists in two forms:

  • Stream Deck with 15 LCD keys

  • Stream Deck Mini with 6 LCD keys

The two models behave the same, they only differ in the number of keys. In this documentation the term Stream Deck will be used for both the Stream Deck and Stream Deck Mini hardwares.


Stream Deck Software

The Stream Deck application is easy and intuitive to use. It lets you assign keys, and then decorate and label them. The application has multiple builtin integrations: Game Capture, OBS, XSplit, TipeeeStream, Twitch, YouTube, Mixer, execute macros, launch programs, open websites, use hotkeys and more.

Adding powerful actions to the canvas in Stream Deck is as easy as drag and drop thanks to native integrations with popular software and services. Pick an action from the right hand side action list and drag it onto a key in the canvas:

Each action, once on the canvas can be customized in various ways by adding a title, changing the icon to a custom image and more:


SDK

In this documentation, we describe how you can create a custom action to extend the functionalities of the Stream Deck application. Your actions will appear in the right panel in the Stream Deck application and the users will be able to use them to create keys:

The SDK has been designed to be:

  • powerful: receive the key events, execute your own code on such events, customize the icon and text, ...
  • simple: the communication is done with simple json structures
  • language agnostic: you can write your custom plugin in Javascript, C++, Objective-C, ...
  • secure: each plugin runs in its own process
  • cross-platform: the SDK is available for macOS and Windows. If you write your plugin in Javascript, the plugin will also work on both platforms.

Please note that we built our sample plugins so that third party developers can reuse most of the code and don't need to rewrite everything from scratch. If you plan to create a plugin written in: