Skip to content
matthewcm.dev

    ↑ ↓ move · ↵ open · tab scopeopen graph →

    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.

    Seedtended planted 3 min read

    🌱 A rough idea, planted recently. Expect rough edges — it will grow.

    On this page

    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:

    1. SSH + mosh + tmux to the home machine over a private mesh VPN: the cheapest, most familiar option.
    2. A small always-on cloud VM or dev container, provisioned by Ansible, so it’s disposable and reproducible.
    3. A cloud coding agent with repo access, driven from the phone, with tests and checks as the safety net.
    4. Webhooks from the vault (via a plugin or sync events) into a tiny listener service that queues agent jobs.
    5. 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

    Nothing links here yet — it’s a fresh shoot.

    ↪ Links to (5)