I wanted the ability to prompt AI tools from my phone while still working against a real local development environment. Not a cloud sandbox. Not a web IDE. My actual machine, files, repos, and CLIs.
Why This Setup Exists
The goal was simple: phone becomes the prompt interface, local machine does the execution. This lets me use tools like Claude, Codex, or OpenCode from anywhere while still running code locally.
Hardware Setup
I started with a small dedicated machine to act as a remote dev box. I picked up a Mini PC from Amazon for a few key reasons:
- Always on: No need to wake my primary laptop
- Low power: Runs 24/7 without killing my electric bill
- No risk to primary laptop: If something goes wrong, my main work machine stays clean
- Acts like a personal cloud: But stays in my house
Operating System
The device shipped with Windows. I wiped it completely:
# Removed Windows
# Installed Ubuntu Server
# Configured automatic security updates
Ubuntu was chosen because it's stable, lightweight, and works cleanly with SSH, Docker, and developer tooling.
Secure Access with SSH
This is the foundation of everything:
# Generated an SSH key pair
ssh-keygen -t ed25519 -C "phone-access"
# Installed the public key on the Ubuntu machine
ssh-copy-id user@machine-ip
# Disabled password-based SSH login
# Edit /etc/ssh/sshd_config: PasswordAuthentication no
# Confirmed key-only authentication works
At this point, the machine is only accessible via SSH keys.
Phone as the Control Plane
To connect from my phone, I installed Termius. The setup was straightforward:
- Installed Termius on my phone
- Added a host entry pointing to my home IP
- Configured SSH to use a custom port
- Imported the same SSH private key into Termius
Once connected, my phone effectively becomes a terminal into my local machine.
Networking Configuration
Since this machine lives behind my home network, port forwarding was required:
- Accessed router administration interface
- Located port forwarding settings
- Configured port forwarding rules
- Mapped an external custom port to internal port 22
- Restricted forwarding to TCP only
Using a non-standard external port reduces noise from random scans.
How AI Fits In
Once connected via SSH, everything else is just tooling. From the terminal session I can:
- Run local code
- Edit files
- Invoke CLIs
- Trigger AI-assisted workflows
The prompting itself happens in tools like Claude, Codex, or OpenCode. The phone is used to write prompts and issue commands, the local machine executes them against real files and repos. This avoids the limitations of browser-only AI environments.
Commonly Missed or Implied Steps
These are easy to forget but matter:
Security Hardening
- Disable root SSH login
- Install fail2ban or equivalent
- Limit SSH users to specific accounts
Convenience
- Set up SSH config aliases
- Install tmux or screen for session persistence
- Configure shell history and dotfiles
AI Tooling
- Install required CLIs on the Ubuntu box
- Ensure API keys are stored securely
- Avoid embedding secrets directly in prompts
Reliability
- Enable automatic reboots for kernel updates
- Configure the machine to auto-start on power loss
Why This Works Well
This setup gives you:
- True local execution: No sandbox limitations
- Mobile-first prompting: Write prompts from anywhere
- No vendor lock-in: Use any AI tools you want
- No cloud IDE constraints: Full control over your environment
It feels like carrying your dev environment in your pocket, without actually doing the work on your phone.