SDKActive

Stream Deck SDK

The Stream Deck SDK enables developers to create plugins for Stream Deck devices, with support for localization.

Open source page

Field note

What it does

The Stream Deck SDK supports localization, allowing plugins to be built for a wider audience. It provides resources for overriding manifest strings and custom localizations.

Capabilities

Available capabilities

Tags

Tags

Ways to use it

Ways to use it

cli

Node.js / @elgato/cli

npm

TypeScript / @elgato/streamdeck

sdk

TypeScript / @elgato/streamdeck

npm

TypeScript / @elgato/streamdeck

npm

TypeScript / @elgato/streamdeck

cli

JavaScript / @elgato/cli

sdk

TypeScript / @elgato/streamdeck

npm

TypeScript / @elgato/streamdeck

sdk

TypeScript / @elgato/streamdeck

cli

Node.js / @elgato/cli

sdk

TypeScript / @elgato/streamdeck

sdk

TypeScript / @elgato/streamdeck

Product features

Product features

Action Settings

Settings associated with an action instance, stored as JSON.

Actions

Example action provided in scaffolded plugin.

Auto Install Profiles

Bundled profiles can be automatically installed on plugin installation.

Built-in Layouts

Predefined layouts for touch strip display.

Commands

Commands for settings, feedback, images, and titles.

Custom Layouts

Define custom layouts using JSON files.

Custom Strings

Define custom localization strings accessible via streamDeck.i18n.translate.

Debugging ​

Dials & Touch Strip

Events

Events for dial down, rotate, up, and touch tap.

File Structure

Predefined directory layout for plugin source and compiled output.

Global Settings

Plugin-wide settings, accessible only by the plugin.

Layouts ​

Localized Resources

Resources to override manifest strings and provide custom localizations.

Manifest

Defines plugin metadata.

Manifest Encoder Layout

Set default layout via manifest property.

Manifest String Localization

Localize strings in the manifest such as action names and tooltips.

NPM Scripts

Pre-populated build and watch scripts for development.

onDeviceDidChange

Event fired when a device changes (e.g., name or size).

onDeviceDidConnect

Event fired when a device connects.

onDeviceDidDisconnect

Event fired when a device disconnects.

Open URL in Default Browser

Opens a URL in the user's default browser using streamDeck.system.openUrl().

Profile Management

Create, bundle, and switch Stream Deck profiles within plugins.

Programmatic Layout

Assign layout programmatically using setFeedbackLayout.

Programmatically ​

Property Inspectors

UI for configuring actions.

Reserved Layout Item Keys ​

Setup Wizard

CLI command to scaffold a basic Stream Deck plugin.

Switch to Profile

Plugins can switch to a bundled profile using its name.

System Wake Event

Provides onSystemDidWakeUp event to restore connections/state after system wake.

Trigger Descriptions ​

Type Safety

Define settings types for intellisense and type hints.

Update Trigger Descriptions ​

Updating Layouts ​

What is an Encoder? ​