Skip to content

Web Dashboard

opencodex ships a local web dashboard (a Vite/React app under gui/) served from the proxy. It’s the easiest way to add providers, log in with OAuth, choose subagent models, and watch traffic.

Terminal window
ocx gui

This opens http://localhost:<port> in your browser (auto-starting the proxy first if needed). In development you can run the GUI dev server separately against a running proxy:

Terminal window
ocx start
cd gui && bun dev
AreaWhat it does
StatusLive proxy state, port, uptime, and PID.
ProvidersAdd, edit, enable/disable, and remove providers.
Add providerA searchable picker of presets — OAuth login (xAI / Anthropic / Kimi), ChatGPT forward, the API-key catalog (incl. Ollama Cloud), local servers, and Custom.
OAuth loginOpens the provider’s auth page and polls until the token lands; or imports an existing local CLI/keychain token.
Subagent modelsPick the ≤5 routed models Codex’s spawn_agent advertises.
ModelsEnable/disable individual routed models (hidden ones are excluded from the catalog and /v1/models).
Request logAuto-refreshing view of recent requests (model, provider, status).
StopA sidebar button that gracefully shuts down the proxy, stops the background service if installed, and restores native Codex — all in one click (POST /api/stop).

The GUI is a thin client over the proxy’s management API. Useful endpoints (all JSON):

EndpointPurpose
GET /api/providersList configured providers.
POST /api/providersAdd or overwrite a provider (catalog entries are enriched with their model classification automatically).
DELETE /api/providers?name=…Remove a provider.
GET /api/key-providersThe API-key catalog (incl. Ollama Cloud).
GET /api/oauth/providersWhich providers support OAuth login.
POST /api/oauth/login · GET /api/oauth/statusStart an OAuth flow and poll for completion.
GET / PUT /api/subagent-modelsRead / set the featured subagent models.
POST /api/stopGracefully stop the proxy (and the background service if installed), restore native Codex, then exit.