Library for interacting with Stream Decks
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Fl1tzi 0ce26ed2c7 Update '' 2 months ago
.cargo Device connection, some info methods 7 months ago
src apply changes and fmt 2 months ago
.gitignore Finished info, starting with base type 7 months ago
Cargo.lock Serial test is a dev dependency 3 months ago
Cargo.toml change name 2 months ago
LICENSE Initial commit 7 months ago Update '' 2 months ago
no-place-like-localhost.jpg Set methods and image write 7 months ago


Library for interacting with Stream Decks through hidapi.

Forked from streamduck-org/elgato-streamdeck


// Create instance of HidApi
let hid = new_hidapi();

// List devices and unsafely take first one
let (kind, serial) = StreamDeck::list_devices(&hid).remove(0);

// Connect to the device
let mut device = StreamDeck::connect(&hid, kind, &serial)
    .expect("Failed to connect");

// Print out some info from the device
    "Connected to '{}' with version '{}'",

// Set device brightness

// Use image-rs to load an image
let image = open("no-place-like-localhost.jpg").unwrap();

// Write it to the device
device.set_button_image(7, image).unwrap();

Supported Devices

Support of the devices is the same as from libraries above, I only personally tested Original v2. I'll just keep updating this library to match upstream libraries.

But as it stands, this library should support following devices:

  • Stream Deck Original
  • Stream Deck Original V2
  • Stream Deck XL
  • Stream Deck XL V2
  • Stream Deck Mini
  • Stream Deck Mini Mk2
  • Stream Deck Mk2
  • Stream Deck Pedal