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:

TastenkombinationFunktion
Ctrl+B CNeues Fenster öffnen
Ctrl+B N / PNächstes / vorheriges Fenster
Ctrl+B "Horizontale Teilung (Pane unten)
Ctrl+B %Vertikale Teilung (Pane rechts)
Ctrl+B ←↑→↓Zwischen Panes wechseln
Ctrl+B ZPane maximieren / zurücksetzen
Ctrl+B XAktuellen Pane schließen (Bestätigung: y/n)
Ctrl+B &Aktuelles Fenster schließen (Bestätigung: y/n)
Ctrl+B DDetach — Session bleibt aktiv
Ctrl+B Ctrl+BLiterales 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:

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 on und Shift+Drag gelangt 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.

Claude in tmux — Workflow: Session starten, Aufgabe geben, weggehen, zurückkommen

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.