Why on God’s green earth would I code on my phone?
Because I can! There are plenty of times when I just get the itch to change something. My brain is chewing on an idea but I don’t have a computer handy. Maybe I’m out and about. Maybe I’ve got a dog in my lap. In those moments, my phone is almost always in my hand, and it’d be nice to knock out the small fixes instead of letting them pile up.
I have been leveraging Claude Code as my daily driver at work, so I am getting really used to doing text-based code creation and editing. Recently my friend @imjonezz
introduced me to Crush, which he uses with a self hosted Kimi2 model. I saw it and thought I could totally do that from my phone! Then I would have no excuse for not achieving my goal of green github activity boxes everyday.
So how did I do it? The phone is just my interface. The actual computer lives elsewhere—on a Raspberry Pi 4 compute module running Raspbian headless OS, and AI is doing the coding. Now, coding is as easy as texting or commenting on a one of my TikTok videos, all I need is an internet connection and ssh app so I can access the Pi from phone.
Now I have a 49 inch screen at the office for work, and . there’s a reason Software Engineers have a lot of screen real estate. We want to consider a lot of things at once. How does our code affect the system? How does it render? What are the cross package dependencies? What do the docs say? To be honest, a phone has a lack of screen real estate, but for the things I want to do when I am not sitting at a computer I don’t think it matters, like:
Splitting once function into many
Generating test
Documentation edits
Tiny bug fixes
They’re the things that annoy you just enough to block progress, but don’t justify hauling out a laptop or going up to my office. AI is perfect for that kind of work, and it makes sense that with a prompt entry point this work is now accessible from anywhere.
That’s where Crush TUI (Terminal User Interface) comes in. I can run it from my Pi, and use essentially any model to make these changes
How I Set It Up (Step by Step)
This setup only requires a Raspberry Pi, my terminal configs in my dotfiles, and a phone app that supports SSH. Here’s the walkthrough:
Prep the Raspberry Pi
Hardware: Raspberry Pi 4 Compute Module (4 GB RAM is plenty since it’s just making API calls).
OS: Raspbian headless OS (aka Raspberry Pi OS).
Install on both the Pi and your phone.
Tailscale creates a private mesh VPN, so I can securely connect to my Pi from anywhere.
Dotfiles Setup - I have a script for this here
Clone my .dotfiles repo.
I use oh-my-zsh for my shell environment.
Vim works fine on ARM64. Neovim does not, so I stuck with my old Vim config.
Install Crush TUI
Crush is an open-source terminal UI (written in Go, which makes it feel native and fast).
Configured with crush.md files that control prompts, connections, and tools.
Optional: Tools & MCPs
Crush supports adding Model Context Protocols (MCPs), like Claude Code does.
You can also wire up your favorite CLIs to run inside Crush.
Added my OpenAI and Anthropic keys, so I can switch between them on the fly.
Phone Setup
Installed Termius for SSH.
With Tailscale running, I just SSH into the Pi from my phone.
Launch Crush inside the terminal.
And that’s it. From my phone, I now have a prompt-based editor that can connect to any model and edit my code like I’m sending a text message.
Tip: this also works great for editing personal projects on a work computer while I wait for CICD, or while I am in a meeting.
What It’s Like Using This Setup
Here’s the real takeaway: navigating code on a phone is terrible. Trying to scroll around and hold the whole repo in your head doesn’t work. But prompt-based coding makes the phone a usable code editor.
With Crush, I don’t need to see every line of code. I just type:
“Refactor this function into two smaller ones.”
Or:
“Fix the typo in the docstring.”
And it happens.
The UI is a little flashy— but it’s still a terminal. The overhead is super low, and it makes editing code on a phone practical. When you’re mobile, friction matters. I don’t want it to be hard to get something done, and it needs to be done quickly. This setup clears friction. It’s really not for building big features, it’s for finally getting rid of the little annoyances that stall your projects. Those tiny tasks don’t require your full dev setup, and they definitely don’t require your laptop.
The only bottleneck, really, is the network. When 5G* is the limiting factor—not the Pi or the TUI—which is still a win in my book. I tried this once when I was out walking my dogs. I could ssh in, but the connection would keep dropping and I went in and out from 5G to LTE
So yes, you can code from your phone. I do, often. I am super excited about it, and I want to show it off to everyone. If you try it out let me know please! I want to know what you have done to improve on the setup. I hope to be spending more time coding than doom scrolling and I hope you do too.
*I would add one caveat. Token-based billing adds up fast. I have a model hosted on a separate machine that I access over API call (I’ve explained that setup before), which allows you to not spend $18 dollars on Claude Opus 4.1 during a 45-minute demo. I did that, and it was definitely not a good return on investment. I usually use Sonnet or Haiku when running Claude Code, so I don’t run up the bill as much. Crush also supports Ollama really well, so you can run it locally on a non-Pi mini PC.