Zum Inhalt springen
LEX
Tastatur: / oder Befehl K zum Fragen oder Springen, Backtick öffnet das Terminal.

LEX · der Pass

Bon

Bon

#

Von
Zeit
Bestellung

Abschicken

DE · EN · ES

Zurück zum Lab

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

  1. Rust besitzt die Laufzeit und die Oberfläche konfiguriert nur, daher funktionieren die Pads auch mit geschlossenem Fenster.
  2. Ein eingebautes simuliertes Launchpad nach den Handbüchern von Novation, unabhängig vom Codec, damit das Protokoll ohne Hardware gegengeprüft wird.
  3. 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.
  4. Agentenfreigaben schlagen geschlossen fehl: Registrieren gewährt nie Kontrolle, und keine Anfrage wird standardmäßig genehmigt.
  5. 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.

Stack

Links

Fragen oder springen

Gib eine Frage oder einen Namen ein. Die Navigation ist deterministisch — kein Chatbot.

Drücke / oder ⌘K