Werkzeuge04 / 12
LaunchDeck
Ein Novation Launchpad als programmierbare Steuerfläche
- Status
- Funktionsfähig, nicht veröffentlicht
- Zeitraum
- 2026 →
- Rolle
- Konzeption und Entwicklung, von Anfang bis Ende
- Für
- Entwickler und Power-User, die physische Bedienelemente für ihren Desktop und ihre KI-Agenten wollen.
Problem
Ein Raster aus RGB-Pads ist eine großartige physische Schnittstelle, aber außerhalb von Musiksoftware tut es nichts. Gleichzeitig halten Coding-Agenten ständig an, um nach Erlaubnis zu fragen, und jede Antwort bedeutet einen Fensterwechsel.
Eine Desktop-App in Rust und Tauri, die ein Novation Launchpad in eine Steuerfläche für den Computer verwandelt: Pads öffnen Apps, lösen Tastenkürzel aus, rufen Dienste auf und leuchten, um Zustände zu zeigen. KI-Agenten können auf den Pads liegen, sodass eine Berechtigungsanfrage mit einem Druck genehmigt oder abgelehnt wird.
Fallstudie
LaunchDeck folgt einer Regel: Rust besitzt die Laufzeit, React bearbeitet, visualisiert und konfiguriert nur. Wird das Fenster geschlossen, arbeiten die Pads weiter; die App läuft aus der Taskleiste.
Ein Workspace enthält Flächen, Seiten und Pads. Jedem Pad sind eine Aktion und eine Liste von Feedback-Regeln zugeordnet, die Live-Zustände lesen oder auf Ereignisse reagieren, damit das Licht immer etwas Wahres zeigt. Die Auto-Context-Engine wechselt Seiten je nach Anwendung im Vordergrund. Ein simuliertes Launchpad X ist eingebaut, sodass alles ohne Hardware funktioniert.
Agent Control bringt KI-Agenten auf das Raster. Claude Code verbindet sich über seine Hooks, andere Agenten über eine versionierte WebSocket-Bridge auf localhost. Registrieren gewährt nie Kontrolle, und eine Anfrage wird nie standardmäßig genehmigt: Timeouts, Fehler und Neustarts enden immer ohne Entscheidung.
Es ist das erste Projekt in einem Stack abseits meiner üblichen Webarbeit: Rust, Tauri, MIDI und SysEx sowie eine WebAssembly-Plugin-Sandbox. Version 0.3.0 ist die erste externe Alpha.
Architektur
Eine Tauri-2-App: Der Rust-Kern betreibt Geräte, Zustand, Ereignisse, Aktionen, Plugins und Agenten auf Tokio, und ein React-19-Editor spricht über Tauri-Commands und -Events mit ihm; jede Nutzlast wird auf der einen Seite mit Zod und auf der anderen von Rust validiert. MIDI läuft über midir hinter einem Backend-Trait, sodass Tests eine In-Memory-Attrappe nutzen. Ein Gerätemodell bedient Launchpad X und Mini MK3 aus Datenprofilen: Es erkennt das Gerät per SysEx-Device-Inquiry, schaltet es in den Programmer Mode, sendet nur geänderte LEDs und gibt das Gerät so zurück, wie es es vorgefunden hat. Plugins laufen in Wasmtime mit Fuel-, Zeit- und Speichergrenzen und erreichen das Netz nur über einen Host-Broker, beschränkt auf vom Nutzer freigegebene Ursprünge.
Technische Entscheidungen
- Rust besitzt die Laufzeit und die Oberfläche konfiguriert nur, daher funktionieren die Pads auch mit geschlossenem Fenster.
- Ein eingebautes simuliertes Launchpad nach den Handbüchern von Novation, unabhängig vom Codec, damit das Protokoll ohne Hardware gegengeprüft wird.
- Plugins in einer Wasmtime-Sandbox ohne direkte Sockets: Netzwerkzugriff läuft über einen Broker, der jede aufgelöste Adresse gegen die Freigabe des Nutzers prüft.
- Agentenfreigaben schlagen geschlossen fehl: Registrieren gewährt nie Kontrolle, und keine Anfrage wird standardmäßig genehmigt.
- Architekturregeln werden von Skripten und Tests erzwungen, darunter einer, der fehlschlägt, wenn die Agenten-Domäne einen Anbieter nennt.
Herausforderungen & Abwägungen
Gegen Hardware zu bauen, die nie angeschlossen war: Das MIDI-Protokoll wurde nach den Handbüchern von Novation implementiert und byteweise getestet; die physischen Launchpad X und Mini MK3 müssen noch verifiziert werden. Die andere Herausforderung: Plugins und Agenten von Dritten auf dem Rechner handeln zu lassen, ohne ihnen zu vertrauen.
Belegte Ergebnisse
- v0.3.0, die erste externe Alpha
- 1.299 Rust-Tests und 594 TypeScript-Tests bestanden unter macOS
- Claude-Code-Hooks live verifiziert; aufgezeichnete Nutzlasten dienen als Test-Fixtures
- 313 Commits, MIT-Lizenz
- Noch nicht an physischer Hardware verifiziert; Windows und Linux für 0.3.0 nicht gebaut
Die Status sind sachlich: Nichts wird fertiger dargestellt, als es ist.