47 — tmux: Terminal-Sessions persistent halten
Stand: 2026-03-15
Was ist tmux?
tmux (Terminal Multiplexer) hält Terminal-Sitzungen am Leben, auch wenn die SSH-Verbindung abbricht. Die Sitzung läuft auf dem Server weiter — man verbindet sich einfach neu und macht weiter wo man aufgehört hat.
Warum brauche ich das?
Ohne tmux: Shellfish verliert die Verbindung (iOS suspendiert die App) → Claude Code Session ist weg.
Mit tmux: Shellfish verliert die Verbindung → tmux + Claude Code laufen auf dem Pi weiter → neu verbinden → alles noch da.
Installation
| System | Status |
|---|---|
| Pi (raspip5) | Installiert (sudo apt install tmux) |
| Mac | Vorinstalliert (macOS) |
Grundbefehle
| Befehl | Was passiert |
|---|---|
tmux new -s main |
Neue Session "main" starten |
tmux attach -t main |
An bestehende Session anhängen |
tmux new -As main |
Anhängen ODER neu erstellen |
tmux ls |
Alle Sessions auflisten |
tmux kill-session -t main |
Session beenden |
Tastenkürzel (innerhalb tmux)
Alle Tastenkürzel beginnen mit Ctrl+B, dann die Taste:
| Tasten | Was passiert |
|---|---|
| Ctrl+B, dann D | Session loslassen (detach), läuft weiter |
| Ctrl+B, dann C | Neues Fenster (Tab) erstellen |
| Ctrl+B, dann N | Nächstes Fenster |
| Ctrl+B, dann P | Vorheriges Fenster |
| Ctrl+B, dann % | Fenster vertikal teilen (links/rechts) |
| Ctrl+B, dann " | Fenster horizontal teilen (oben/unten) |
| Ctrl+B, dann Pfeiltaste | Zwischen geteilten Panels wechseln |
| Ctrl+B, dann X | Aktuelles Panel schließen |
Einrichtung Shellfish (iPhone/iPad)
In der Shellfish App den Startup-Command setzen:
- Shellfish öffnen
- Host "raspip5" bearbeiten (Einstellungen)
- Bei Command eintragen:
tmux new -As main - Speichern
Ab jetzt landet jede Verbindung automatisch in der tmux-Session.
Einrichtung Mac
Im Mac Terminal diesen Befehl nutzen:
ssh ak@192.168.178.199 -t "tmux new -As main"
Optional als Alias in ~/.zshrc:
alias pi="ssh ak@192.168.178.199 -t 'tmux new -As main'"
Danach reicht pi im Terminal um direkt in die tmux-Session auf dem Pi zu kommen.
Geteilte vs. separate Sessions
| Szenario | Befehl | Effekt |
|---|---|---|
| Gleiche Session (gespiegelt) | tmux attach -t main |
Beide Geräte sehen dasselbe |
| Separate Session | tmux new -s mac |
Unabhängig arbeiten |
Gleiche Session bedeutet: Was auf dem iPhone getippt wird, sieht man auf dem Mac und umgekehrt. Nützlich zum "Umziehen" zwischen Geräten.
Separate Sessions sind sinnvoll wenn auf beiden Geräten gleichzeitig unterschiedliche Dinge laufen sollen.
Fenster teilen (Split Screen)
tmux kann ein Terminal-Fenster aufteilen:
+--------------------------+--------------------------+
| | |
| Claude Code | docker compose logs -f |
| | |
+--------------------------+--------------------------+
- Ctrl+B, % = vertikal teilen (links/rechts)
- Ctrl+B, " = horizontal teilen (oben/unten)
- Ctrl+B, Pfeiltaste = Panel wechseln
- Ctrl+B, X = Panel schließen
Konfiguration
Datei: ~/.tmux.conf auf dem Pi
set -g terminal-overrides ',xterm*:smcup@:rmcup@'
set -g history-limit 10000
- Erste Zeile reduziert Flickern in Shellfish
- Zweite Zeile speichert 10.000 Zeilen Scroll-History
Typischer Ablauf
- iPhone: Shellfish öffnen → verbindet automatisch → tmux Session "main"
- Claude Code starten und arbeiten
- iPhone weglegen (Verbindung bricht ab)
- Später: iPhone oder Mac → neu verbinden →
tmux attach -t main→ weiterarbeiten - Oder Mac:
piim Terminal → gleiche Session, alles noch da