Skip to content

Getting Started

Fresh

Prerequisites

RequirementVersion
Node.js20 or higher
Stream Deck6.9 or higher
DeviceStream Deck hardware or Stream Deck Mobile
EditorVS Code (recommended)
TerminalAny shell access

SOP: Install Node.js

Install a Node version manager first, then use it to install Node.js 20:

bash
nvm install 20
nvm use 20
node -v  # Should output v20.x.x

Windows PowerShell

You may need to set the execution policy before running CLI tools:

powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

SOP: Install Stream Deck CLI

Choose your package manager:

bash
npm install -g @elgato/cli
bash
yarn global add @elgato/cli
bash
pnpm add -g @elgato/cli

SOP: Create Your First Plugin

Run the interactive creation wizard:

bash
streamdeck create

The wizard prompts for:

  1. Author name - Your developer identity
  2. Plugin name - Display name in Stream Deck
  3. Plugin UUID - Reverse-DNS format (e.g., com.yourname.my-plugin)
  4. Description - What the plugin does

UUID Format

UUIDs must use lowercase alphanumeric characters, hyphens, and periods only. Follow reverse-DNS convention: com.company.plugin-name

Project Structure

After creation, your plugin directory contains:

my-plugin/
├── .sdPlugin/           # Compiled output
│   ├── bin/             # Built JavaScript
│   ├── imgs/            # Plugin images
│   ├── logs/            # Runtime logs
│   ├── ui/              # Property Inspector HTML
│   └── manifest.json    # Plugin manifest
├── src/                 # TypeScript source
│   ├── actions/         # Action implementations
│   └── plugin.ts        # Entry point
├── package.json
├── rollup.config.mjs
└── tsconfig.json

SOP: Run in Development Mode

Start the watch mode for hot-reload during development:

bash
npm run watch

This command:

  1. Builds your plugin from TypeScript source
  2. Installs it in Stream Deck automatically
  3. Watches for file changes and auto-reloads

Troubleshooting

If your plugin doesn't appear in Stream Deck after running watch:

Verification Checklist

  • [ ] Node.js 20+ installed and verified with node -v
  • [ ] Stream Deck CLI installed globally
  • [ ] Plugin scaffolded with streamdeck create
  • [ ] Plugin visible in Stream Deck after npm run watch
  • [ ] Hot-reload working on file saves