Building my own on-the-go remote agent

The future of agents is remote. They run on a server, in the cloud, anywhere, reachable from whatever is in hand. Catch Me Outside is a personal on-the-go remote agent. The idea is simple. An iPhone serves as the remote control, while the actual work happens on a server. That server can live on a machine at home, on a dedicated box, or on a cloud server. It runs anywhere.

The phone stays thin. It is the window and the trigger. Everything real, the state, the tools, the model calls, lives on the server and comes back as results.

The core pieces

Principles

These are the principles behind the design choices being made.

  1. Autonomous. The app does not ask for permission. It runs on its own and hands over the results.

  2. Isolated from the main door. Each chat runs in its own work tree. Everything it creates, files, processes, updates, gets cleaned up when the chat is done.

  3. Chats are meant to be deleted. If a chat sits idle for a while, the assumption is that it is no longer being worked on, and it gets scheduled for deletion.

  4. A control mode. It is a hands-free way to work, voice control for everything.

  5. Cost is always in mind. API costs are estimated up front. Everything that can run locally does, the Control, the voice description, all of it. Only the models reach out to the chosen provider and model. Cost balloons fast with AI agents, so keeping it low is built in.

  6. Models are swappable. A chat can start with one model and switch to another anytime, no starting over. Run low on tokens or credits and swap. Do the hard work with a stronger model, then let a cheaper one finish up, write the recommendations, or handle the rest.

  7. Secure by default, closed by default. Tailscale is used to keep the agent reachable only by the devices on the tailnet. Connect from a laptop, a phone, anything running Tailscale, without opening a single port to the public internet.

  8. Flexible. Support for many providers: OpenRouter, OpenAI, xAI, Gemini. Own API keys are welcome, so there is no lock-in. It works with everything and the setup can be changed and optimized over time.

Security is intentional. This is a no-approval, full-permission agent, so it binds to the Tailscale interface and requires both tailnet access and a paired session. Nothing about it is meant to be reachable by strangers.

A placeholder for the featured image.

Updates

Newest on top. Each entry is a date and a short note on what changed, so this stays current as the project moves.