How Sprites Accidentally Solved Mobile Development
A few days ago, this post hit HN’s front page and generated over 400 comments. The author is talking about the setup he uses to code from his phone using Tailscale, an always-on Mac at home, SSH via Termius, and Claude Code in the terminal.
If you’re asking why anyone would want to code from their phone, you can safely stop reading now and return to a peaceful existence, where ideas only come to you when you’re sitting behind a computer. For those familiar with the need to try an idea right now, wherever you are, whatever you’re doing, you’re in the right place.
What Was and Need No Longer Be
The HN post’s comments section showed off some genuinely impressive mobile coding setups that range from the creative to the absurdly over-engineered. Tmux sessions, VPS boxes, all the SSH clients, and a million ways to access these env’s from your phone.
For a lot of people, designing setups like this is fun. But if managing always-on servers and VPN configurations is less exciting to you than building an app in real time while brainstorming it on a hiking trail, there’s a better way. We call ‘em Sprites.
What’s a Sprite Again?
The correct answer is: Whatever you want it to be. But that isn’t super helpful in this context. So let’s start with the idea of a Sprite as the server in your mobile coding setup. Instead of running a machine 24/7 or starting and stopping a VM, use a Sprite. It’s a full Linux computer that spins up in under a second and runs only when you need it.
Your code, installed packages, and project state persist between sessions, even when the Sprite is suspended. You (or Claude) can checkpoint your Sprite at any time, which creates a restorable snapshot of the entire environment, not just your code. And since it’s a hardware-isolated computer rather than a shared container, you can run literally any code and experiment aggressively, while genuinely just not caring about breaking anything important.
If you want to unleash your code assistant, give it full file system access and tell it to build that genius app idea that occurs to you at 3am without getting out of bed, you wanna do that in a Sprite.
But wait, how are you doing this from your phone?
Sleep Is For the Weak
We are blessed with multiple really smart guys called Chris at Fly.io. And one of them, a Christopher actually, has built a - dare I say - elegant way for you to issue orders to Claude in a Sprite from your phone. The aptly named sprite-mobile, a chat UI for accessing Claude Code running in YOLO mode on a sprite.
Here’s how to set it up:
- Create a Sprite
sprite create cheese_sandwich
- Download and run the Sprite-mobile install script
curl -fsSL https://raw.githubusercontent.com/clouvet/sprite-mobile/refs/heads/main/scripts/sprite-setup.sh -o sprite-setup.sh && chmod +x sprite-setup.sh && ./sprite-setup.sh
I shit you not. That is it.
The script will speedrun you through everything needed to get up and running:
- Configure your sprite and git user
- Authenticate Claude CLI, GitHub CLI, Fly.io CLI, Sprites CLI
- Install and configure Tailscale
- Clone and run sprite-mobile and configure a Tailscale-based Sprite network (if you want automatic discovery of other sprites in your org)
- Set up Tailscale Serve (HTTPS for PWA support)
- Start the Tailnet Gate (public entry point to wake up the sprite if it’s suspended)
To access this Claude-powered dev sandbox you just spun up in the same time it takes to make a midnight cheese sandwich, you’ll want to get its public url:
sprite url update --auth public -s cheese_sandwich
Drop that in your Tailscale-connected phone’s browser and you’re cooking.
Your Sprites automatically go to sleep after 30s of inactivity and wake up faster than a cat when you open a can of tuna a mile away (sub 1s). And you only pay for the resources your Sprites are actively using. Got 30 projects in 30 Sprites waiting for you to decide when you’re interested in them again? Cool. No charge.
Why are you still here? Check out the full details in the sprite-mobile repo and read more about Sprites at sprites.dev.