Handback

Docs

Setup

The sender is free and runs on your agentic box. The app is the receiver on your Mac, iPhone, and iPad. They talk directly — over your LAN, a reverse proxy, or Tailscale (recommended).

1. Install the sender

On your agentic machine (macOS or Linux), install the free daemon and let it capture browser links.

brew install jereco/tap/handback

# write a $BROWSER shim (catches gh, gcloud, etc.)
# and, on macOS, register a default-browser helper
handback install --default-browser

2. Pair with the app

Generate this machine's identity and a pairing URI. Pass the address your devices reach it at (a Tailscale name or host:port).

handback pair --host your-box:8765 --qr

# prints a handback://pair?… URI and a scannable QR

3. Run the daemon

Start serving. brew services keeps it alive across reboots; or run it under your own LaunchAgent (macOS) / systemd unit (Linux).

brew services start handback

# or, in the foreground:
handback serve

4. Add it in the app

Open Handback, hit + → Add Machine, and scan the QR or paste the URI. Toggle auto-open per machine if you want links to launch in your browser automatically.

Recover a stuck login

If an OAuth login was started by another tool (not through Handback) and is stranded on a localhost callback, deliver it to its listener from the box:

handback deliver "http://localhost:60211/callback?code=…&state=…"