I ship code between sets at the gym
I'm at the gym by 6am every day. Somewhere between sets, I'm also shipping code. A tmux session on the server, Claude's remote control on, and my phone doing the rest.
I’m at the gym by 6am every day. Rest between sets is sixty, ninety seconds of standing around, and lately that’s when I clear the small stuff. Read what the agent did overnight, nudge it in a better direction, kick off the next task, rack up for the next set. By the time I’ve showered there’s a branch waiting that I never touched a keyboard for.
This isn’t discipline, it’s that the constraint finally disappeared. For years “doing work” meant being in front of the machine the work lived on. Now the work lives on a server and runs itself, and my phone is just a window onto it. The desk, the laptop, the time of day: none of it is load-bearing anymore. You can code anywhere, anytime, in the gaps you used to waste.
Here’s the whole setup. It’s three steps and takes about a minute.
1. Start a tmux session on the server
Everything runs inside tmux so the session survives me disconnecting. I SSH in and start a named session:
tmux new -s Staging
I name the session after the project. Here it’s Staging, for this site, so it’s obvious
which one I’m picking up later. If I get knocked off the network, or close the laptop, or
just walk away, the session keeps running on the server. When I come back I reattach with:
tmux attach -t Staging
Nothing I was doing is lost, and Claude is still sitting wherever I left it.
2. Enable Claude’s remote control
Inside the tmux session I start Claude Code and turn on remote control. This is what lets my phone connect to the same session that’s running on the server, rather than starting a separate one. The terminal session and the phone become two windows onto the same Claude.
The key thing is that the session is still the one running in tmux on the server. The phone isn’t a copy or a fresh instance. It’s a second view of the live session, so whatever I start on one I can carry on from the other.
3. Pair the phone and work
With remote control on, I pair the Claude Code app on my phone to the session. The app lists the sessions it can connect to, so picking up where I left off is just tapping the right one.
After that I can read what the agent is doing, approve or redirect it, and kick off new work, all from the phone. When I’m back at a real keyboard I reattach to the same tmux session and keep going.
That includes shipping. The same thread that drafts a change can commit and push it, so the loop closes without ever reaching for a laptop.
Why this works
The trick is that none of the three pieces depend on me. tmux keeps the process alive, remote control exposes the session, and the phone is just another client. There’s no syncing, no “where was I”, no half-finished state stranded on a laptop that’s now asleep in a bag.
So the work is tied to the server, not to me being in front of it. I can start something at my desk, check on it between sets, redirect it from the changing room, and reattach from a real keyboard later. Same session, exactly where it was. It never stops; I just move between the windows onto it.
The novelty wears off fast, and that’s the point. Coding used to be somewhere you went. Now it’s something that’s just running, and you drop in on it: at your desk, on the train, or in the ninety seconds before your next set.