Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

StreamDeckSharp is a simple (unofficial) .NET interface for the Elgato Stream Deck

license GitHub release Nuget version

Recent Changes

Quickstart (TL;DR)

At the moment only Windows is "officially" supported.
Need help with Linux or macOS? โ†’ Wiki: Supported Platforms

  1. Add StreamDeckSharp reference (via nuget or download latest release)
  2. Add a using directive for StreamDeckSharp: using StreamDeckSharp;
I want to... Code (C#)
create a device reference var deck = StreamDeck.OpenDevice();
set the brightness deck.SetBrightness(50);
create bitmap for key var bitmap = KeyBitmap.Create.FromFile("icon.png")
set key image deck.SetKeyBitmap(keyId, bitmap)
clear key image deck.ClearKey(keyId)
process key events deck.KeyStateChanged += KeyHandler;

Make sure to dispose the device reference correctly (use using whenever possible)


If you want to see some examples take a look at the example projects.
Here is a short example called "Austria". Copy the code and start hacking ๐Ÿ˜‰

using System;
using OpenMacroBoard.SDK;
using StreamDeckSharp;

namespace StreamDeckSharp.Examples.Austria
    class Program
        static void Main(string[] args)
            //This example is designed for the 5x3 (original) Stream Deck.

            //Create some color we use later to draw the flag of austria
            var red = KeyBitmap.Create.FromRgb(237, 41, 57);
            var white = KeyBitmap.Create.FromRgb(255, 255, 255);
            var rowColors = new KeyBitmap[] { red, white, red };

            //Open the Stream Deck device
            using (var deck = StreamDeck.OpenDevice())

                //Send the bitmap informaton to the device
                for (int i = 0; i < deck.Keys.Count; i++)
                    deck.SetKeyBitmap(i, rowColors[i / 5]);


Here is what the "Rainbow" example looks like after pressing some keys

Rainbow example photo

Play games on a StreamDeck

For example minesweeper (take a look at the example projects if you are interested in that)

You can even play videos on a StreamDeck

Here is a short demo, playing a video on a stream deck device.

Demo video of the example
*The glitches you can see are already fixed.

More about that in the Wiki: Play video on StreamDeck