Picture this: You’re sitting on a commute, chilling in a cafe, or waiting for an appointment when a great software idea strikes. You want to test an API, scaffold a frontend, or experiment with a script right now.
Normally, the instinct is: "I have to wait until I get back to my desk."
Not anymore.
I set this entire workflow up directly on my Samsung Galaxy S24 with zero issues, running terminal commands and generating code right on the phone. With modern processing power right in our pockets, running lightweight Linux environments alongside autonomous AI agents like OpenCode and high-reasoning models like 0x Alpha(GLM 5.3 flash) is not just possible—it's smooth and practical.
In this guide, I’ll walk you through turning your Android smartphone into a complete, portable AI development workstation—with no laptop required.
How the Stack Works (In Plain English)
Before typing commands, here is how the setup communicates:
+-------------------------------------------------------------+
| Android Smartphone |
| |
| [Termux] --> Linux-like command prompt for your phone |
| │ |
| [PRoot Ubuntu] --> Virtual Linux container that lets |
| │ Node.js run desktop-grade CLI tools |
| │ |
| [OpenCode AI] --> Autonomous coding agent that writes, |
| │ edits, and tests files in your terminal |
| │ |
| [0x Alpha Model] -> High-reasoning AI model powering |
| code generation |
+-------------------------------------------------------------+
Step 1: Get Your Terminal Ready
Installing Termux
Grab Termux onto your phone:
- You can install Termux straight from the Google Play Store (which worked without a hitch on my Galaxy S24).
- Note for other devices: If your phone's Play Store build ever encounters repository mirror errors during updates, you can grab the latest build from F-Droid or the Termux GitHub Releases.
Keep Background Tasks Running
To prevent Android from putting your AI processes to sleep when you switch apps:
- Swipe down your phone’s notification shade when Termux is open.
- Tap Acquire Wake Lock on the Termux persistent notification.
- In Android Settings → Apps → Termux → Battery, set it to Unrestricted so background scripts keep running seamlessly.
Step 2: 5-Minute Quickstart (Shell & Ubuntu Setup)
Open Termux on your phone and run these quick initial commands.
1. Update Core Repositories
Run this update command and press Enter to accept any default prompts:
pkg update && pkg upgrade -y
2. Enable Mobile Developer Keys (Essential Touch Upgrade!)
Default smartphone keyboards lack developer keys like ESC, TAB, {, }, |, and arrows.
Run this command to add an extra developer hotbar directly above your touch keyboard:
mkdir -p ~/.termux
cat << 'EOF' > ~/.termux/termux.properties
extra-keys = [ \
['ESC', 'TAB', 'CTRL', 'ALT', '-', '_', '=', '+'], \
['~', '`', '|', '/', '{', '}', '[', ']'], \
['BACKSLASH', 'QUOTE', 'APOSTROPHE', 'SEMICOLON', 'LEFT', 'DOWN', 'UP', 'RIGHT'] \
]
EOF
termux-reload-settings

Figure 1: Dedicated hotbar featuring ESC, TAB, symbols, and arrows.
3. Install PRoot Ubuntu (Real Linux Container)
OpenCode is designed for full Linux distributions rather than bare Android. We install proot-distro to spin up a clean Ubuntu container:
pkg install -y git curl nano proot-distro
proot-distro install ubuntu
proot-distro login ubuntu
Once installed, your prompt changes from ~ $ to:
root@localhost:~#
You are now inside a clean, standard Linux environment on your phone!
Step 3: Installing Node.js & OpenCode
Inside your Ubuntu prompt, install the runtime and the OpenCode agent:
# 1. Update Ubuntu packages
apt update && apt upgrade -y
# 2. Install essential build tools
apt install -y curl git nano build-essential
# 3. Install Node.js 20 LTS
curl -fsSL [https://deb.nodesource.com/setup_20.x](https://deb.nodesource.com/setup_20.x) | bash -
apt install -y nodejs
# 4. Install OpenCode globally
npm install -g opencode-ai
Verify your installation:
opencode --version
If it prints out a version number, your setup is complete!
Step 4: Configuring OpenCode & 0x Alpha
Create a dedicated workspace folder and fire up OpenCode:
mkdir -p ~/workspace/my-project
cd ~/workspace/my-project
opencode

Figure 2: OpenCode running smoothly right inside the terminal.
Interactive Model Setup
You don’t need to fiddle with manual JSON files or copy-paste complicated configurations. Use OpenCode’s built-in interactive commands:
- Type
/connectinside the OpenCode prompt to authenticate or link your provider. - Type
/modelsand select 0x Alpha Free (Unlimited) as your active reasoning engine.
You now have an autonomous coding partner ready to build whatever you ask for!
Step 5: Building Projects on Your Phone
How does mobile AI development work in practice? You have two convenient workflows:
Workflow A: Autonomous Terminal Coding
Talk to OpenCode directly in natural language:
Example Prompt: "Build a simple Express.js REST API with CRUD endpoints for personal notes. Include sample tests using curl."
OpenCode will generate package.json, create code files, inspect errors, and run tests.
When it creates executable shell scripts:
chmod +x start.sh
./start.sh
Workflow B: The Mobile Web Browser Studio
If you prefer a visual web interface over terminal text, OpenCode includes a built-in browser UI:
Run this command inside Ubuntu:
opencode web --port 3000 --hostname 127.0.0.1
Now open Chrome, Samsung Internet, or Brave on your phone and browse to:
http://localhost:3000

Figure 3: Clean, touch-friendly OpenCode browser interface on mobile.
Step 6: Common Pitfalls & Real Errors I Faced
Here are the specific errors I encountered during my first setup so you can avoid them:
1. The EBADPLATFORM Error
-
What happened: Trying to run
npm install -g opencode-aidirectly in native Termux failed because npm detected the OS as Android (os: android, cpu: arm64).
-
The fix: Always log into your Ubuntu container (
proot-distro login ubuntu) before installing OpenCode. Inside Ubuntu, npm sees standard desktop Linux (linux-arm64), which works perfectly.
2. Nested Shell Crashes
-
What happened: Running
proot-distro login ubuntuwhile already inside Ubuntu caused an execution error:
proot error: execve("/usr/bin/bash"): No such file or directory
fatal error: see proot --help
-
The fix: Pay attention to your prompt prefix:
-
~ $= You are on Android. Runproot-distro login ubuntuto enter Linux. -
root@localhost:~#= You are already inside Ubuntu. Just code! - Type
exitanytime you want to go back to Android.
-
3. Overcomplicating JSON Files
-
What happened: Trying to manually create
~/.config/opencode/opencode.jsonfiles with raw API keys resulted in typos and syntax issues.
-
The fix: Let OpenCode do the work for you using
/connectand/models.
4. Termux Opening in the Wrong Directory
If your Termux session starts in Downloads rather than your home directory, run:
echo "cd /data/data/com.termux/files/home" >> ~/.bashrc
source ~/.bashrc
Step 7: Pro-Tip for Mobile Productivity!
Quick Session Resumption: Whenever you reopen Termux, jump right back in:
proot-distro login ubuntu
cd ~/workspace/my-project
opencode
Conclusion: Your Pocket Computer
Carrying a heavy laptop everywhere is no longer a prerequisite for writing code and testing ideas. With modern phone hardware, Linux containers, and autonomous agents like OpenCode powered by 0x Alpha(GLM 5.3 flash), you have an intelligent development environment wherever you go.
🗣️ Over to You!
Have you tested running a terminal or coding on your smartphone?
What’s the first feature or tool you plan to build with OpenCode on the go?
Drop your thoughts, setup screenshots, or questions in the comments below!


Top comments (1)
The proot workaround for EBADPLATFORM is the detail most guides miss — npm's platform sniffing failing on
os: androidin native Termux bites everyone, and "install inside the Ubuntu container" is the actual fix, not--force. The nested-proot error section is honest too; that prompt-prefix confusion got me the first time I lived in a proot distro.Two additions from running agents on constrained hosts. First: put tmux inside the Ubuntu container and start opencode there. Android can still kill Termux even with the wake lock — battery optimization is a request, not a guarantee — and tmux means the agent run survives the session dying. Reconnect with
proot-distro login ubuntu && tmux attachand nothing is lost. Second: know the ceiling. proot traps syscalls with no hardware virtualization, so builds are noticeably slower than native, and sustained agent runs heat the phone fast — thermal throttling on an S24 will slow a long session more than the spec sheet suggests.For anything past a quick experiment I ended up with the split you'd expect from someone who runs a VPS fleet: phone as terminal, host elsewhere. SSH in from Termux and let the always-on machine run the agent. Your setup is the always-with-you entry point; the VPS is what survives a 40-minute refactor. Genuine question though: what does battery life look like on a full agent session? I switched patterns before ever measuring it properly.