Das Problem mit normalen SSH-Terminals
Wer einmal eine SSH-Verbindung verloren hat während ein langer Prozess lief — ein Test-Build, ein npm install, ein laufender Entwicklungsserver — kennt das Gefühl. Alles weg. Verbindung neu aufbauen, von vorne anfangen.
Wenn man sich per SSH mit einem Remote-Server verbindet, läuft alles in einem einzigen Prozess: dem SSH-Terminal. Bricht die Verbindung ab — durch Netzwerkprobleme, Sleep-Mode oder VPN-Timeout — sterben alle laufenden Prozesse mit. Entwicklungsserver tot. Lange Kompilierung weg. Claude-Session verloren.
tmux trennt das Terminal vom SSH-Prozess. Die Session läuft auf dem Server, unabhängig davon ob gerade jemand verbunden ist.
Kernprinzip: Eine tmux-Session lebt auf dem Server, nicht im SSH-Kanal. Verbindungsabbruch = irrelevant. Man steigt von jedem Rechner wieder ein und findet alles so vor, wie man es verlassen hat.
Schneller Überblick: Was läuft gerade?
Bevor man eine neue Session anlegt, lohnt sich ein kurzer Blick ob schon eine existiert — besonders wenn man sich von einem anderen Rechner verbindet:
tmux ls
# Ausgabe, wenn Sessions aktiv sind:
# partyplaner: 2 windows (created Wed Jun 18 09:12) [220x50]
# wsai: 1 windows (created Tue Jun 17 14:30) [220x50]
# Ausgabe, wenn keine Session läuft:
# no server running on /tmp/tmux-0/default
Keine Ausgabe oder die Fehlermeldung oben bedeutet: tmux läuft noch nicht. Dann einfach eine neue Session anlegen.
Sessions: das Herzstück
Eine tmux-Session ist eine eigenständige Terminal-Umgebung auf dem Server. Sie hat einen Namen, merkt sich den Zustand (laufende Prozesse, Scrollback-Buffer, offene Fenster) und wartet auf Verbindungen.
Sessions auflisten
tmux ls
# partyplaner: 2 windows (created Wed Jun 18 09:12)
# wsai: 1 windows (created Tue Jun 17 14:30)
Neue Session anlegen
tmux new-session -s partyplaner
# Kurzform:
tmux new -s partyplaner
Session anlegen oder anhängen (der Alltagsbefehl)
tmux new-session -A -s partyplaner -c /root/projects/partyplaner
Das -A-Flag ist entscheidend: existiert die Session bereits, wird sie geöffnet — existiert sie nicht, wird sie angelegt. Genau das macht auch der _proj-Bash-Alias automatisch.
An bestehende Session anhängen
tmux attach -t partyplaner
# Kurzform:
tmux a -t partyplaner
Detach: Session verlassen ohne sie zu beenden
Ctrl+B dann D
Die Session läuft weiter. Man kann sich von einem anderen Rechner wieder anhängen — und findet alles genau so vor wie man es verlassen hat.
Session beenden
tmux kill-session -t partyplaner
# Oder von innen mit exit (wenn alle Fenster geschlossen)
Fenster und Panes: mehrere Terminals in einer Session
Alle tmux-Tastenkombinationen beginnen mit Ctrl+B als Präfix:
| Tastenkombination | Funktion |
|---|---|
Ctrl+B C | Neues Fenster öffnen |
Ctrl+B N / P | Nächstes / vorheriges Fenster |
Ctrl+B " | Horizontale Teilung (Pane unten) |
Ctrl+B % | Vertikale Teilung (Pane rechts) |
Ctrl+B ←↑→↓ | Zwischen Panes wechseln |
Ctrl+B Z | Pane maximieren / zurücksetzen |
Ctrl+B X | Aktuellen Pane schließen (Bestätigung: y/n) |
Ctrl+B & | Aktuelles Fenster schließen (Bestätigung: y/n) |
Ctrl+B D | Detach — Session bleibt aktiv |
Ctrl+B Ctrl+B | Literales Ctrl+B ans Terminal senden |
Copy & Paste: die kleine Tücke
Copy & Paste in tmux ist der Punkt, an dem viele Nutzer anfangs stolpern. Die Maus markiert standardmäßig Text auf dem lokalen Bildschirm — nicht im tmux-Buffer. Es gibt zwei Wege:
Weg 1: tmux Copy Mode (Terminal-nativ)
Ctrl+B [ → Copy Mode betreten
Pfeiltasten → Cursor bewegen, scrollen
Page Up/Down → schnell durch Output scrollen
Space → Auswahl starten
Enter → Auswahl kopieren, Copy Mode verlassen
Ctrl+B ] → Einfügen (aus tmux-Buffer)
Weg 2: Maus aktivieren (empfohlen)
In ~/.tmux.conf auf dem Server:
set -g mouse on
Dann tmux source ~/.tmux.conf. Mit Maus-Modus:
- Scrollen: Mausrad funktioniert direkt im Scrollback-Buffer
- tmux-Buffer: Linke Maustaste gedrückt halten → Auswahl geht in den tmux-Buffer (
Ctrl+B ]zum Einfügen) - System-Zwischenablage:
Shift + Maustaste gedrückt halten→ tmux wird umgangen, Text landet direkt in der Systemzwischenablage
In VSCodium SSH Remote (integriertes Terminal) gilt zusätzlich: Ctrl+Shift+C kopiert die aktuelle Auswahl, Ctrl+Shift+V fügt ein — die Standard-Shortcuts des Terminals, die auch mit tmux zuverlässig funktionieren.
Tipp für VSCodium SSH Remote: Das integrierte Terminal verwendet xterm-Kompatibilität. Mit
mouse onundShift+Draggelangt der Text in die normale Zwischenablage des lokalen Systems.
Claude Code in tmux: der wichtigste Anwendungsfall
Claude Code läuft als interaktiver Prozess im Terminal. Ohne tmux bedeutet ein Verbindungsabbruch: Claude-Session verloren, laufende Aufgabe abgebrochen. Mit tmux:
tmux new -s partyplaner # Session starten
claude # Claude starten
# Aufgabe beschreiben, Laptop zuklappen — Claude arbeitet weiter
# Stunden später, von beliebigem Rechner:
tmux attach -t partyplaner # → Claude ist noch da, Output im Buffer
Besonders wertvoll für längere Aufgaben: Refactorings, Migrations, umfangreiche Feature-Implementierungen. Claude arbeitet weiter, auch wenn man nicht am Rechner sitzt.
Schritt-für-Schritt: tmux + Claude · Session bleibt · Output wartet im Buffer · Klicken zum Vergrößern
Minimale .tmux.conf für den Einstieg
# ~/.tmux.conf auf dem Server
set -g mouse on # Maus-Scrollen + Markieren
set -g history-limit 10000 # Längerer Scrollback-Buffer
set -g status-right '%H:%M %d.%m.%Y' # Uhrzeit in Statusleiste
set -g base-index 1 # Fenster-Nummerierung bei 1 beginnen
Laden: tmux source ~/.tmux.conf
Fazit
tmux ist kein optionales Extra für Remote-Entwicklung — es ist die Grundlage. Sessions überleben Verbindungsabbrüche, mehrere Rechner können dieselbe Session beobachten, Claude Code läuft weiter wenn man weg ist.
Der Einstieg ist in 5 Minuten erledigt: tmux new -s meinprojekt, loslegen, Ctrl+B D zum Verlassen. Der Rest kommt mit der Zeit.
Dieser Beitrag ist Teil der Reihe „KI in der Praxis" — echte Setups, keine Theorie.
Verwandter Artikel
Ein Befehl, eine IDE, eine Session: VSCodium + tmux + Proxmox auf Linux →Wie der _proj-Alias VSCodium, tmux und SSH zusammenbringt — und Claude neue Projekte auf Zuruf anlegt.