ai · deploy · tutorial
Claude Code Phone + VPS: Ship Tonight From the Couch
Run Claude Code from your phone against a $5 VPS: Termius, Tailscale mesh, and one push to prod. Full setup + Tuesday drill.

Your best ideas arrive when the laptop is closed
You are on a couch, in a taxi, in a lunch line. And the fix is obvious.
A pricing typo. A broken redirect. A customer waiting on a one-line change.
The laptop is at home. The server is awake. And you cannot reach it.
So the fix waits six hours. The customer churns. The evening becomes a deploy scramble.
The pain is not the code. It is the gap between seeing the fix and shipping the fix.
Claude Code closes that gap, if it runs somewhere reachable. A laptop asleep in a bag is not reachable. A $5 VPS that never sleeps is.
Why laptop-only shipping hurts
| Trap | Laptop setup | Phone and VPS setup |
|---|---|---|
| The machine sleeps | Lid closed, agent dead | The VPS runs 24/7 and keeps Next.js up |
| Network roulette | Cafe Wi-Fi, dynamic IPs | One private network, one hostname |
| The ship path | Commit now, deploy tonight | Fix, check and ship from the phone |
Three things make laptop-only worse than it looks.
State lives on the wrong machine. Your branch, your local settings, your half-tested fix, all on a disk in your backpack. Close the lid and the work pauses.
SSH over the open internet is a chore. Port 22 open to the world means key sprawl and fail2ban tuning. Most founders simply stop connecting.
Deploys need a desk. If shipping needs a terminal, a build and a CI click, you will not ship small fixes. Small fixes rot into Monday batches.
The answer is not a bigger laptop. It is a box that never sleeps, reached through a private network.
What to do
Put the server and your phone on one private network. Tailscale does it for free.
Install it on the server, sign in, give the server a name. Install it on the phone with the same account.
Port 22 stays closed to the internet. The network answers only inside your private mesh.
Your phone, laptop and server share a hostname on every network.
Couch Wi-Fi.
5G.
An airport captive portal.
Next, put an SSH app on the phone. Termius's free tier is enough.
One host. One key from the phone's keychain. One tap and you have a full terminal.
Then install Claude Code on the server and open it in your project folder.
It runs on the VPS, not the phone. The phone is a glass keyboard. Claude edits next to the database, and nothing crosses a laptop disk.
Ship from the box
Run your checks. Then run bp deploy.
It checks your code, builds it, puts it live and waits for the new version to answer. If it never answers, the previous version comes back.
bp rollback --yes undoes a release later.
No CI minutes. No dashboard clicks. No laptop.
The Tuesday drill
Do this once and the loop is trusted.
| Check | From your SSH app | Pass looks like |
|---|---|---|
| Mesh up | Check the private network status | The server and phone both listed |
| App alive | bp status |
Branch, database size and latest backup |
| Gate clean | Run the project's lint | No errors, no warnings |
| Ship works | bp deploy |
The new version answers its health check |
A phone keyboard is slow for big rewrites. Use it for one-line fixes, approvals, restarts and logs. Save the 500-line refactors for a real keyboard.
One more guard.
The project carries a written rules file the agent reads every session.
Additive-only database changes.
Thin routes.
Production database changes sit behind a step an agent cannot take.
Know this first
A phone keyboard is slow for big rewrites. Use it for small fixes, approvals and logs.
Save refactors for a real keyboard.
Why BoringPush is the way to do this
Your best fix arrives on the couch. Ship it from the couch.
BoringPush sets up the server for you. Then bp deploy ships and bp rollback --yes undoes.
The loop works wherever your phone does.
FAQ
Do I need a paid Termius plan to SSH from my phone?
No. The free tier holds enough hosts for one founder (phone → prod-box).
Paid adds snippets sync and biometric vault, which is nice but not required. What matters is the key: generate it on the phone, add the public half to ~/.ssh/authorized_keys on the VPS, and never type a password again.
Does Claude Code run on the phone or the server?
On the server. The phone is only a terminal.
Claude reads the repo on local NVMe, next to SQLite and the build tools, so file reads are instant and native modules match Linux. Running the agent on the phone itself would drain the battery and fight ARM-vs-x64 rebuilds.
What if I lose my phone — is the server exposed?
No, if you set it up right. SSH keys live behind the phone passcode, Tailscale needs your account login, and the VPS exposes no port 22 to the internet. Revoke the phone in the Tailscale admin panel and rotate the key from your laptop.
BoringPush keeps admin access as an allowlist of emails, so removing a person is one edit.
How is this different from GitHub Codespaces on mobile?
Codespaces bills per hour and sleeps when idle. The VPS costs $5 flat and never sleeps — PM2 serves traffic all night.
For a solo SaaS with steady low traffic, flat wins. If you already live in Codespaces, keep it; the BoringPush repo runs there too, but the phone-to-VPS loop is cheaper.
Can two founders share one prod box over Tailscale?
Yes. Add both people to the same Tailnet with tagged ACLs (autogroup:member can SSH prod-box, nothing else).
Each uses their own key. Deploys go through one at a time, so you never interleave builds.
What breaks most often in this setup?
Tailscale key expiry on the server (fix: disable expiry for prod-box in admin) and Termius hostnames after a phone restore (fix: re-import the key, keep hostname prod-box). Both take two minutes. The drill above catches either before it matters.
Keep reading
- How to Ship to a VPS From Claude Code (Phone Included) — the couch-to-VPS loop this setup plugs into
- How to Ship Code From Your Phone (2026 Setup) — the 4-app stack and week-one playbook
- Deploy Next.js on Hetzner $5 by Dinner Tonight — the afternoon build this mesh sits on
+ all the boring stuff (analytics, auth, SQLite ↔ Supabase, full marketplace, webhooks)
Command from your phone.
Built so autonomous AI agents build what you want without breaking what's already paying you.
- Built-in analytics — cookie-free mode, $0 forever, no PostHog bill
- SQLite ↔ Supabase: one setting, same field names
- Full digital marketplace & feedback boards included
- 3 payment rails: Stripe, LemonSqueezy & Dodo Payments
- Agent fences: lint gate, read-only data access, auto-rollback
- Ship from your phone via SSH & WireGuard/Tailscale in under a minute
$199
Get BoringPushOne-time payment · Lifetime updates · Unlimited projects.
Keep reading


