codexui-android
v0.1.82
Published
A lightweight web interface for Codex that runs on top of the Codex app-server, allowing remote access from any browser
Readme
🔥 codexapp
🚀 Run Codex App UI Anywhere: Linux, Windows, or Termux on Android 🚀
Codex UI in your browser. No drama. One command.
Yes, that is your Codex desktop app experience exposed over web UI. Yes, it runs cross-platform.
██████╗ ██████╗ ██████╗ ███████╗██╗ ██╗██╗ ██╗██╗
██╔════╝██╔═══██╗██╔══██╗██╔════╝╚██╗██╔╝██║ ██║██║
██║ ██║ ██║██║ ██║█████╗ ╚███╔╝ ██║ ██║██║
██║ ██║ ██║██║ ██║██╔══╝ ██╔██╗ ██║ ██║██║
╚██████╗╚██████╔╝██████╔╝███████╗██╔╝ ██╗╚██████╔╝██║
╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝🤯 What Is This?
codexapp is a lightweight bridge that gives you a browser-accessible UI for Codex app-server workflows.
You run one command. It starts a local web server. You open it from your machine, your LAN, or wherever your setup allows.
TL;DR 🧠: Codex app UI, unlocked for Linux, Windows, and Termux-powered Android setups.
⚡ Quick Start
The main event.
# 🔓 Run instantly (recommended)
npx codexapp
# 🌐 Then open in browser
# http://localhost:18923By default, codexapp now also starts:
cloudflared tunnel --url http://localhost:<port>It prints the tunnel URL, terminal QR code, and password together in startup output.
Use --no-tunnel to disable this behavior.
If you are using a provider or AI gateway that is already authenticated and do not want codexapp to force codex login during startup, use:
npx codexapp --no-loginLinux 🐧
node -v # should be 18+
npx codexappWindows 🪟 (PowerShell)
node -v # 18+
npx codexappTermux (Android) 🤖
pkg update && pkg upgrade -y
pkg install nodejs -y
npx codexappAndroid background requirements:
- Keep
codexapprunning in the current Termux session (do not close it). - In Android settings, disable battery optimization for
Termux. - Keep the persistent Termux notification enabled so Android is less likely to kill it.
- Optional but recommended in Termux:
termux-wake-lock- Open the shown URL in your Android browser. If the app is killed, return to Termux and run
npx codexappagain.
iPhone / iPad via Tailscale Serve
If you want to use codexUI from iPhone or iPad Safari, serving it over HTTPS is recommended.
A practical private setup is to run codexUI locally and publish it inside your tailnet with Tailscale Serve:
npx codexapp --no-tunnel --port 5900
tailscale serve --bg 5900Then open:
https://<your-machine>.<your-tailnet>.ts.netThis setup worked well in practice for:
- iPhone Safari access
- Add to Home Screen
- the built-in dictation / transcription feature in the app
- viewing the same projects and conversations from the Windows host
Notes:
- Tailscale Serve keeps access private to your tailnet
- on iOS, HTTPS / secure context appears to be important for mobile browser access and dictation
- some minor mobile Safari CSS issues may still exist, but they do not prevent normal use
- depending on proxying details, authentication behavior may differ from direct remote access
- if conversations created in the web UI do not immediately appear in the Windows app, restarting the Windows app may refresh them
✨ Features
The payload.
- 🚀 One-command launch with
npx codexapp - 🌍 Cross-platform support for Linux, Windows, and Termux on Android
- 🖥️ Browser-first Codex UI flow on
http://localhost:18923 - 🌐 LAN-friendly access from other devices on the same network
- 🧪 Remote/headless-friendly setup for server-based Codex usage
- 🔌 Works with reverse proxies and tunneling setups
- ⚡ No global install required for quick experimentation
- 🎙️ Built-in hold-to-dictate voice input with transcription to composer draft
- 🤖 Optional Telegram bot bridge: send messages to bot, forward into mapped thread, send assistant reply back to Telegram
Telegram Bot Bridge (Optional)
Set these environment variables before starting codexapp:
export TELEGRAM_BOT_TOKEN="<your-telegram-bot-token>"
export TELEGRAM_DEFAULT_CWD="$PWD" # optional, defaults to current working directory
npx codexappBot commands:
/newthreadcreate and map a new Codex thread for this Telegram chat/thread <threadId>map current Telegram chat to an existing thread- Any other text message is forwarded to the mapped thread
🧩 Recent Product Features (from main commits)
Not just launch. Actual UX upgrades.
- 🗂️ Searchable project picker in new-thread flow
- ➕ Inline "Add new project" input inside picker (no browser prompt)
- 📌 New projects get pinned to top automatically
- 🧠 Smart default new-project name suggestion via server-side free-directory scan (
New Project (N)) - 🔄 Project order persisted globally to workspace roots state
- 🧵 Optimistic in-progress threads preserved during refresh/poll cycles
- 📱 Mobile drawer sidebar in desktop layout (teleported overlay + swipe-friendly structure)
- 🎛️ Skills Hub mobile-friendly spacing/toolbar layout improvements
- 🪟 Skill detail modal tuned for mobile sheet-style behavior
- 🧪 Skills Hub event typing fix for
SkillCardselect emit compatibility - 🎙️ Voice dictation flow in composer (
hold to dictate-> transcribe -> append text)
🌍 What Can You Do With This?
| 🔥 Use Case | 💥 What You Get |
|---|---|
| 💻 Linux workstation | Run Codex UI in browser without depending on desktop shell |
| 🪟 Windows machine | Launch web UI and access from Chrome/Edge quickly |
| 📱 Termux on Android | Start service in Termux and control from mobile browser |
| 🧪 Remote dev box | Keep Codex process on server, view UI from client device |
| 🌐 LAN sharing | Open UI from another device on same network |
| 🧰 Headless workflows | Keep terminal + browser split for productivity |
| 🔌 Custom routing | Put behind reverse proxy/tunnel if needed |
| ⚡ Fast experiments | npx run without full global setup |
🖼️ Screenshots
Skills Hub

Chat

Mobile UI

🏗️ Architecture
┌─────────────────────────────┐
│ Browser (Desktop/Mobile) │
└──────────────┬──────────────┘
│ HTTP/WebSocket
┌──────────────▼──────────────┐
│ codexapp │
│ (Express + Vue UI bridge) │
└──────────────┬──────────────┘
│ RPC/Bridge calls
┌──────────────▼──────────────┐
│ Codex App Server │
└─────────────────────────────┘🎯 Requirements
- ✅ Node.js
18+ - ✅ Codex app-server environment available
- ✅ Browser access to host/port
- ✅ Microphone permission (only for voice dictation)
🐛 Troubleshooting
| ❌ Problem | ✅ Fix |
|---|---|
| Port already in use | Run on a free port or stop old process |
| npx fails | Update npm/node, then retry |
| Termux install fails | pkg update && pkg upgrade then reinstall nodejs |
| Can’t open from other device | Check firewall, bind address, and LAN routing |
🤝 Contributing
Issues and PRs are welcome.
Bring bug reports, platform notes, and setup improvements.
⭐ Star This Repo
If you believe Codex UI should be accessible from any machine, any OS, any screen, star this project and share it. ⭐
Forked from pavel-voronin/codex-web-local by Pavel Voronin.
