Was es ist
Terminal ist eine native macOS-App für lokale Shells, SSH, Coding-Agents
und die Git- und Systemarbeit drumherum. Sie basiert auf
SwiftTerm in einem
SwiftUI-Fenster, nutzt standardmäßig den Metal-Renderer von SwiftTerm mit
CoreText als Fallback und läuft auf macOS 14 oder neuer, auf Apple silicon und
Intel. Sie ist eine kostenlose öffentliche Beta: kein Konto, keine Zahlung.
Welches Problem es löst
Viel Terminal-Zeit geht heute an Coding-Agents – Claude Code, Codex, Grok –
neben gewöhnlichen Shells, git, SSH und TUIs. Diese Agents laufen gegen
Nutzungsfenster, die sich nach Zeitplan zurücksetzen, und meist erfährt man nur
durch Nachfragen beim Agent oder einen Browser-Tab, wie viel noch übrig ist.
Terminal hält diese Zahl in der Statusleiste, solange das Fenster sichtbar ist,
und meldet sich, wenn ein Agent, den man gerade nicht beobachtet, still wird.
Die Regel des Projekts: Die Agent-Funktionen sind das Alleinstellungsmerkmal,
aber die Basis ist ein Terminal, das man ohnehin täglich benutzen würde.
Funktionen
- Native Oberfläche. Tabs sitzen in der macOS-Titelleiste – eine Zeile
Chrome, nicht zwei. Splits nach rechts und unten, jeder Bereich mit eigenem
Prozess; geschlossen wird in der Reihenfolge Bereich, Tab, Fenster.
- Agent-Startprofile für Claude Code, Codex, Grok, Cursor Agent, Kimi Code
und OpenCode, dazu eigene Profile (Programm, Argumente, Umgebung, Icon,
Schriftgröße).
- Live-Nutzungsfenster für Claude, Codex, Grok und Kimi, gelesen über das
bereits vorhandene CLI-Login und den Endpoint des Anbieters. Cursor Agent und
OpenCode lassen sich starten, aber wo es keinen individuellen Endpoint gibt,
werden keine Kontingentzahlen erfunden.
- Aufmerksamkeits-Hinweise, wenn ein nicht fokussierter Agent still wird,
und CPU/Speicher für den gesamten Prozessbaum des Agents, inklusive
MCP-Servern.
- SSH mit Hosts aus
~/.ssh/config in Menü und Palette, ohne auf dem
Zielrechner etwas zu installieren.
- Persistente Sitzungen auf Basis von tmux (tmux muss im
PATH sein).
- Git-Kontext: Branch, ungesicherte Änderungen und Ahead/Behind in der
Statusleiste; lokale Identität bearbeiten, ohne
~/.gitconfig anzufassen;
Pull Requests über das eigene gh.
- Befehlspalette, Suche im Scrollback, OSC-133-Promptmarken, Dateipfade,
die sich im Editor öffnen, und ein JSON-Viewer für markierten Text.
- 22 Themes (11 dunkel, 11 hell), jedes mit vollständiger
16-Farben-ANSI-Palette und gemessenem WCAG-Kontrast in den Einstellungen.
- Systemwerkzeuge: Prozessmonitor, Gerätetelemetrie in der Statusleiste und
eine Bestandsaufnahme von „System Data“ auf Abruf, mit abgesicherter
Bereinigung.
Secrets und Privatsphäre
- Umgebungs-Secrets liegen im macOS-Schlüsselbund und werden auf Wunsch in neue
Shells eingefügt. Namen, mit denen sich die Prozessausführung kapern ließe –
PATH, SHELL, HOME, DYLD_*, LD_* und ähnliche – werden abgelehnt.
- Privacy Mode schließt das Fenster von Bildschirmaufnahmen aus und
schwärzt Titelleiste, Pfad und Statusleiste.
- Live-Schwärzung ist eine separate Option, weil sie den PTY-Bytestrom
umschreibt, bevor er den Emulator erreicht. Die Ersatzlängen weichen vom
Original ab, daher kann das Layout cursor-adressierter TUIs durcheinander
geraten – und die App sagt das auch.
- Agents, SSH und Editoren starten als Argument-Arrays, nie als interpolierte
Shell-Strings. Nutzungsdaten kommen von den Anbietern; an den Autor wird
nichts gesendet.
Ehrliche Grenzen
- EDR betrifft die Darstellung, nicht den Zelltext. SwiftTerm rastert
Glyphen in einen 8-Bit-sRGB-Atlas, daher hebt die EDR-Arbeit Cursor, Auswahl
und gewählte Paletten an, nicht einzelne Zellen.
- Live-Nutzung braucht Netzwerk und ein bestehendes CLI-Login.
- Keine App Sandbox: Die Shell braucht echten Zugriff auf Dateisystem und
Prozesse.
Technik
Swift 6, SwiftUI und AppKit, SwiftTerm (Metal / CoreText), XcodeGen. Das
Repository enthält außerdem eine eigenständige Pipeline PTY → VT-Parser →
Zellraster → Metal mit eigenen Tests; sie bleibt als Forschungsstand erhalten
und ist nicht der Darstellungsweg der App.