Language: English | 简体中文
A lightweight web interface for Codex that replicates the desktop UI and runs on top of the Codex app-server. It exposes Codex through a web application, allowing you to access your local Codex instance remotely from any browser.
- Codex CLI installed and available in your
PATH
# Run directly with npx (no install required)
npx @leibnizhu/codex-web-local
# Or install globally
npm install -g @leibnizhu/codex-web-localUsage: codex-web-local [options]
Web interface for Codex app-server
Options:
-p, --port <port> port to listen on (default: "3000")
--host <host> host to bind (e.g. 127.0.0.1 / 0.0.0.0 / 100.x.x.x)
-d, --daemon run in background (daemon mode)
--password <pass> set a specific password
--no-password disable password protection
-V, --version output the version number
-h, --help display help for command
# Start with auto-generated password on default port 3000
codex-web-local
# Start on a custom port
codex-web-local --port 8080
# Start with a specific password
codex-web-local --password my-secret
# Start without password protection (use only on trusted networks)
codex-web-local --no-password
# Start in daemon mode (run in background)
codex-web-local --daemon
# Start with an explicit bind host (listen on all interfaces)
codex-web-local --host 0.0.0.0
# Tailscale setup in daemon mode (background)
codex-web-local --host "$(tailscale ip -4)" --port 3000 --daemon
# Show current CLI version
codex-web-local --version# Dev mode, expose to LAN
npm run dev -- --host 0.0.0.0
# Dev mode, bind to this machine's Tailscale IPv4
npm run dev -- --host "$(tailscale ip -4)"
# Dev mode in daemon (background)
npm run dev -- --host 0.0.0.0 --daemonWhen started with password protection (default), the server prints the password to the console. Open the URL in your browser, enter the password, and you're in. The CLI also checks npm for new versions automatically at startup (at most once every 12 hours).
- Composer status bar now shows:
- current git branch
- context window usage ring with detailed hover info
- remaining quota hover card
- Context hover card supports manual compaction via "Compact Now" (calls
thread/compact/start). - Thread list uses
nameas the primary title.previewis shown in tooltip, not inline on hover. - You can continue typing while the model is still responding. New sends are queued and auto-sent after the current turn finishes.
codex-web-local --daemonruns the CLI server in background and printsPID.npm run dev -- --daemonruns the Vite dev server in background and printsPID.- To stop a daemon process:
kill <PID>- Docs index: docs/README.md
- Contracts guide: docs/contracts/README.md
- Chinese app-server doc: docs/contracts/APP_SERVER_DOCUMENTATION.zh-CN.md
Issues and pull requests are welcome! If you have ideas, suggestions, or found a bug, please open an issue on the GitHub repository.