A single-file Web UI (React + TypeScript) for operating and troubleshooting the CLI Proxy API via its Management API (config, credentials, and logs).
Main Project: https://github.com/router-for-me/CLIProxyAPI
Example URL: https://remote.router-for.me/
Minimum Required Version: ≥ 7.1.0 (recommended latest)
Since version 6.0.19, the Web UI ships with the main program; access it via /management.html on the API port once the service is running.
Thanks to APIMart for sponsoring this project!
APIMart is a low-cost API platform for AI image & video generation — GPT-Image-2 from $0.006/image, 160+ images per dollar. One async API covers both image and video: submit a task, get an ID, fetch results via polling or callback. Batch tens of thousands of images without timeouts, switch models without changing code. Pay-as-you-go with no monthly fee — sign up here to get started.
/v0/management) to read/update config, upload credentials, and view logs.http://<host>:<api_port>/management.htmlThe address is auto-detected from the current page URL; manual override is supported.
bun install --frozen-lockfile
bun run dev
Open http://localhost:5173, then connect to your CLI Proxy API backend instance.
bun install --frozen-lockfile
bun run build
dist/index.html (all assets are inlined).management.html.bun run previewTip: opening dist/index.html via file:// may be blocked by browser CORS; serving it (preview/static server) is more reliable.
You can enter any of the following; the UI will normalize it:
localhost:8317http://192.168.1.10:8317https://example.com:8317http://example.com:8317/v0/management (also accepted; the suffix is removed internally)The management key is sent with every request as:
Authorization: Bearer <MANAGEMENT_KEY> (default)This is different from the proxy api-keys you manage inside the UI (those are for client requests to the proxy endpoints).
If you connect from a non-localhost browser, the server must allow remote management (e.g. allow-remote-management: true).
Check the CLI Proxy API server documentation/config comments for the full authentication rules, server-side limits, and edge cases.
config.yaml fields, basic settings, proxy api-keys, and source editing with YAML highlighting/search plus a save diff preview./v1/models, optional browser-side "chat/completions" test).* wildcards), configure OAuth model alias mappings./v1/models (grouped view). Requires at least one proxy API key to query models.Currently supports four languages:
The UI language is automatically detected from browser settings and can be manually switched from the login page or header language menu.
ES2020dist/index.html) with all assets inlined (via vite-plugin-singlefile).vX.Y.Z triggers .github/workflows/release.yml to publish dist/management.html.VERSION, git tag, or package.json fallback).localStorage using a lightweight obfuscation format (enc::v1::...) to avoid plaintext storage; treat it as sensitive.bun run dev # Vite dev server
bun run build # tsc + Vite build
bun run preview # serve dist locally
bun run test # Bun test suite
bun run lint # ESLint (fails on warnings)
bun run verify # test + lint + build
bun run format # Prettier
bun run type-check # tsc --noEmit
Issues and PRs are welcome. Please include:
bun run verify, plus bun run type-check when run separately)MIT
(top 30 of 33)
TypeScript
85.0%
SCSS
14.8%
A single-file Web UI (React + TypeScript) for operating and troubleshooting the CLI Proxy API via its Management API (config, credentials, and logs).
Main Project: https://github.com/router-for-me/CLIProxyAPI
Example URL: https://remote.router-for.me/
Minimum Required Version: ≥ 7.1.0 (recommended latest)
Since version 6.0.19, the Web UI ships with the main program; access it via /management.html on the API port once the service is running.
Thanks to APIMart for sponsoring this project!
APIMart is a low-cost API platform for AI image & video generation — GPT-Image-2 from $0.006/image, 160+ images per dollar. One async API covers both image and video: submit a task, get an ID, fetch results via polling or callback. Batch tens of thousands of images without timeouts, switch models without changing code. Pay-as-you-go with no monthly fee — sign up here to get started.
/v0/management) to read/update config, upload credentials, and view logs.http://<host>:<api_port>/management.htmlThe address is auto-detected from the current page URL; manual override is supported.
bun install --frozen-lockfile
bun run dev
Open http://localhost:5173, then connect to your CLI Proxy API backend instance.
bun install --frozen-lockfile
bun run build
dist/index.html (all assets are inlined).management.html.bun run previewTip: opening dist/index.html via file:// may be blocked by browser CORS; serving it (preview/static server) is more reliable.
You can enter any of the following; the UI will normalize it:
localhost:8317http://192.168.1.10:8317https://example.com:8317http://example.com:8317/v0/management (also accepted; the suffix is removed internally)The management key is sent with every request as:
Authorization: Bearer <MANAGEMENT_KEY> (default)This is different from the proxy api-keys you manage inside the UI (those are for client requests to the proxy endpoints).
If you connect from a non-localhost browser, the server must allow remote management (e.g. allow-remote-management: true).
Check the CLI Proxy API server documentation/config comments for the full authentication rules, server-side limits, and edge cases.
config.yaml fields, basic settings, proxy api-keys, and source editing with YAML highlighting/search plus a save diff preview./v1/models, optional browser-side "chat/completions" test).* wildcards), configure OAuth model alias mappings./v1/models (grouped view). Requires at least one proxy API key to query models.Currently supports four languages:
The UI language is automatically detected from browser settings and can be manually switched from the login page or header language menu.
ES2020dist/index.html) with all assets inlined (via vite-plugin-singlefile).vX.Y.Z triggers .github/workflows/release.yml to publish dist/management.html.VERSION, git tag, or package.json fallback).localStorage using a lightweight obfuscation format (enc::v1::...) to avoid plaintext storage; treat it as sensitive.bun run dev # Vite dev server
bun run build # tsc + Vite build
bun run preview # serve dist locally
bun run test # Bun test suite
bun run lint # ESLint (fails on warnings)
bun run verify # test + lint + build
bun run format # Prettier
bun run type-check # tsc --noEmit
Issues and PRs are welcome. Please include:
bun run verify, plus bun run type-check when run separately)MIT
(top 30 of 33)
TypeScript
85.0%
SCSS
14.8%