Field note
Go outside. The agent is still working.
The phone was never the thing keeping your agent alive. The server is. Once you believe that, an afternoon outdoors costs you nothing — you leave, the work continues, and the only thing that interrupts you is a question that genuinely needs answering.
Work ends whether or not the build has. Pau hana — the end of the working day — arrives on its own schedule, and the usual answer is to ignore it: keep the laptop open on the table, half-watch a progress bar, and give up the evening to a process that does not need you for any of it.
That trade only makes sense if the work is happening on the machine you are carrying. Usually it is not. The agent is a process on a server, editing files on that server's disk, running that server's tests. Your phone is a window onto it. Close the window and the room is still there.
The server is the durable layer
Start Claude Code or Codex inside tmux, herdr or Zellij and the session belongs to the server, not to your connection. Drop to one bar of signal, walk into a lava tube, put the phone away for two hours — the agent keeps reading, editing and running tests, because nothing about it was ever attached to you.
This is the whole trick, and it is worth being precise about it, because it is easy to credit the wrong component. The app is not holding the process up. The multiplexer on the far end is. Mobile SSH's job is to leave and come back cleanly.
You are not the power supply. Stop behaving like one.
Check in, don't babysit
An agent that runs for an hour needs a person for about ninety seconds of it. The problem has never been the waiting; it is not knowing when the ninety seconds arrive, which is what keeps people staring at a screen that has nothing to say.
Agent Alerts answer that. The detection is deliberately dumb and therefore trustworthy: a terminal bell, an OSC 9 or OSC 777 notification, and the agent hook you install on the server once. It does not read your output and guess at intent, and there is no sensitivity dial to tune — it reports what the program on the other end actually announced.
So the phone stays in your pocket until a real question exists. Then it buzzes, you read the prompt, tap an answer, and put it away. That is the entire interaction, and it works from a beach, a trailhead, or the queue for shave ice.
Before you walk out
- Start it under a multiplexer
Run the agent inside
tmux,herdror Zellij so the session survives your connection rather than depending on it. - Install the agent hook
Once per server, from inside the app. It is a small shell script any agent can call — not a vendor integration, and not tied to one CLI.
- Prove one alert arrives
Trigger a prompt and confirm the phone buzzes before you rely on it. An alert you have never seen work is not a plan.
- Give it a stopping point
A task that ends somewhere sensible beats an open-ended one, because you are choosing not to watch it.
Read AGENTS.md, then fix the failing handler tests. Inspect the diff before editing, run the focused tests, and stop after they pass — do not commit. What the island cannot fix
Two honest limits, because a post that only lists strengths is an advertisement.
| When the phone goes in your pocket | Keeps going? |
|---|---|
| The agent process on the serverOwned by tmux, herdr or Zellij | ✓ Yes |
| Files, diffs and test outputOn the server's disk | ✓ Yes |
| Your place in the sessionRe-attached when you return | ✓ Yes |
| The connection, on AndroidHeld by a foreground service | ✓ Yes |
| The connection, on iOSBrief background time — then reconnects | — No |
| An alert with no signal to deliver itNeeds an active connection; delivery is not guaranteed | — No |
The platform difference is real and worth planning around. On Android a foreground service holds the connection while the app is in the background — the ongoing notification is the session. iOS gives the app only a short background window; after suspension, it reconnects and re-attaches to your multiplexer when you come back. Alerts depend on the connection being active. Either way the agent on the server never stopped, which is the point. Only the window closed.
Aloha is not an excuse to be careless
Leaving well is a small discipline. Anything you would not want to run unattended for two hours should not be started as you walk out the door — an agent midway through a migration is not improved by distance. Give it a task with a natural stopping point, ask it to inspect before it edits, and let the diff be the thing you review when you get back.
And take the same care with the notification as you would with a pager. If everything alerts, nothing does. The hook fires on the states worth interrupting a person for; leave it that way and the buzz stays meaningful.
The build does not need an audience. Go and be somewhere.