proxy

NameLast commit messageLast commit date
.githubfix(release): rename `GOARCH` to `TARGET_GOARCH` in release workflow to resolve variable mismatch during FreeBSD builds3 months ago
assetsMerge PR #5502 feat/meta-provider into cpa/muse1 month ago
authsrebuild branch1 year ago
cmdBrand as proxy and add embedded account-pool dashboard1 month ago
docsfix(devin): use loopback callback endpoint for oauth redirect uri1 month ago
examplesfeat(pluginabi): support HTTP status code propagation in plugin error envelopes1 month ago
internalBrand as proxy and add embedded account-pool dashboard1 month ago
scriptsBrand as proxy and add embedded account-pool dashboard1 month ago
sdkfeat(config): add Meta OAuth aliasing and error rules support1 month ago
testfeat(codex): support model-level quota cooling1 month ago
.dockerignorechore(docker): simplify `.dockerignore` patterns by removing wildcard entries4 months ago
.env.cluster.examplefeat(docker): add cluster-specific docker-compose configuration for CLIProxyAPI5 months ago
.env.exampleAdd Object Storage1 year ago
.gitignoreBrand as proxy and add embedded account-pool dashboard1 month ago
AGENTS.mddocs: document timer granularity and sleep convention in AGENTS.md2 months ago
CLAUDE.mdfeat(api): add support for local management password validation and spoofed IP rejection5 months ago
config.example.yamlfeat(config): add Meta OAuth aliasing and error rules support1 month ago
docker-build.ps1rebuild branch1 year ago
docker-build.shchore: remove usage tracking and logging functionality6 months ago
docker-compose.cluster.ymlfeat(docker): add plugin volume mapping to docker-compose files3 months ago
docker-compose.ymlfeat(docker): add plugin volume mapping to docker-compose files3 months ago
Dockerfilechore(build): include `ca-certificates` in Docker image for improved HTTPS support5 months ago
go.modMerge pull request #5803 from anpicasso/feat/plugin-quota-summary1 month ago
go.sumfeat(discovery): add LAN gateway discovery1 month ago
LICENSEUpdate LICENSE to reflect extended copyright ownership1 year ago
README.mdBrand as proxy and add embedded account-pool dashboard1 month ago
README_CN.mddocs(readme): remove FastAIToken sponsor1 month ago
README_JA.mddocs(readme): remove FastAIToken sponsor1 month ago
README_UPSTREAM.mdBrand as proxy and add embedded account-pool dashboard1 month ago
README.md

proxy

A personal AI gateway with a dark account-pool dashboard. Based on CLIProxyAPI, with the original Go proxy engine and protocol compatibility.

Start locally

Requires Go 1.26+ and OpenSSL. From this repository:

./scripts/start.sh

On first start, the script generates a local-only config.yaml, a management key, and a client API key. Find the keys in .proxy-local-credentials (owner-readable and ignored by Git). Open http://127.0.0.1:8317/management.html, click Connect, and enter the management key. Subsequent starts preserve your configuration.

Import credential JSON through Manage, or use Provider sign-in to open the upstream OAuth panel. Your API base URL is http://127.0.0.1:8317/v1; use the client API key for API requests. Provider accounts are not preconfigured.

Dashboard

  • Overview: account pools, provider filters, search, reported allowance windows, reset times, and account status.
  • Manage: import credential JSON and enable or pause account routing.
  • Logs: filter the latest 300 server log lines.
  • Settings: change file logging, usage statistics, and routing strategy.
  • Advanced panel: OAuth sign-in, API keys, model aliases, and other upstream configuration at /management.html?panel=upstream&safe-mode=configure.

The dashboard is embedded in the Go binary. Upstream panel updates cannot overwrite it. Open internal/api/ui/management.html directly for an offline design preview, or append ?demo=1 to the server dashboard URL. Preview accounts are fictional and preview mode cannot mutate your server.

Quotas come from reported Codex/Claude headers or supported quota providers/probes. Missing quotas display “Not reported”; values may be stale until providers report new observations. Provider totals sum the preferred (weekly where available) allowance per enabled, reporting account; they are account percentages, not interchangeable token balances. Request totals are successful requests reported by the server, not active requests. Management keys stay in browser memory and clear on reload/disconnect.

Development

go build -o proxy ./cmd/server
node --test scripts/test-ui.mjs
go test ./internal/api ./internal/api/handlers/management ./internal/managementasset

Edit internal/api/ui/management.html and rebuild to update the bundled dashboard. The UI has no npm dependencies or external assets. Go module identifiers remain upstream-compatible so updates and SDK imports stay straightforward.

See upstream documentation for providers, CLI flags, Docker, and detailed configuration. The upstream MIT license and attribution are retained in LICENSE.