← Blog

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.

Four sessions on a machine you own. Three of them do not care where you are. The fourth is the only reason to take the phone out of your pocket.

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

  1. Start it under a multiplexer

    Run the agent inside tmux, herdr or Zellij so the session survives your connection rather than depending on it.

  2. 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.

  3. 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.

  4. Give it a stopping point

    A task that ends somewhere sensible beats an open-ended one, because you are choosing not to watch it.

A task worth leaving alone 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.

What survives you walking away
When the phone goes in your pocketKeeps 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 agent keeps running in every row. What varies is only whether your phone was still holding the window open.

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.