Frontend + backend app to:
- start chat turns against Codex CLI, Claude Code CLI, and Gemini CLI,
- initiate provider-auth login/logout flows (OpenAI / Anthropic / Google),
- persist auth artifacts as encrypted local storage,
- normalize tool-call output into one UI structure.
npm install
npm run dev- Backend:
http://localhost:3001 - Frontend:
http://localhost:5173
- Backend request + adapter logs are printed in the terminal running
npm run dev:server. - Frontend action logs are shown in the in-app
Activitypanel. - Login/logout API responses include
detailswith command/stdout/stderr snippets. - Child CLI stdout/stderr is streamed live into backend logs with adapter prefixes.
Create .env in repo root:
PORT=3001
BRIDGE_ENCRYPTION_KEY=<32-byte-base64-or-64-char-hex>
# Optional:
# BRIDGE_STORE_PATH=./data/store.json
# GEMINI_OUTPUT_FORMAT=stream-jsoncodex: usescodex login --device-auth,codex logout,codex login status.claude: auth is interactive-only in this bridge (claudethen/loginor/logout).gemini:/authflow is CLI-driven and may require interactive confirmation depending on environment.
Frontend auth UX:
- If backend can extract an auth URL or device code from CLI output, UI shows an auth handoff panel.
- UI attempts to open auth URL in new tab and also shows a manual clickable link.
- While auth handoff is pending, UI polls
refreshevery 5s to pick up completed login. - For Claude specifically, CLI login is interactive; there is no guaranteed redirect back into this web UI.
If a CLI requires interactive TTY for login, use the CLI once locally to complete provider auth, then use this app for chat/session handling.
Long-running agent prompt-trail artifacts are provided under codex_prompts/.
- https://developers.openai.com/codex/auth/
- https://developers.openai.com/codex/cli/reference/
- https://developers.openai.com/codex/cli/non-interactive/
- https://code.claude.com/docs/en/quickstart
- https://code.claude.com/docs/en/credentials-management
- https://code.claude.com/docs/en/sdk
- https://google-gemini.github.io/gemini-cli/docs/get-started/authentication.html
- https://google-gemini.github.io/gemini-cli/docs/cli/commands.html
- https://github.com/google-gemini/gemini-cli