Playbook: dev-laptop — Claude Code z telefonu (SSH + tmux / background agents)

Cel

Łączyć się z Claude Code działającym na dev-laptop (Berlin, 24/7) z telefonu. Dwie metody: interaktywna (SSH + tmux) i asynchroniczna (—bg background agents).

Wymagania: Claude Code CLI 2.1.196, OAuth radieu@gmail.com (Claude Max), autossh tunnel do vps-i1 aktywny (porty 2222 + 19100 forwarded na vps-i1:127.0.0.1).

Uwaga: claude remote-control NIE ISTNIEJE w wersji 2.1.196 — nie ma wbudowanego serwera HTTP dla zdalnych połączeń.


Metoda 1: SSH + tmux (interaktywna sesja z telefonu)

Setup jednorazowy

Zainstaluj Termius na telefonie (iOS lub Android).

Dodaj klucz SSH do Termius:

  • Wyeksportuj klucz prywatny id_ed25519 do telefonu przez iCloud / email zaszyfrowany / AirDrop — TYLKO na swoje urządzenie
  • W Termius: Settings → Keys → Import

Utwórz dwa hosty w Termius:

Host 1 — vps-i1 (jump host):

Label:    vps-i1
Hostname: 217.154.82.162
Port:     22
User:     root
Key:      id_ed25519

Host 2 — dev-laptop (przez vps-i1):

Label:      dev-laptop
Hostname:   127.0.0.1
Port:       2222
User:       root
Key:        id_ed25519
Jump host:  vps-i1

Codzienne użycie

# Pierwsze połączenie — utwórz trwałą sesję tmux:
tmux new-session -s claude
 
# Uruchom Claude Code (z katalogu repo):
cd /opt/p24-infra   # lub inny projekt
claude
 
# Odłącz (sesja żyje): Ctrl+B, D
 
# Kolejne połączenie z telefonu — wróć do sesji:
tmux attach -t claude
 
# Lista aktywnych sesji:
tmux ls

Wiele projektów naraz

tmux new-session -s infra    # sesja dla p24-infra
tmux new-session -s et-op    # sesja dla et-operational-platform
tmux ls                       # lista
tmux attach -t infra

Metoda 2: Background agents (async dispatch)

Wyślij zadanie bez utrzymywania otwartej sesji SSH. Claude wykonuje je w tle.

# Wyślij zadanie:
claude -p "przejrzyj ostatni commit i zaproponuj testy" --bg
 
# Claude zwraca natychmiast session ID i PID
 
# Sprawdź status i wyniki:
claude agents list
claude agents status <session-id>
 
# Logi zadania:
claude agents logs <session-id>

Przydatne gdy chcesz tylko “rzucić zadanie” z telefonu i wrócić po wynik później.


Połączenie tunnel architecture (kontekst)

Telefon (Termius)
    → SSH → vps-i1 217.154.82.162:22
        → SSH ProxyJump → 127.0.0.1:2222 (autossh reverse tunnel)
            → dev-laptop:22
                → tmux -a claude
                    → claude (interaktywna sesja)

Tunnel autossh (aktywny 24/7 na dev-laptop):

  • 127.0.0.1:2222 → dev-laptop:22 (SSH relay)
  • 127.0.0.1:19100 → dev-laptop:9100 (Prometheus node_exporter)

Service: /etc/systemd/system/p24-autossh-tunnel.service


Hardware dev-laptop

  • Model: Acer Aspire F5-573G
  • CPU: Intel i5-7200U
  • RAM: 8 GB (nie 16 — uwaga: Supabase dev_r_server_capacity.os_ram_gb = poprawić na 8)
  • OS: Ubuntu 24.04 LTS
  • Location: Berlin, Ackastrasse 12
  • Zasilanie: domowy internet + prąd AC (monitoring alertuje o odłączeniu)

Weryfikacja że tunnel działa

# Z lokalnego Windows (przez vps-i1):
ssh -p 2222 -J root@217.154.82.162 root@127.0.0.1 "hostname && claude --version"
 
# Oczekiwany output:
# dev-laptop (lub hostname laptopa)
# Claude Code 2.1.196 (lub nowsza)

Powiązane

  • Power monitoring: /usr/local/bin/p24-power-event.sh, p24-battery-check.sh
  • Grafana alerts: DevLaptopACDisconnected, DevLaptopBatteryLow, DevLaptopBatteryCritical
  • Log dir fix: dev-laptop-worker-log-dir.md — not yet written; no dedicated playbook exists for this fix
  • Worker queue dispatch (p24 system): docs/dispatch-architecture.md
  • Memory: memory/project_dev_laptop_worker.md