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.

Charlie Chaplin in a bowler hat, laughing as he reads a magazine, 1915
Charlie Chaplin in a bowler hat, laughing as he reads a magazine, 1915 · Photo: Unknown author, public domain, via Wikimedia Commons

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

+ all the boring stuff (analytics, auth, SQLite ↔ Supabase, full marketplace, webhooks)

The Agent-First Shipping Kit

Command from your phone.

Built so autonomous AI agents build what you want without breaking what's already paying you.

$199

Get BoringPush

One-time payment · Lifetime updates · Unlimited projects.

Keep reading