Portable setup

The same live session,
on every device you own.

cheep is a plain terminal app, so the most reliable portable setup needs zero new software: leave cheep running inside tmux on your main machine and attach from anywhere over SSH. Full TUI — agent tabs, cost meter, pending approvals — and a long-running delegation keeps working while your phone is in your pocket.

The three pieces (all free)

Tailscale gives your phone a private, encrypted path to your machine from anywhere — no port forwarding, no public IP. tmux keeps the session alive between connections. An SSH app on the phone is the window into it.

One-time setup · ~5 minutes

  1. Install Tailscale on both devices.

    tailscale.com/download on the Mac (or Linux box) and the phone app store; sign both into the same tailnet. Note your machine's tailnet name (e.g. teds-macbook).

  2. Enable SSH on the machine.

    macOS: System Settings → General → Sharing → Remote Login (or sudo systemsetup -setremotelogin on). Linux: sudo systemctl enable --now sshd. Prefer key auth: generate a key in the phone app, paste the public key into ~/.ssh/authorized_keys.

  3. Install tmux

    brew install tmux (macOS) or your package manager. Recommended for cellular: brew install mosh.

  4. Pick a phone SSH app.

    iOS: Blink Shell (best keyboard for TUIs, mosh built in) or Termius. Android: Termius or JuiceSSH. Add a host entry for the tailnet name so connecting is one tap.

Daily use

On the machine, start (or rejoin) cheep inside tmux:

tmux new -As cheep    # -As: attach if it exists, create if not
cheep

From the phone:

ssh teds-macbook -t 'tmux attach -t cheep'
# flaky networks / switching wifi↔cellular:
mosh teds-macbook -- tmux attach -t cheep

You're now in the exact same session — same conversation, same running task, same tabs, same pending approvals. Detach with ctrl+b d (or just close the app; tmux doesn't care). Anything you started from the phone is still there when you sit back down at the desk — and vice versa.

The walk-away workflow

# at your desk:
› rewrite the storage layer to use sqlite; iterate until `go test ./...` passes
/budget 3                # bound the worst case
# … leave. later, from the couch:
ssh teds-macbook -t 'tmux attach -t cheep'
# glance at the tab glyphs (● running · ✓ done · ⚠ stuck · ✗ error),
# /tokens for spend, answer any queued approval, queue the next task, detach

Pair it with /nomistakes on and nothing can merge while you're away — held work waits on branches for your sign-off, and the approval overlay is right there the next time you attach. Before a long break, /stow writes lessons and a done / in-flight / next-steps note to ~/.cheep/history/notes.md. If the machine ever dies mid-task, the next launch lists exactly which delegations were interrupted and which branches hold their partial work.

Tips

Cheat sheet

WhereCommand
Machine, once per boottmux new -As cheep then cheep
Phone, connectssh <tailnet-name> -t 'tmux attach -t cheep'
Phone, flaky networkmosh <tailnet-name> -- tmux attach -t cheep
Anywhere, leavectrl+b d — detach; everything keeps running
Before stepping away/stow · /budget · optionally /nomistakes on