P223 23:31:30 13 FEB
MOBILE DEV SETUP
03 JUL 2026

I’ve always felt quite restless once I start working on a project. If I’m sitting in a park, on a train, or away from my desk with an idea in my head, I often want to make a quick change or keep a thread of work moving. But without my laptop I’ve always had to settle for doing something else. Still, I have always been curious about what options were available so years ago I looked into Termux, an app that provides a terminal on your phone. I wanted to try coding on the go, but writing productive code from such a small screen and keyboard felt impractical. However, when AI agents came along the idea started to seem much more realistic so I decide to try again.

I started by looking at a few mobile vibe coding apps, but none of them seemed flexible enough for my preferred workflow, so I revisited Termux to create a lightweight setup of my own. The goal was to use my phone as a portable terminal into machines that can handle heavier development tasks, while working with AI agents to get implementation done efficiently.

Connectivity - Termux and Tailscale

From my phone, I can use Termux to SSH into my repurposed laptop home server or Raspberry Pi server rack. But there came the first problem. I wanted to access these machines from outside my home network, yet I didn’t want to expose them to the internet for security reasons. The solution was Tailscale, which makes it easy to create a private network between your devices, even when they are hidden behind a home router.

Termux open on my phone with an SSH command ready to connect to a home server

This works well because the heavier tasks still run on remote machines. Builds, tests, language servers, Git operations, and longer Codex sessions are handled by hardware that is already plugged in and available on my home network. My phone is mostly responsible for input, review, and steering the work.

Development tools - tmux and Neovim

Once I was connected, I needed to tune my development setup for such a small screen. tmux is a great tool for multiplexing terminal screens, creating tabs, and saving sessions. It lets you disconnect from a machine and later pick up where you left off. I can start a session on one of those machines, detach from it when I need to stop, then reattach later from the same phone, a tablet, or a laptop without losing editor state, shell history, or a running task. That makes switching client devices feel seamless when a complex task requires moving to my laptop, while also helping me make the most of my phone’s limited screen space.

A tmux session on my phone with Codex running in the top pane and a blank terminal in the bottom pane

As you can see above, I can keep the top pane dedicated to prompting Codex and use the bottom pane for Git, running servers, or minor tweaks via Neovim. My Neovim config is also available on GitHub, which makes setting up remote machines easier.

Reflection

The setup is built around Termux for a local Android shell, Tailscale for private network access, tmux for persistent sessions, Neovim for editing, and Codex for AI-assisted coding.

While it is still a compromise compared with sitting at a proper keyboard and monitor, I have been able to get a surprisingly smooth workflow from this setup. I also like how the lack of GUIs has helped me improve at working entirely from the terminal, and those lessons apply across both laptop and phone-based work. For quick fixes, reviewing generated changes, or nudging a project forward while away from my desk, this setup gives me a capable way to code from anywhere.