I Can't Write Code. But I Shipped a Native Android Terminal IDE with Claude Code + Codex Running Natively — No Termux Required.
Source: Dev.to
Overview
Since my last post, everything changed. The WebView terminal is gone and Termux is no longer required. Below is what shipped.
Architecture
Plan A (previous)
- WebView terminal via ttyd
- Required Termux
- TCP socket between terminal and app
- Crashed every time I switched apps
Plan B (current)
- Native PTY via JNI
forkpty– same process, zero IPC, zero TCP - No Termux needed
- Bundled tools inside the APK as
.sofiles:bash,Node.js,Python 3,git,curl,ripgrep,jq,tmux,vim,sqlite3 - Executed via
/system/bin/linker64to bypass SELinuxexecverestrictions on theapp_data_filecontext - As far as I know, this is the only React Native app that does this
Runtime
Both AI models run natively through Shelly’s managed runtime:
- Claude Code 2.1.121 (Opus 4.7, 1 M context) ✅
- Codex v0.124.0‑termux (GPT‑5.5) ✅
- Gemini CLI 0.39.1 ✅
The runtime hot‑swaps updates without needing an APK rebuild.
Features
-
Four live panes simultaneously
- Top‑left: Claude Code terminal
- Top‑right: Codex (GPT‑5.5)
- Bottom‑left: Cerebras AI pane with READING TERMINAL
- Bottom‑right: Browser pane with YouTube
-
Native terminal with inline command blocks
-
Multi‑pane layout (up to 4 live panes)
-
Cross‑pane intelligence – AI reads terminal output automatically
-
Multi‑agent routing: Claude, Gemini, Cerebras, Groq, Perplexity, Codex, local LLM via
llama.cpp -
File editing with per‑hunk
InlineDiffaccept/reject -
@teammulti‑model consensus -
SSH profiles
-
CRT mode (scanlines + phosphor green + vignette)
Setup & Limitations
- Claude Code first‑run OAuth requires credential transplant
- Ports monitor blocked by Android 10+ SELinux (bug #99)
- Test coverage is thin
Repository & Releases
- GitHub:
- APK: GitHub Releases page (linked from the repository)
License
GPLv3
Rough edges exist—that’s why the project is open source.