@nervmor/codexui
v1.0.17
Published
A lightweight web interface for Codex that runs on top of the Codex app-server, allowing remote access from any browser
Readme
🔥 @nervmor/codexui
🚀 Run @nervmor/codexui Anywhere: Linux, Windows, or Termux on Android 🚀
@nervmor/codexuiin your browser. No drama. One command.This project exposes your Codex app-server workflow through a browser UI, and it runs cross-platform.
██████╗ ██████╗ ██████╗ ███████╗██╗ ██╗██╗ ██╗██╗
██╔════╝██╔═══██╗██╔══██╗██╔════╝╚██╗██╔╝██║ ██║██║
██║ ██║ ██║██║ ██║█████╗ ╚███╔╝ ██║ ██║██║
██║ ██║ ██║██║ ██║██╔══╝ ██╔██╗ ██║ ██║██║
╚██████╗╚██████╔╝██████╔╝███████╗██╔╝ ██╗╚██████╔╝██║
╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝🤯 What Is This?
@nervmor/codexui 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 🧠: @nervmor/codexui gives you the Codex browser UI flow on Linux, Windows, and Termux-powered Android setups.
⚡ Quick Start
The main event.
# 🔓 Run instantly (recommended)
npx @nervmor/codexui
# 📦 Or install globally
npm install -g @nervmor/codexui
# 🌐 Then open in browser
# http://localhost:18923By default, @nervmor/codexui 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.
Linux 🐧
node -v # should be 18+
npx @nervmor/codexuiWindows 🪟 (PowerShell)
node -v # 18+
npx @nervmor/codexuiTermux (Android) 🤖
pkg update && pkg upgrade -y
pkg install nodejs -y
npx @nervmor/codexuiAndroid background requirements:
- Keep the
codexuisession running 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 @nervmor/codexuiagain.
✨ Features
The payload.
- 🚀 One-command launch with
npx @nervmor/codexui - 🌍 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
🧩 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 @nervmor/codexui 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
┌──────────────▼──────────────┐
│ codexui │
│ (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 @nervmor/codexui should be accessible from any machine, any OS, any screen, star this project and share it. ⭐
