Use your phone or TV
No machine for a runner? A phone, TV or computer that you leave on at home can lend its home internet address. unopenrouter runs the CLI with your login, and all of its traffic goes out through your device.
- On the device, install Tailscale, sign in, and turn on Run as exit node (see your device below).
- On login.tailscale.com/admin/machines: the device's ⋯ menu → Share…, tick Allow use as an exit node, and copy the share link.
- In the dashboard: Exit nodes → Add device, paste the link. Then Accounts → Connect account to add your Claude or ChatGPT login.
Which should I pick: exit node or runner?
| Option | Uptime | Cost | What you need | Who holds your login |
|---|---|---|---|---|
| Exit node (phone, TV) | While the device is on | $0 | A device that runs Tailscale | unopenrouter, encrypted |
| Runner at home | While it's plugged in | ~$70–110 once | A small Linux box | You |
| Runner on a VPS | High | From ~$2/mo* | A VPS, ssh | You |
| Runner on your computer | Only while it runs | $0 | Node 22 | You |
With an exit node your traffic leaves from your home address, like a runner at home, but your login is kept by unopenrouter (encrypted at rest). A runner keeps it on your own machine. *Check current prices.
Android phone or tablet
- Install Tailscale from Google Play and sign in.
- Tap Exit Node at the top of the app → Run as exit node.
- Keep it running: Settings → Apps → Tailscale → Battery → Unrestricted (names vary by phone; on Samsung, Battery → Unrestricted, and remove it from Sleeping apps). Leave it on Wi-Fi and charging.
iPhone or iPad
- Install Tailscale from the App Store and sign in.
- Open Exit Node → Run as Exit Node.
- Keep it on Wi-Fi and charging. A phone you carry around makes a poor exit node; an iPad or an old iPhone left at home works better.
Apple TV
- Install Tailscale from the App Store on the Apple TV (tvOS 17 or newer) and sign in.
- In the app: Exit Node → Run as Exit Node.
- Settings → General → Sleep After: Never, so it stays reachable.
Android TV or Google TV (Chromecast with Google TV, Shield, Sony, TCL…)
- Install Tailscale from Google Play on the TV and sign in (it shows a code to enter on your phone).
- Open Exit Node → Run as exit node.
- Turn off the TV's deep sleep if it has one (Settings → System → Energy saver / Power → never).
Samsung (Tizen) and LG (webOS) TVs, and most other built-in smart-TV systems, can't run Tailscale; use a streaming stick or box instead.
Mac or PC
- Install Tailscale from tailscale.com/download and sign in.
- Mac: the Tailscale menu-bar icon → Exit Nodes → Run Exit Node…. Windows: the tray icon → Exit nodes → Run exit node.
- Keep it awake: on a Mac, System Settings → Energy → Prevent automatic sleeping when the display is off; on Windows, Settings → Power → Sleep: Never.
Raspberry Pi or Linux
curl -fsSL https://tailscale.com/install.sh | shecho 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-tailscale.conf,echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf,sudo sysctl -p /etc/sysctl.d/99-tailscale.confsudo tailscale up --advertise-exit-node
A Pi can run a runner instead, which keeps your login at home too.
Approve the exit node, then share it
- On login.tailscale.com/admin/machines, find the device. If it shows Exit Node with a warning, open its ⋯ menu → Edit route settings… → tick Use as exit node → Save.
- Same menu → Share… → tick Allow use as an exit node → Copy share link (or share to the address the dashboard shows).
- Paste the link in the dashboard under Exit nodes → Add device.
Logging in your accounts
Claude: on your own computer run claude setup-token, sign in, and paste the token
in the dashboard (Accounts → Connect account). It's checked through your device.
ChatGPT (Codex): Accounts → Connect account → ChatGPT gives an address and a code; sign in there. The login happens through your device.
Anthropic's terms don't allow third-party apps to hold Claude subscription credentials; connecting is at your own risk.
A second device for uptime
Add more devices the same way (a TV first, then a phone). The first one online, in your order, is used; the others are checked every few seconds and take over within seconds if it drops. A conversation keeps its device while that's up. Reorder them with Move up in the dashboard.
Is it working?
The dashboard's Exit nodes shows each device (green: in use) and
API available: yes (via your device, its country). Before any traffic of yours goes out, the
server checks that it leaves from your device's address and not its own; until then, and whenever no device is
up, your requests answer 503 exit_offline instead of going anywhere else.
Troubleshooting
"Not allowed as exit node". The exit node isn't approved in your Tailscale admin console, or the share didn't tick Allow use as an exit node. Approve it (above) and share it again.
Android keeps dropping. Battery optimisation is stopping Tailscale: set its battery use to Unrestricted and keep the phone charging on Wi-Fi.
Requests answer 503 exit_offline. None of your devices is online, or its exit
node is off. Open Tailscale on it and check Run as exit node.
Codex login gets a 403. Rare from a home address; try again, or add a second device.
The share link is refused. A link works once; make a new one, or share by email.
Privacy, and removing everything
Your login is stored by unopenrouter, encrypted at rest. Your device only forwards encrypted (TLS) traffic, so it can't read your prompts, and unopenrouter only sends your own requests through it. With Don't store my data on, conversations are deleted after 3 idle hours.
Remove it: in the dashboard, Exit nodes → Remove, and remove your accounts. In Tailscale's admin console, the device's ⋯ → Share… → revoke the share; turn off Run as exit node on the device. To end a Claude token, sign out of all sessions in your Claude account settings.