YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
FzF — gemeinsame tmux-Sessions über Tailscale
Ein Einstieg für Mensch und Agent, ohne Daemon oder zusätzliche Python-Pakete.
cd /home/smlflg/Projekte/FzF
python3 mesh.py
Der Picker zeigt Sessions aller erreichbaren Linux-/macOS-/FreeBSD-Geräte aus
Tailscale. Enter öffnet eine Session. Ctrl+b d trennt die Ansicht und bringt
dich zurück zum gemeinsamen Picker; die Arbeit läuft weiter. Escape beendet ihn.
+ New session legt auf dem gewählten Gerät eine Session an.
Der Picker läuft außerhalb von tmux und öffnet jeweils genau einen Client.
Wird er aus einem lokalen tmux-Pane gestartet, ersetzt detach-client -E den
zugehörigen Client durch den Picker. Andere Zuschauer werden nicht getrennt.
Es werden keine globalen Shortcuts oder Konfigurationen geändert.
Agenten
python3 mesh.py list --json
python3 mesh.py new samuel-mbp meine-aufgabe
python3 mesh.py capture 'SESSION_ID_AUS_JSON'
python3 mesh.py exec 'SESSION_ID_AUS_JSON' 'pwd; hostname; sleep 10'
capture liest die letzten bis zu 200 History-Zeilen plus sichtbaren Inhalt des
aktiven Panes. exec startet den Shell-Befehl in einem neuen Fenster der
gewählten Session und liefert dessen tmux-Fenster-ID. Bestehende Programme
erhalten keine Tastatureingaben. Kurzlebige Fenster verschwinden nach Ende des
Befehls entsprechend dem normalen tmux-Verhalten.
IDs bestehen aus Tailscale-Geräte-ID, tmux-Session-ID und Erstellzeit. Mehrere Einträge derselben Session werden zusammengeführt; gleichnamige Sessions auf verschiedenen Rechnern bleiben eigenständig. Es gibt keinen veralteten Cache: der Picker fragt parallel ab und validiert die Auswahl vor dem Öffnen erneut.
Voraussetzungen und Grenzen
- Lokal: Python 3, Tailscale CLI, tmux, fzf, SSH. Remote: SSH, Python 3, tmux.
- Vorhandene SSH-Aliase liefern Benutzer und Schlüssel. Die Zieladresse wird auf die Tailscale-IP festgelegt. Unbekannte Hostkeys werden nicht akzeptiert.
- Homebrew-Binärdateien auf dem Mac werden auch bei reduziertem SSH-PATH gefunden.
- Aktuell werden Standard-tmux-Sockets des jeweiligen SSH-Benutzers erfasst.
Separate
tmux -L/-S-Server gehören noch nicht zum Index. - Der Einstieg ist in diesem Checkout auf Pop!_OS verfügbar. Eine Installation auf weiteren Geräten und deren SSH-Rückwege sind noch nicht eingerichtet.
- Android-Geräte werden als nicht unterstützt angezeigt; Tailscale allein
stellt dort weder SSH noch tmux bereit. Offline-Geräte und SSH-Fehler stehen
ausdrücklich in
diagnostics. - Prozesse und Dateien bleiben auf dem jeweiligen Gerät. tmux transportiert die Bedienung, nicht die Dateien oder laufende Prozesse.
- Voraussetzung für Client-Ersetzung aus einem Pane: Der Picker-Pfad und Python existieren auf dem Rechner des tmux-Clients. Bei fremden Containern oder manuell verschachtelten SSH-Verbindungen zuerst regulär detach verwenden.
Prüfung
python3 -m unittest discover -s tests -p 'test_*.py' -v
python3 tests/smoke_live.py
Der Live-Test verwendet ausdrücklich Pop!_OS und samuel-mbp, erzeugt temporäre
Sessions und bedient den echten fzf-Picker in einem Testterminal. Die Sessions
enden innerhalb von 90 Sekunden selbst. Er prüft Remote-/Local-Attach, Rückkehr
zum Picker, Agenten-Lesen und Ausführung in einem neuen Remote-Fenster.
Grundlage für Client-Ersetzung und Attach-Verhalten: offizielles tmux-Handbuch.