Before I get into the details, I must say in advance - This solution was created a long time ago - These days we have many other options available, while they are deffinitley better and easier to use or implement, but since I did this while there were no other good options available, I decided to still write a blog post about it.
For a long time, coding agents have been tied to the machine they're running on. If you wanted Claude Code to review code, create files, or work on a project, you had to sit in front of your dev station. Sometimes, I found it a bit frastrating when I came up with ideas I wanted to implement but it wasn't a good time to do that, thats why I decided to do this.
The goal was simple:
Send a command from my phone and have Claude Code execute it on my development machine from anywhere in the world.
What emerged was a mini architecture built from a handful of lightweight components that many of us have or can get easily:
- A smartphone
- Termux (or any other terminal emulator)
- Tailscale
- A Raspberry Pi
- Coding agent (e.g. Claude Code)
- SSH
The result feels like carrying a personal software engineer in your pocket.
The Architecture
At a high level, the system looks like this:
Phone ↓ Termux ↓ Tailscale ↓ Raspberry Pi Gateway ↓ SSH ↓ Development Workstation ↓ Claude Code
Instead of exposing a workstation directly to the internet, the Raspberry Pi acts as a gateway layer. The phone never talks directly to the development machine. Everything flows through a secure private network and a controlled entry point.
Why Not Just SSH Into The Laptop?
Because the goal wasn't remote shell access. The goal was intent-based development.
Instead of ssh laptop > cd project > open editor > run commands,
I wanted, cc "prompt"
The phone becomes a command console for AI-driven development rather than a remote desktop replacement.
The Power Of A Gateway
The Raspberry Pi ended up serving an important purpose. Technically, the phone could have talked directly to the workstation. However, introducing a gateway provides several benefits:
The workstation is never directly exposed, and all requests arrive through a dedicated machine whose sole purpose is routing and validation.
Also, the gateway can eventually queue requests, rate limit usage, log activity, add authentication layers, and route requests to different machines.
Today it forwards commands. Tomorrow it could become a complete AI orchestration layer.
The Role of Tailscale
One of the biggest challenges in personal infrastructure is networking. Static IPs, port forwarding, dynamic DNS, firewall rules—these are all problems developers have historically had to solve. Tailscale largely eliminates that complexity.
Every device becomes part of a private mesh network. The phone can securely reach the Raspberry Pi regardless of Home Wi-Fi, mobile network, public Wi-Fi, or travel. Also, no ports need to be opened to the public internet.
The entire setup feels local, even when it's distributed globally.
Why Termux?
Most mobile development workflows rely on custom apps, web dashboards, or messaging bots (I do have multiple dedicated agents for specific tasks triggered via Telegram, but this one felt different for me). Termux provides something more powerful: A real terminal.
This means the interaction model remains familiar, no UI needs to be built, no mobile application needs to be maintained, and the phone becomes a portable command-line client.
For developers, this is often the most productive interface possible.
Claude Code As Infrastructure (Can be any other coding agent of course)
One interesting realization from this project is that Claude Code stops feeling like a coding agent and starts feeling like infrastructure. Instead of opening Claude and asking it to help with a task, the system treats Claude as a service endpoint.
A request arrives. A project is selected. Claude receives context. Work is performed. Results are returned.
This shifts AI from an interactive tool to an operational component.
Things I improved on the way
- Dedicated Worker User: Instead of running under a primary workstation account, Claude could operate under a restricted user with access only to project directories.
- Containerized Execution: Each request could execute inside a disposable container, providing stronger isolation and reproducibility.
- Job Queue: Long-running tasks could be queued and tracked asynchronously.
- Notifications: Results could automatically return through push notifications, Telegram, Discord, Slack, and multi-agent routing.
- Different requests could be routed to different agents: Code reviewer, Test engineer, Documentation writer, Architecture advisor, etc.
The Bigger Picture
The most interesting part of this project isn't the technology itself. It's what it represents. We're moving toward a world where software development isn't tied to a specific device.
The workstation/cloud remains where the compute lives. The developer becomes location-independent.
Your phone becomes a secure command center capable of initiating meaningful engineering work from anywhere. A Raspberry Pi, a private network, and an AI coding agent are enough to create something that would have felt like science fiction only a few years ago.
And the best part? The entire system runs on hardware that most developers already have sitting around at home.
Sequence diagram of the first iteration



