Zum Inhalt springen

ai-workbench: Vom Claude-Cockpit zum Backend-Wechsler

Drei Monate Entwicklung an einem Terminal-Multiplexer – austauschbare KI-Backends, Multi-Line-Eingabe und ein Sicherheitsrelease, das eine Funktion mitgenommen hat.
5. August 2026 durch
ai-workbench: Vom Claude-Cockpit zum Backend-Wechsler
IT-Guy
ai-workbench Rust Terminal Entwicklerwerkzeuge

ai-workbench: Vom Claude-Cockpit zum Backend-Wechsler

Drei Monate Entwicklung an einem Terminal-Multiplexer – austauschbare KI-Backends, Multi-Line-Eingabe und ein Sicherheitsrelease, das eine Funktion mitgenommen hat.

M
Martin Schmid
2026-08-05

Ende Juli haben wir in ai-workbench eine Sicherheitslücke geschlossen und dabei das Pullen abgeschaltet. Nicht mit einer Fehlermeldung – die Funktion war einfach nicht mehr erreichbar. Aufgefallen ist es erst beim Review eine Woche später. Das steht stellvertretend für die letzten drei Monate am Terminal- Multiplexer: mehr Auswahl, weniger Reibung, und die Erkenntnis, dass Absicherung selten kostenlos ist.

TL;DR: ai-workbench löst im Juli das Vorgängerprojekt claude-workbench ab und unterstützt seitdem sechs KI-Backends statt einem. Dazwischen: Multi-Line Eingabe im KI-Bereich, signierte Release-Archive, ein Startbildschirm ohne Wartezeit – und ein Sicherheitsrelease, das zwei Standardeinstellungen umgedreht hat.

Juni: Was das Original noch gelernt hat

Bis Ende Juni hieß das Werkzeug claude-workbench und konnte genau ein KI-Backend. Der Monat ging fast vollständig für Feinschliff drauf – 47 Commits, die du einzeln kaum bemerkst und in Summe täglich spürst.

Das Vorprojekt liegt weiter offen auf GitHub und bekommt noch Sicherheitskorrekturen, aber keine neuen Funktionen mehr.

Ein Sicherheits-Audit brachte acht Befunde, die am 1. Juni geschlossen wurden. Darunter vorhersagbare Temp-Dateipfade beim PDF-Export, ein Browser-Aufruf ohne Prüfung des übergebenen Programmnamens und eine Update-Auswahl, die schlicht den ersten Eintrag der GitHub-Releases nahm – ein nachträglich veröffentlichtes Patch-Release auf einem alten Branch konnte damit ein echtes Update verdecken. Seitdem entscheidet ein Versionsvergleich nach semver.

Der Fix mit dem größten Alltagseffekt kam am 12. Juni. Claude Code zeichnet seit Version 2.1.89 auf dem Alternate Screen – jenem zweiten Bildschirmpuffer, den auch vim oder less belegen – und meldet dabei Mausereignisse selbst an. Der lokale Rückblick-Puffer des Bereichs blieb damit leer, und das Mausrad tat nichts mehr. Die Lösung entspricht dem Verhalten von tmux: Läuft im Pane eine Anwendung mit Maus-Tracking, wird das Wheel-Event als Maus-Sequenz an die Anwendung durchgereicht. Nur wenn niemand mithört, scrollt der eigene Puffer.

Mitte Juni ersetzten Standard-Shortcuts die alten Block-Operationen im Editor: Ctrl+C, Ctrl+X, Ctrl+V, Ctrl+Z statt der F-Tasten-Kombinationen im Stil des Midnight Commander, die sich ohnehin mit den globalen F-Tasten bissen. Dazu ein echter Hardware-Cursor, weil der selbstgemalte in Terminus und iTerm2 unsichtbar blieb.

Am 30. Juni kam noch der Prefix-Passthrough: Mit Ctrl+B im Shell-Bereich gehen alle Tasten roh an die Anwendung darunter – nano, mc und vim bekommen ihre F-Tasten zurück. Die Befehle der Workbench erreichst du dann über Ctrl+B plus Taste.

Juli: Der Schnitt

Am 10. Juli erschien ai-workbench als eigenes Projekt – mit einer Änderung, die den neuen Namen trägt: Der KI-Bereich ist nicht mehr auf Claude Code festgelegt.

Angefangen hat es mit einem Positionsargument beim Start (ai-workbench opencode), zwei Tage später kam der Wechsel zur Laufzeit über F8. Der rotierte zunächst stumm durch die Backends, was in der Praxis unbrauchbar war – nach drei Tastendrücken wusstest du nicht mehr, wo du gelandet warst. Seit v1.5.0 öffnet F8 ein Auswahlmenü.

Heute stehen sechs Backends zur Wahl:

Backend Start Bemerkung
Claude Code ai-workbench claude Standard, mit Berechtigungsdialog
OpenCode ai-workbench opencode Startbefehl in den Einstellungen anpassbar
Pi ai-workbench pi dito
Codex ai-workbench codex OpenAI, seit v1.8.0
Ollama + OpenCode ai-workbench ollama-opencode lokal, seit v1.9.4
Ollama + Pi ai-workbench ollama-pi lokal, seit v1.9.4

Die Wahl wird in der Sitzung gespeichert. Claude-spezifische Dialoge – etwa die Auswahl des Berechtigungsmodus – erscheinen nur, wenn das Backend sie versteht.

Multi-Line-Eingabe, dritter Anlauf

Shift+Enter im KI-Bereich klingt nach einer Kleinigkeit und war die hartnäckigste Baustelle des Monats. Terminals melden diese Taste nur, wenn das Kitty-Keyboard-Protokoll aktiv ist; die Workbench schaltet es deshalb ein und übersetzt für die Anwendung darunter.

Dann stellte sich heraus: Hast du /terminal-setup von Claude Code ausgeführt, legt das in iTerm2 eine globale Tastenbelegung an, die Shift+Enter abfängt und ein nacktes Zeilenvorschubzeichen sendet – am Protokoll vorbei. Seit v1.7.1 behandelt der KI-Bereich auch dieses Zeichen als Zeilenumbruch. Was dein Terminal tatsächlich schickt, zeigt dir ai-workbench --key-diag.

Alt+Enter und Ctrl+J funktionieren ohne Protokoll, und \ plus Enter bleibt der Weg, der überall geht.

Zwei Dinge, die niemand vermisst hat

Der Start zeigte drei bis fünf Sekunden lang einen schwarzen Bildschirm, weil der Abhängigkeitscheck zwölf bis zwanzig Prozesse nacheinander startete, bevor irgendetwas erschien. Seit v1.9.0 kommt der Bildschirm sofort, der Check läuft im Hintergrund.

Seit v1.6.0 trägt jedes Release-Archiv eine kryptografische Signatur, erzeugt mit zipsign. Die Prüfung beim Herunterladen ist noch nicht scharf geschaltet – dafür braucht es erst ein paar signierte Releases in der Historie, sonst sperre ich die eigene Nutzerschaft aus. Alle Archive liegen offen auf GitHub.

Das Thema hinter vielen dieser Änderungen: SSH

Sieh dir an, wofür in diesen drei Monaten Arbeit draufging – Zwischenablage über fünf Verfahren, Dateiübertragung durch die Terminalverbindung, XRDP-Eigenheiten, ein Assistent fürs Einfügen von Bildern über SSH. Auffällig viel davon betrifft nicht das lokale Terminal.

Das ist kein Zufall, sondern der Grund, warum das Ganze eine Terminaloberfläche ist und keine Anwendung mit Fenstern: Du startest sie über SSH auf jedem Server, und das komplette Cockpit läuft dort, wo dein Code liegt. Kein lokaler Client, keine Gegenstelle, die sich installiert, kein Dateiabgleich zwischen zwei Maschinen.

Genau deshalb kostet jede Kleinigkeit, die lokal selbstverständlich ist, remote Arbeit. Kopieren zum Beispiel: Auf dem eigenen Rechner reicht die native Anbindung. Über SSH ohne Display bleibt am Ende eine Escape-Sequenz, die den Text durch die Terminalverbindung selbst schickt – und die kann nicht zurücklesen. Solche Grenzen gehören benannt, nicht versteckt.

Ende Juli: Sicherheit, und was sie kostet

v1.10.0 schloss zwei Löcher derselben Bauart: Ein Verzeichnis, das man nur öffnet, sollte nicht bestimmen, welcher Code läuft.

Eine config.yaml im Arbeitsverzeichnis hatte bis dahin höchste Priorität und legt unter anderem fest, welche Befehle in den drei Bereichen starten. Ein geklontes Repository mit einer solchen Datei genügte also, um beim Start fremde Programme auszuführen. Seitdem gilt sie erst nach ausdrücklicher Freigabe:

ai-workbench --trust-local-config

Die Freigabe hängt am Inhalt, nicht nur am Pfad – ein SHA-256 wandert in eine Liste unter ~/.config/ai-workbench/. Wird die Datei bearbeitet oder von einem git pull überschrieben, ist die Freigabe hinfällig.

Zweitens führt jeder Git-Aufruf inzwischen eine Reihe von Konfigurationswerten auf der Kommandozeile mit, damit das Repository sie nicht überschreiben kann: core.fsmonitor, core.sshCommand, core.gitProxy, credential.helper und protocol.ext.allow. Und git fetch läuft nicht mehr automatisch beim Betreten eines Repositorys.

v1.10.1 hat das korrigiert: Das Dateimenü hat mit F9p einen echten Eintrag für Git Pull bekommen, der unabhängig von der Einstellung funktioniert und vorher nachfragt. Bei der Gelegenheit fielen drei weitere Dinge auf – Dateinamen mit Umlauten verloren ihre Git-Farbe, weil git sie standardmäßig als "\303\234bung.txt" ausgibt, ein deutschsprachiges git ließ die Erkennung „kein Remote konfiguriert" ins Leere laufen, und git pull führte weiterhin die Hooks des Repositorys aus.

Was bleibt: Ein git status kann über .gitattributes und einen passenden Filter noch immer einen Befehl starten. Dagegen hilft kein Schalter auf der Kommandozeile. Deshalb bleibt der automatische Fetch aus – Härtung ist die zweite Verteidigungslinie, nicht die erste.

Was das für die Praxis heißt

Hast du die Workbench über Homebrew installiert, holst du dir v1.10.1 mit brew upgrade ai-workbench. Zwei Dinge lohnen nach dem Update einen Blick:

  1. Liegt in deinem Projektverzeichnis eine config.yaml, wird sie ab jetzt ignoriert. Einmal durchlesen, dann ai-workbench --trust-local-config.
  2. Vermisst du den automatischen Remote-Abgleich, setz git.auto_fetch: true in der Konfiguration – oder nimm F9p, wenn dir ein Pull reicht.

Die drei Bereiche – KI, LazyGit, Shell – zeigen weiterhin dasselbe Arbeitsverzeichnis wie der Dateibrowser. Das war von Anfang an der Kern des Werkzeugs und hat sich in drei Monaten als das Einzige erwiesen, an dem nichts zu ändern war.

ai-workbench: Vom Claude-Cockpit zum Backend-Wechsler
IT-Guy 5. August 2026
Archiv
Warum Apple mich auf Odoo 19 gebracht hat
it-guy.ai lief als statische Astro-Seite. Der App Store verlangt eine Datenschutz-URL pro App, und zwar in den Sprachen, in denen die App verkauft wird. Seit heute erledigt das Odoo 19.