Extreme Mobile Development, Revisited
In 2019 I fixed failing tests from a train with Termux. In 2026 the phone doesn't need to do the work at all: SSH home, a small cloud box, or a coding agent running in the cloud, steered from my pocket, with my notes as the trigger.
🌱 A rough idea, planted recently. Expect rough edges — it will grow.
In 2019 I wrote a slightly unhinged post about programming on my phone. I’d pushed a commit without running the tests, realised on a train, and fixed it from Termux on Android: clone, run the tests, patch, amend, push. I also built a Snake clone on a three-hour flight with pre-downloaded docs. My conclusion back then was “fun for small projects, not for real work”.
Seven years later, that conclusion has flipped. The phone still isn’t a great place to do the work. But it no longer has to.
What changed
The heavy lifting moved elsewhere. In 2019 the phone was the computer. Now it can be a remote control for one:
- SSH home. Termux (or any SSH client) plus a private mesh network means my home machine, with my full dotfiles, tmux sessions and tools, is reachable from anywhere. A resilient connection and a persistent tmux session survive tunnels and dead zones.
- A small cloud box. A modest always-on server or dev container, provisioned from the same playbook as my laptop (Provisioning My Laptop with Ansible), so there’s no “works on my machine” gap.
- Browser-based environments. Cloud workspaces and web IDEs mean a tablet or phone with a Bluetooth keyboard is a workable setup for front-end tinkering.
- Coding agents in the cloud. The biggest change. An AI coding agent such as Claude can run on a server, in a sandbox, against my repo, while I steer it from a phone: describe the change, review the diff, approve or redirect. The phone’s weakness, typing lots of code on a small screen, stops mattering when the job becomes specifying and reviewing (Don’t Read the Code? Verifying AI-Written Code).
Notes as the trigger
My notes already live everywhere: one Obsidian vault, synced across devices, with a daily loop that distils what I log into knowledge and publishes some of it to this site (How I Take Notes: Capture, Distil, Resurface). The next step I want to explore is letting the notes start work:
- a change in a note, or an Obsidian command, fires a webhook;
- a listener on the server picks it up and hands it to an agent (“draft this idea as a note”, “open a branch for this task”);
- the result lands back in the vault or as a pull request for me to review on the commute.
It’s the same reconciliation loop I keep finding everywhere: the note is the desired state, and an agent nudges reality towards it.
Options I want to try
This is a plan, not a finished setup:
- SSH + mosh + tmux to the home machine over a private mesh VPN: the cheapest, most familiar option.
- A small always-on cloud VM or dev container, provisioned by Ansible, so it’s disposable and reproducible.
- A cloud coding agent with repo access, driven from the phone, with tests and checks as the safety net.
- Webhooks from the vault (via a plugin or sync events) into a tiny listener service that queues agent jobs.
- Guardrails before any of it is always-on: scoped tokens, no production credentials, cost caps on agent runs, and an audit trail (Agentic Development Platforms).
The 2019 version of me would be thrilled: the train is still the office, but now there’s a team in the cloud doing the typing.
Originally written in 2019 → “Extreme Mobile” development
- #mobile
- #termux
- #ssh
- #remote-development
- #ai-agents
- #obsidian
- #workflow
↩ Linked from (0)
Nothing links here yet — it’s a fresh shoot.
↪ Links to (5)
Related by topic
- Growing
Fast Feedback from Deploy Previews
Developer tooling - Growing
Infrastructure as Code for People, Not Just Servers
Platform engineering - Seed
Convex
Platform engineering - Growing
A Tiling Window Manager Workflow, Then and Now
Developer tooling