Mosh oder SSH auf dem Handy: was du nutzt, um deinen Agenten zu verfolgen
Du startest Claude Code mit einer langen Aufgabe, klappst den Laptop zu und gehst los. Der Zug fährt in einen Tunnel, dein Handy fällt von WLAN auf Mobilfunk und hat eine Minute lang kein Signal, und als du wieder hinsiehst, ist die SSH-Session tot. Das ist normal: SSH wurde nie für einen Client entworfen, der alle paar Minuten das Netz wechselt, und genau dafür gibt es Mosh und Eternal Terminal.
Hier steht, was jedes davon tut, was auf einem Handy passiert und wie du wählst. Wenn du das ganze Bild willst, wie man einen Agenten aus der Hosentasche steuert, fang mit Claude Code vom Handy aus nutzen an.
Was mit SSH auf einem Handy passiert
SSH läuft über eine TCP-Verbindung, und diese Verbindung ist an eine IP-Adresse und ein Socket-Paar gebunden. Wechselt dein Handy von WLAN auf Mobilfunk, ändert sich seine IP, und der Server erfährt es nie. Die Verbindung hängt, bis ein Timeout sie beendet. Dasselbe passiert, wenn iOS oder Android das Netz der App zum Stromsparen schlafen legt oder die App beendet, weil es den Speicher braucht.
Du verlierst mehr als den Bildschirm. Ein Prozess, der an dieser SSH-Session hängt, kann ein SIGHUP bekommen und mit ihr sterben. Deshalb ist ein Agent, der direkt aus einer SSH-Shell gestartet wurde, fragil, und deshalb ist das Begleitstück zu diesem Artikel, tmux für Coding-Agenten, fast Pflicht.
Mosh: UDP und stilles Wiederverbinden
Mosh (Mobile Shell) nutzt SSH nur zum Start. Es authentifiziert sich über SSH, startet mosh-server auf deinem Rechner und spricht von da an über UDP. Ohne TCP-Verbindung, die abreißen kann, darf der Client die IP wechseln, das Signal verlieren oder schlafen, und wenn das Netz zurück ist, ist die Session noch da.
In der Praxis:
- Du wechselst von WLAN auf Mobilfunk, und die Session merkt es nicht.
- Antwortet der Server nicht mehr, sagt dir die App das, statt die Session zu schließen.
- Lokales Echo mit Vorhersage: Was du tippst, wird sofort unterstrichen gezeichnet und bestätigt, sobald der Server antwortet. Auf einer zähen Mobilfunkverbindung spürst du den Unterschied.
Was es kostet:
- UDP 60000–61000 muss auf deinem Rechner offen sein (jede Session belegt einen Port aus diesem Bereich).
- Kein Scrollback. Mosh synchronisiert nur, was auf dem Bildschirm steht. Wenn du hochscrollen und lesen willst, was der Agent ausgegeben hat, arbeite in tmux.
- Beendet das Betriebssystem die App, endet die Mosh-Session und lässt sich nicht fortsetzen.
Eternal Terminal: TCP, aber mit Fortsetzen
Eternal Terminal (ET) geht den anderen Weg. Es läuft über TCP, standardmäßig auf Port 2022, hält aber seinen eigenen Session-Zustand, sodass es die Verbindung bei einem Abbruch wieder aufbaut und nachsendet, was fehlte. Es braucht einen laufenden etserver auf deinem Rechner und etterminal im PATH der SSH-Session.
Auf dem Handy ist sein Vorteil, dass es der einzige Transport in Wendo (unter Android) ist, der das Schließen der App übersteht. Die Session erscheint unter Start und setzt beim Öffnen dort fort, wo sie war. Wendo kennzeichnet ET als experimentell, behalte das im Kopf, bevor du dich darauf verlässt.
Kurz zusammengefasst
- Wechselt das Handy von WLAN auf Mobilfunk oder schläft es ein, bricht SSH ab, Mosh und ET halten durch.
- Beendet das System die App, ist die Session bei SSH und Mosh verloren; bei ET wird sie fortgesetzt.
- SSH und ET haben Scrollback, Mosh nicht.
- SSH und ET laufen über TCP (ET über Port 2022), Mosh über UDP.
- Mit einem Jump Host funktioniert in Wendo nur SSH.
mosh-server installieren
Auf dem Rechner, auf dem der Agent läuft:
# macOS
brew install mosh
# Debian / Ubuntu
sudo apt install mosh
# Fedora
sudo dnf install mosh
Prüfe, dass er im PATH einer normalen SSH-Verbindung liegt, nicht nur in deinem interaktiven Terminal:
ssh my-server 'which mosh-server'
Auf einem Apple-Silicon-Mac legt Homebrew ihn unter /opt/homebrew/bin/mosh-server ab, was nicht immer im PATH einer nicht interaktiven Session liegt. Passiert das, lässt dich Wendo den Pfad zu mosh-server in der Verbindung setzen.
Hinweise zur Firewall
Mosh braucht eingehendes UDP 60000–61000. Auf Linux mit ufw:
sudo ufw allow 60000:61000/udp
Mit firewalld:
sudo firewall-cmd --permanent --add-port=60000-61000/udp
sudo firewall-cmd --reload
Steht dein Rechner hinter einem Router, leite diesen UDP-Bereich genauso weiter, wie du Port 22 weiterleiten würdest. Für ET öffnest du TCP 2022 auf dieselbe Weise (sudo ufw allow 2022/tcp).
Läuft dein SSH über einen Proxy oder Load Balancer, könnte Moshs UDP an die falsche IP gehen. Für diesen Fall hat Wendo die Option „Server-IP für UDP verwenden“.
In Wendo wählen
Beim Bearbeiten einer Verbindung bietet das Feld Transport Auto, SSH, MOSH und ET. Bei Auto probiert Wendo zuerst Mosh, dann ET und fällt auf SSH zurück, wenn beides nicht verfügbar ist. Fang mit Auto an.
Ein wichtiger Hinweis: Mosh und ET gibt es vorerst nur in der Android-Version. Auf dem iPhone verbindet sich Wendo immer über SSH (Auto geht direkt über SSH, und wenn du MOSH oder ET von Hand wählst, meldet die App, dass sie unter iOS nicht verfügbar sind). Auf dem iPhone rettet dich bei Abbrüchen tmux: Die Verbindung reißt ab, aber der Agent arbeitet weiter, und du steigst dort wieder ein, wo du warst.
Eine praktische Faustregel unter Android:
- Du gehst mit dem Handy herum und Sessions dauern Minuten: Mosh.
- Du willst die App schließen, eine Stunde später wiederkommen und die Session unter Start finden: ET.
- Du verbindest dich über einen Jump Host: SSH. Weder Mosh noch ET funktionieren in Wendo mit einem Jump Host.
- Dein Rechner kann keine UDP-Ports öffnen: ET oder SSH.
Mosh und Eternal Terminal gehören zu Wendo Pro; ohne Pro läuft die Verbindung über SSH. Die Felder sind in der Doku zu Sessions beschrieben.
Welchen Transport du auch wählst, starte den Agenten in tmux. Der Transport hält den Bildschirm am Leben; tmux hält den Prozess am Leben und gibt dir das Scrollback, das Mosh fehlt. Die übliche Kombination ist Mosh oder ET für die Leitung und tmux für die Arbeit, und hier ist das Minimum an tmux, das du brauchst. Um Alerts zu bekommen, wenn der Agent um Erlaubnis bittet, siehe Hooks.