tmux: Warum Remote-Entwickler ohne ihn nicht arbeiten können

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.

tmux löst genau dieses Problem. Einmal eingerichtet, läuft jede Terminal-Session dauerhaft auf dem Server weiter — egal ob der Laptop zugeklappt, das WLAN gewechselt oder die VPN-Verbindung unterbrochen wurde. Man steigt einfach wieder ein, als wäre nichts gewesen.

Das Problem mit normalen SSH-Terminals

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.


SSH ohne tmux vs. mit tmux — Vergleich bei Verbindungsabbruch
Ohne tmux: alles verloren · Mit tmux: Session läuft weiter, Prozesse bleiben aktiv  ·  Klicken zum Vergrößern

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 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

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.

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.

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

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 — das sind die Standard-Shortcuts des Terminals, die auch mit tmux zuverlässig funktionieren.

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

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

Besonders wertvoll für längere Aufgaben: Refactorings, Migrations, umfangreiche Feature-Implementierungen. Claude arbeitet weiter, auch wenn man nicht am Rechner sitzt.

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.