typeduck-codex-web
typeduck-codex-web is a standalone Codex runtime with a browser interface. It
includes the app server, so it does not require another codex executable.
Install
cargo install typeduck-codex-web
Start the user daemon and open its project dashboard:
typeduck-codex-web
The dashboard discovers recent projects and sessions from your Codex history. Use the directory picker to start work anywhere the daemon account can access, or open a specific directory directly:
typeduck-codex-web -C /path/to/project
Recent sessions are grouped by activity time. Inside a conversation, use Goal to manage its persisted objective, lifecycle status, token budget, and usage. The Settings dialog is available from both the dashboard and conversation header for theme selection, MCP authentication, active-account sign-in, and ordered account profile management.
On startup the command prints a private bootstrap URL. Opening it establishes an
HTTP-only browser session scoped to an unguessable server path; the persistent
secret remains in CODEX_HOME. Use --reset-token to revoke existing browser
sessions.
Run typeduck-codex-web --help for port, browser, working-directory, and
configuration options.
Accounts and proxies
Create $CODEX_HOME/typeduck-codex-web/daemon.toml to configure accounts in
fallback order. Each account uses its own Codex home, so credentials stay
isolated. At startup the daemon selects the first signed-in account whose
reported rate limit is still available.
= 36915
= "http://127.0.0.1:36915/oauth/callback"
[[]]
= "primary"
= "Work"
= "/home/me/.codex-work"
= "http://127.0.0.1:8080"
[[]]
= "backup"
= "Personal"
= "/home/me/.codex-personal"
= true
[]
= "me@bastion.example.com"
= "/home/me/.ssh/id_ed25519"
= 22
# local_port = 1080 # omit to choose an available loopback port
Proxy URLs may use http, https, socks5, or socks5h. The daemon applies
the selected account's proxy to Codex-owned OpenAI HTTP and WebSocket clients.
For use_ssh_tunnel, it owns an OpenSSH ssh -N -D child process and stops it
with the daemon. The SSH feature therefore requires ssh on PATH; the Codex
runtime itself remains embedded in the installed binary.
Use --daemon-config /path/to/daemon.toml to load another file.
The optional port and mcp_oauth_callback_url values keep MCP OAuth redirect
URLs stable across daemon restarts. CLI --port takes precedence when nonzero.
Profile additions, removals, and fallback-order changes made in Settings are
written to this file and apply when the daemon next starts.