So bringst du ein Live-Python-Skript auf eine Stream-Deck-Taste
Ein Stream Script läuft weiter und gibt eine Zeile aus, sobald sich die Taste ändern soll. Beschreibe die Taste und lass einen KI-Agenten das Skript schreiben, oder folge selbst den Regeln für ausgegebene Zeilen.
- Arise Python Commander
- 3 Min. Lesezeit
- Geprüft am 24. Oktober 2026
- Von Arise Create
- Plattform
- Windows, macOS
- Stream-Deck-Software
- ab 7.6
Voraussetzungen
| Anforderung | Angabe |
|---|---|
| Betriebssystem | Windows 11 (64-Bit, Intel/AMD) oder macOS ab 13 |
| Stream-Deck-Software | Stream-Deck-Software ab Version 7.6 |
- Betriebssystem
- Angabe: Windows 11 (64-Bit, Intel/AMD) oder macOS ab 13
- Stream-Deck-Software
- Angabe: Stream-Deck-Software ab Version 7.6
Schritte

Installiere das Plugin (Einrichtung von Arise Python Commander) und ziehe dann Stream Script auf eine Taste oder eine Neo-Info-Leiste.
Klappe im Inspector "Ask an AI agent to build this" auf.
Sag unter Description, was die Taste zeigen soll, zum Beispiel "the temperature outside, blue when it's below freezing".
Drück Copy prompt. Der Prompt enthält die Skriptregeln, die Größe der Taste und die Lieferschritte, nie deinen Push-Token.
Füge ihn in einen Agenten auf demselben Rechner ein, der Dateien lesen und Links öffnen kann, etwa Claude Code.
Dein Agent kann schreiben, testen und lokal liefern. Erfolg hängt von Fähigkeiten und Datenzugriff ab. Die Lieferung speichert eine Inline-Kopie.
Drück die Taste einmal. Sie zeigt live, dann jede ausgegebene Zeile. Eine Info-Leiste startet ohne Druck.
Was ein Stream Script ausgibt
Gib pro Update eine kurze Zeile aus. "Show example Python stream" im Inspector öffnet ein funktionierendes Skript.
| Gedruckte Zeile | Wirkung |
|---|---|
| print("...", flush=True) | Nutze flush=True oder sys.stdout.flush() für sofortige Zeilen. Sonst kann Python die Ausgabe bis später oder zum Prozessende puffern. |
| Reiner Text | Wird zum Wert, etwa ok oder 23,5 Grad. Eine Zeile gleich Match value 1 oder 2 zeigt ihr Bild. |
| progress:42|Syncing, progress=42, 75% | Uploading | Ein Balken, Prozentwert auf 0 bis 100 begrenzt. |
| Eine data:image/...-URI, rohes <svg>-Markup oder JSON {"image": "..."} | Malt die ganze Fläche: 144x144 auf einer Taste, 232x50 auf der Info-Leiste. |
| layout=radial; oder color=orange; vor einer Zeile | Wählt das Layout (nur bei Auto detect) oder färbt diese Aktualisierung um. Auf der Info-Leiste füllt color=0:#ff0000,1:#0000ff; den Balken. |
| Alles auf stderr | Färbt die Taste rot. Schreib Diagnosen in eine Datei. |
| Das Skript endet | Zeigt "done" (ohne Ausgabe) oder "ended" (mit Ausgabe). Auf einer Taste startet ein Druck es neu. |
- print("...", flush=True)
- Wirkung: Nutze flush=True oder sys.stdout.flush() für sofortige Zeilen. Sonst kann Python die Ausgabe bis später oder zum Prozessende puffern.
- Reiner Text
- Wirkung: Wird zum Wert, etwa ok oder 23,5 Grad. Eine Zeile gleich Match value 1 oder 2 zeigt ihr Bild.
- progress:42|Syncing, progress=42, 75% | Uploading
- Wirkung: Ein Balken, Prozentwert auf 0 bis 100 begrenzt.
- Eine data:image/...-URI, rohes <svg>-Markup oder JSON {"image": "..."}
- Wirkung: Malt die ganze Fläche: 144x144 auf einer Taste, 232x50 auf der Info-Leiste.
- layout=radial; oder color=orange; vor einer Zeile
- Wirkung: Wählt das Layout (nur bei Auto detect) oder färbt diese Aktualisierung um. Auf der Info-Leiste füllt color=0:#ff0000,1:#0000ff; den Balken.
- Alles auf stderr
- Wirkung: Färbt die Taste rot. Schreib Diagnosen in eine Datei.
- Das Skript endet
- Wirkung: Zeigt "done" (ohne Ausgabe) oder "ended" (mit Ausgabe). Auf einer Taste startet ein Druck es neu.
Script Canvas: mal die Taste selbst

- Jede ausgegebene Zeile ist ein Frame: eine data:image/...-URI, rohes <svg>-Markup oder JSON wie {"image": "...", "title": "..."}.
- Gib einem SVG width und height, sonst nimmt das Plugin die Größe der viewBox, ersatzweise 144x144.
- Das Skript startet, sobald die Taste erscheint. Andere Zeilen werden ignoriert, Debug-Ausgaben verschwinden also.
- Das Plugin schreibt {"event": "ready"} beim Start und {"event": "keyDown"} bei jedem Druck auf stdin. Lesen ist optional.
- stdin blockiert: Lies es in einem Hintergrund-Thread und gib die Frames weiter aus der Hauptschleife aus.
- Beendet sich das Skript, zeigt die Taste stopped, und ein Druck startet es neu. Alles auf stderr zeigt einen Fehler.
Fehlerbehebung
| Du siehst | Mögliche Ursache | Lösung |
|---|---|---|
| Die Taste bleibt auf "live" und aktualisiert sich nie. | Die Ausgabe ist möglicherweise gepuffert und erreicht das Plugin deshalb nicht sofort. | Nutze flush=True bei jedem print oder rufe sys.stdout.flush() auf. |
| Die Taste zeigt sofort "done" oder "ended". | Das Skript hat sich beendet. | Halte es in einer Schleife. |
| Die Taste zeigt einen Fehler, obwohl das Skript funktioniert. | Es wurde etwas auf stderr geschrieben, auch eine harmlose Warnung. | Schreib Diagnosen stattdessen in eine Datei. |
| Ein Inline-Skript findet seine Dateien oder Imports nicht. | __file__ zeigt auf das temporäre Skript, nicht aufs Projekt. Relative Pfade nutzen das Plugin-Arbeitsverzeichnis; Projektdateien/Module werden nicht mitkopiert. | Nutze absolute Pfade; dateibasierte Skripte finden Projektdateien über __file__. |
| Der Agent kann das Skript nicht liefern. | Ein Chat im Browser kann ein Skript schreiben, es aber nicht auf die Taste legen. | Füge das Skript selbst in "Script text" ein oder nimm einen Agenten, der auf diesem Rechner läuft. |
- Die Taste bleibt auf "live" und aktualisiert sich nie.
- Mögliche Ursache: Die Ausgabe ist möglicherweise gepuffert und erreicht das Plugin deshalb nicht sofort.
- Lösung: Nutze flush=True bei jedem print oder rufe sys.stdout.flush() auf.
- Die Taste zeigt sofort "done" oder "ended".
- Mögliche Ursache: Das Skript hat sich beendet.
- Lösung: Halte es in einer Schleife.
- Die Taste zeigt einen Fehler, obwohl das Skript funktioniert.
- Mögliche Ursache: Es wurde etwas auf stderr geschrieben, auch eine harmlose Warnung.
- Lösung: Schreib Diagnosen stattdessen in eine Datei.
- Ein Inline-Skript findet seine Dateien oder Imports nicht.
- Mögliche Ursache: __file__ zeigt auf das temporäre Skript, nicht aufs Projekt. Relative Pfade nutzen das Plugin-Arbeitsverzeichnis; Projektdateien/Module werden nicht mitkopiert.
- Lösung: Nutze absolute Pfade; dateibasierte Skripte finden Projektdateien über __file__.
- Der Agent kann das Skript nicht liefern.
- Mögliche Ursache: Ein Chat im Browser kann ein Skript schreiben, es aber nicht auf die Taste legen.
- Lösung: Füge das Skript selbst in "Script text" ein oder nimm einen Agenten, der auf diesem Rechner läuft.
Nicht weitergekommen? Schreib uns
Wie es weitergeht
Produkthandbuch
Arise Python Commander
Arise Python Commander
- Windows, macOS
- ab 7.6
Nicht weitergekommen? Schreib uns