cmux: ein natives macOS-Terminal für KI-Coding-Agenten
cmux ist ein Open-Source-Terminal für macOS auf Basis von Ghostty, mit vertikalen Tabs und Benachrichtigungsringen, die anzeigen, wenn KI-Coding-Agenten Aufmerksamkeit brauchen.
Auf einen Blick
- Was ist das?
- cmux ist ein auf Ghostty aufbauendes macOS-Terminal mit vertikalen Tabs, Benachrichtigungsringen und In-App-Browser, zugeschnitten auf parallele KI-Coding-Agenten. Der Text ordnet Motivation, Installation, Automatisierung und Lizenzierung anhand der README ein.
- Für wen ist es gedacht?
- cmux richtet sich an macOS-Entwickler, die mehrere Claude Code- oder Codex-Sitzungen parallel führen und dafür ein natives Terminal mit Seitenleiste, PR-Status und Agenten-Benachrichtigungen wollen; der Einstieg läuft über die DMG-Datei oder brew install --cask cmux.
- Darf ich es kommerziell nutzen?
- Erst prüfen. Die Lizenz dieses Repositorys ordnen wir nicht automatisch ein; lesen Sie vor jeder kommerziellen Nutzung die LICENSE-Datei.
- Wird es noch gepflegt?
- Ja. Das Repository hat innerhalb des letzten Tages neue Commits erhalten.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich Swift, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
Warum der Autor ein eigenes Terminal baute
Die README begründet cmux mit der eigenen Arbeitsweise des Autors: Viele Claude-Code- und Codex-Sitzungen laufen gleichzeitig, Ghostty lieferte die Split-Panes, die nativen macOS-Benachrichtigungen aber nur einen Satz ohne Kontext, und mit genügend offenen Tabs wurden selbst die Titel unlesbar. GUI-Orchestratoren verwarf er wegen ihrer Electron- oder Tauri-Basis und der damit verbundenen Performance; ihm blieb der Terminal-Workflow lieber.
Die Antwort ist eine native macOS-App in Swift und AppKit, die fürs Terminal-Rendering auf libghostty setzt und die vorhandene Konfiguration unter ~/.config/ghostty/config für Themes, Fonts und Farben liest. Damit ist cmux kein Fork von Ghostty, sondern eine eigene Anwendung auf dessen Rendering-Engine, wie die README klarstellt. Im Abschnitt über die Projektphilosophie fasst das Projekt seine Haltung zusammen: cmux sei ein Baustein, keine fertige Lösung, und dränge keinen Entwickler in einen festgelegten Agenten-Workflow.
Seitenleiste, Benachrichtigungsringe und das Notifications-Panel
Die zwei zentralen Ergänzungen gegenüber einem normalen Terminal sind die Seitenleiste und das Benachrichtigungssystem. Die vertikalen Tabs zeigen für jeden Workspace Git-Branch, Status oder Nummer eines verknüpften Pull-Requests, Arbeitsverzeichnis, lauschende Ports und den Text der letzten Benachrichtigung. Sowohl vertikale als auch horizontale Splits sind möglich.
Das Benachrichtigungssystem versteht die Terminal-Sequenzen OSC 9, 99 und 777 und bietet zusätzlich die CLI cmux notify, die sich in die Agent-Hooks von Werkzeugen wie Claude Code oder OpenCode einhängen lässt. Wartet ein Agent, bekommt sein Pane einen blauen Ring, der Tab leuchtet auf, und Cmd+Shift+U springt zur jüngsten ungelesenen Meldung. Ein eigenes Notifications-Panel sammelt alle ausstehenden Meldungen an einer Stelle.
Der In-App-Browser mit der agent-browser-API
Neben dem Terminal lässt sich ein Browser-Pane in den Arbeitsbereich teilen. Die steuernde API wurde aus dem Projekt agent-browser portiert und deckt die typischen Automatisierungsschritte ab: Agenten können den Accessibility-Baum einer Seite auslesen, Element-Referenzen holen, Elemente anklicken, Formulare ausfüllen und JavaScript auswerten.
Damit kann etwa ein Coding-Agent den lokalen Dev-Server im Browser direkt bedienen, während das Terminal daneben läuft. Die README hebt außerdem Browser-Importe hervor: Cookies, Verlauf und Sitzungen lassen sich aus Chrome, Firefox, Arc und über zwanzig weiteren Browsern übernehmen, sodass Browser-Panes bereits authentifiziert starten.
Installieren unter macOS: DMG, Homebrew und Sparkle
Die empfohlene Installation läuft über die DMG-Datei: Datei öffnen, cmux in den Applications-Ordner ziehen, fertig. Updates übernimmt Sparkle automatisch, ein erneutes Herunterladen entfällt. Alternativ steht ein Homebrew-Weg bereit: brew tap manaflow-ai/cmux, danach brew install --cask cmux, aktualisiert wird mit brew upgrade --cask cmux.
Beim ersten Start kann macOS eine Bestätigung für eine App eines identifizierten Entwicklers verlangen. Die README erwähnt außerdem einen separaten Nightly-Build mit eigener Bundle-ID, der neben der stabilen Version läuft und aus dem aktuellen main-Commit erzeugt wird. Die Oberfläche bleibt laut README eine native App mit Swift und AppKit statt Electron; die README nennt dafür schnellen Start und geringen Speicherverbrauch als Ziele.
SSH-Workspaces und der Claude-Code-Team-Modus
Für den Zugriff auf entfernte Rechner baut cmux ssh user@remote einen eigenen Workspace für die Maschine auf. Eine optionale --command-Flag, etwa --command 'omp "investigate auth"', führt im ersten Terminal des entfernten Rechners einen Befehl aus. Browser-Panes dieses Workspace laufen durch das entfernte Netzwerk, sodass localhost dort direkt funktioniert, und ein hineingezogenes Bild wird per scp auf die Maschine hochgeladen.
Mit cmux claude-teams startet der Team-Modus von Claude Code per Einzelbefehl; Teammitglieder erscheinen als native Splits mit den Metadaten der Seitenleiste und Benachrichtigungen, ohne dass tmux benötigt wird. Diese beiden Befehle zeigen, wohin die README den Einsatz zielt: mehrere Agenten-Sitzungen, lokal wie entfernt, aus einem Fenster heraus koordiniert.
CLI, Socket-API, cmux.json und Sitzungswiederherstellung
cmux ist über eine CLI und eine Socket-API programmierbar: Workspaces anlegen, Panes teilen, Tastatureingaben senden, URLs im Browser öffnen, den Browser selbst automatisiert bedienen. Projekt-spezifische Aktionen lassen sich in einer cmux.json definieren und über die Befehlspalette starten. Die Dokumentation verweist für custom commands auf cmux.com/docs/custom-commands, für Tastenkürzel auf cmux.com/docs/keyboard-shortcuts.
Beim Beenden speichert cmux das Layout aus Fenstern, Workspaces und Panes, Arbeitsverzeichnisse, Scrollback nach bestem Bemühen sowie Browser-URL und Navigationsverlauf. Lebende Prozesszustände prüft es bewusst nicht: tmux, vim und andere Terminals werden beim Neustart als normale Terminals neu geöffnet. Unterstützte Agent-Sitzungen lassen sich fortsetzen, wenn die Hooks eine native Sitzungs-ID gespeichert haben; mit cmux surface resume set lässt sich ein eigener Wiederherstellungsbefehl eintragen.
GPL-Lizenz und die Angaben, die das README schuldig bleibt
Laut README und Lizenzstand ist cmux unter GPL-3.0-or-later veröffentlicht. Der Lizenztext hält fest, dass Mitwirkende und Dritte das Urheberrecht an ihrem Material behalten und dass eine kommerzielle Lizenzierung nur für Material in Frage kommt, an dem der Entwickler die nötigen Rechte kontrolliert; eine Garantie übernimmt der Standardtext nicht. Wer cmux einbettet oder weiterentwickelt, hat mit der GPL-familie die üblichen Weitergabepflichten für abgeleitete Werke zu prüfen.
Die README erwähnt eine iOS-App als Beta, nennt Funktionen wie Skills und eine Founder's Edition aber ohne Details und verweist für die übrigen Einstellungen auf cmux.com/docs. Verifizierbare Benchmarks, Speichernutzungszahlen, Sicherheitsaudits oder Systemanforderungen fehlen. Diese Punkte lassen sich nur über die Projektdokumentation und die Quelltexte prüfen.
Redaktionelles Fazit
cmux richtet sich an macOS-Entwickler, die mehrere Claude Code- oder Codex-Sitzungen parallel führen und dafür ein natives Terminal mit Seitenleiste, PR-Status und Agenten-Benachrichtigungen wollen; der Einstieg läuft über die DMG-Datei oder brew install --cask cmux. Wer Linux braucht, Elektron-Orchestratoren bevorzugt oder die Sitzungswiederherstellung für tmux-spezifische Prozesszustände erwartet, findet in der README keine Zusage dafür und sollte vor der Einführung die Dokumentation unter cmux.com/docs und die genaue GPL-Lizenzfassung prüfen.
Community-Notizen