Elgato Stream Deck Entwickler-Guide
Dieser Guide erklärt, wie du Stream Deck Plugins schnell erstellst, wann du das offizielle JavaScript/TypeScript SDK nutzt, wann Python der bessere Weg für lokale Steuerung ist und wo .NET/C# für native Plugin-Autoren passt.
Der primäre Plugin-Weg basiert auf Elgatos Dokumentation zum Stream Deck SDK 2.0.0, dem offiziellen Repository elgatosf/streamdeck, der Dokumentation der Stream Deck CLI, python-elgato-streamdeck und StreamDeckToolkit. Produktanforderungen und Marketplace-Regeln ändern sich, prüfe daher die verlinkten Quellen vor der Veröffentlichung.
1. Die Kurzfassung​
Nutze TypeScript mit dem offiziellen Elgato SDK für normale Stream Deck Plugins.
Nutze Python mit python-elgato-streamdeck, wenn du das physische Gerät direkt steuern willst, üblicherweise ohne die offizielle Stream Deck App.
Nutze C#/.NET, wenn du eine native Plugin-Architektur brauchst, bestehende .NET-Businesslogik hast oder Windows-lastige Integrationen umsetzt und mit einem weniger aktuellen Ökosystem als Elgatos offiziellem Node.js-Weg zurechtkommst.
Vermeide das rohe WebSocket-Protokoll, wenn du keinen triftigen Grund hast. Elgato dokumentiert es für native Konsolen-Apps, beschreibt native Plugins aber ausdrücklich als fortgeschritten und empfiehlt das Node.js SDK für die meisten Entwickelnden.
2. Wege durch diesen Guide​
| Ziel | Hier starten | Warum |
|---|---|---|
| Ein Marketplace-fähiges Plugin erstellen | JavaScript- und TypeScript-Plugins | Offizielles SDK, CLI, Scaffold, Build, Watch, Pack |
| Zwischen JS, Python und C# entscheiden | Architektur und SDK-Karte | Vergleicht Plugin-SDKs, direktes HID, native Plugins und UI-Optionen |
| Ein lokales Automatisierungs-Panel bauen | Python HID-Automatisierung | Direkte Gerätesteuerung, Tastenbilder, Callbacks, Helligkeit |
| Nutzerkonfigurierbare Plugin-Einstellungen hinzufügen | Manifest und Property Inspectors | Action-Metadaten, Einstellungen, HTML-Inspectors, UI-Bibliothek |
| Ein Plugin für die Auslieferung vorbereiten | Packaging und Distribution | Validierung, .streamDeckPlugin, Marketplace, DRM-Bereitschaft |
| Merkwürdiges Verhalten debuggen | Fehlerbehebungs-Checkliste | Plugin-Sichtbarkeit, Hot Reload, Berechtigungen, Logs, Gerätekonflikte |
3. Mentales Modell​
Ein Stream Deck Projekt kann eine von zwei sehr unterschiedlichen Sachen sein:
| Modell | Runtime | Nutzererlebnis | Beste Sprache |
|---|---|---|---|
| Stream Deck Plugin | Läuft unter der Stream Deck Desktop-App | Nutzende installieren ein Plugin, fügen Actions zu Profilen hinzu, konfigurieren Property Inspectors | TypeScript / JavaScript |
| Direkter Gerätecontroller | Spricht direkt über HID mit der Hardware | Deine App besitzt das Deck und zeichnet jeden Zustand jeder Taste/jedes Bildschirms | Python |
Die meiste Verwirrung entsteht durch das Vermischen dieser Modelle. Python kann exzellent sein, um die Hardware zu steuern, aber es ist nicht der schnellste Weg, ein normales Stream Deck Marketplace-Plugin zu produzieren. Das offizielle SDK gibt dir die Integration in die Stream Deck App, Manifest-Konventionen, den Property-Inspector-Weg, den Packaging-Workflow und eine Marketplace-fähige Struktur.
4. Aktuelle offizielle Basis​
Elgatos aktuelle SDK- und CLI-Doku listet diese praktischen Anforderungen:
- Node.js 24 oder neuer für aktuelle SDK/CLI-Entwicklung.
- Stream Deck App 7.1 oder neuer.
- Ein Stream Deck Gerät oder Stream Deck Mobile zum Testen, wenn keine Hardware verfügbar ist.
@elgato/clizum Scaffolding, Linken, Neustarten, Validieren und Packen von Plugins.- Eine Reverse-DNS-Plugin-UUID, etwa
com.example.timer.
Das von streamdeck create generierte Scaffold erzeugt einen Quellbaum mit src/, einem kompilierten *.sdPlugin/-Verzeichnis, manifest.json, ui/, imgs/, Build-Skripten und einem Watch-Workflow.
5. Empfohlener Ablauf für das erste Plugin​
nvm install 24
nvm use 24
npm install -g @elgato/cli@latest
streamdeck create
cd my-plugin
npm run watch
Ändere dann eine Action nach der anderen:
- Bearbeite die Action-Implementierung in
src/actions/. - Halte die Action-UUID stabil.
- Aktualisiere Titel, Bild oder Einstellungen aus dem Action-Event.
- Füge einen Property Inspector nur hinzu, wenn die Action Nutzerkonfiguration braucht.
- Führe
streamdeck validatevor dem Packen aus. - Führe
streamdeck pack *.sdPluginaus, wenn das Plugin distributionsbereit ist.
6. Verzeichniskarte​
docs/tools/streamdeck/
├── index.mdx
├── architecture-and-sdk-map.mdx
├── javascript-typescript-plugins.mdx
├── python-hid-automation.mdx
├── dotnet-native-plugins.mdx
├── manifest-property-inspector.mdx
├── packaging-distribution.mdx
└── troubleshooting-checklist.mdx