Gerald
Ein Handheld-Terminal neben der Tastatur – ein ClockworkPi uConsole mit Raspberry Pi CM4 – das als großes gezeichnetes Gesicht zeigt, was Claude Code gerade tut: denken, arbeiten, warten, fertig. Es klingelt, wenn Claude eine Eingabe braucht, streamt die Tool-Aufrufe mit, und man kann Shell-Befehle mit einem Tastendruck am Gerät freigeben oder ablehnen.
Der Teil, der es nicht zur Deko macht
Ein Gesicht, das den Zustand spiegelt, ist eine Anzeige. Interessant wird es, wenn der Weg zurückführt: wartet ein Bash-Befehl auf Freigabe, übernimmt er den Bildschirm des Geräts, und ein Druck auf Y oder N erlaubt oder verweigert ihn in der echten Session.
Damit ist es kein Ambient-Display mehr, sondern ein Bedienelement. Die Entscheidung, ob ein Befehl auf meinem Rechner läuft, passiert an einem Stück Hardware neben dem Rechner.
Wie es zusammenhängt
Claude-Code-Hooks feuern bei Session-Ereignissen und schicken eine kleine JSON-Zeile an einen Unix-Socket, fire-and-forget. Ein Daemon hält genau eine BLE-Verbindung zum Gerät und schiebt JSON-Snapshots über Nordic UART, ein Objekt pro Zeile – dasselbe Protokoll wie Anthropics Hardware-Buddy-Referenz, aus der das Projekt ursprünglich hervorgegangen ist.
Der Rückweg ist der eigentliche Trick: PreToolUse(Bash) macht einen Round-Trip. Das Gerät antwortet mit einer Freigabe, und die wird zum allow oder deny des Hooks.
Dazu ein Session-HUD: Modell, Füllstand des Kontextfensters, Nutzungsgrenzen mit Reset-Countdown – abgegriffen aus der Statusline und aufs Gerät gespiegelt.
Stand
Öffentliches Monorepo, beide Hälften mit eigener Git-Historie. Oberfläche auf Englisch und Deutsch, umschaltbar über GERALD_LANG. Läuft; der Autostart des Mac-Daemons über einen echten Reboot ist noch offen, das ist ein macOS-Berechtigungsthema.