Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
242 commits
Select commit Hold shift + click to select a range
fccfb16
fix(gemini-cli): use backend project ID from onboarding response
kslamph Mar 24, 2026
91387ca
refactor(gemini-cli): simplify redundant if/else in project ID assign…
kslamph Mar 30, 2026
6431cec
fix(claude-auth): dedupe OAuth refresh and honor 429 backoff
codeg-old Apr 6, 2026
29e32aa
fix(executor): route Claude refresh through retry-aware auth
codeg-old Apr 6, 2026
a0fe273
fix(websocket): skip stale state merge after client-side compact
DragonFSKY Mar 22, 2026
d2d0e6f
fix(websocket): narrow compact replay detection
DragonFSKY Mar 23, 2026
4ca00f7
fix(websocket): gate compact replay by downstream support
DragonFSKY Mar 24, 2026
31934ae
feat(codex): enable image generation for all Codex upstream requests
MoYeRanqianzhi Apr 22, 2026
14d46a0
feat(antigravity): conductor-level credits fallback for Claude models
sususu98 Apr 23, 2026
4d6457e
feat: support extracting X-Amp-Thread-Id header as session id for ses…
XYenon Apr 23, 2026
4de5c29
fix(antigravity): remove credits fallback from CountTokens, fix gofmt
sususu98 Apr 23, 2026
8e49c79
fix: forward HTTP headers to executor Options so session affinity can…
XYenon Apr 23, 2026
e75daa2
fix(antigravity): respect pinned auth in credits fallback, release de…
sususu98 Apr 23, 2026
920b6ef
refactor(logging): strip unrelated deferred body changes, keep credit…
sususu98 Apr 23, 2026
f130846
fix(auth): break credits cold-start deadlock by keeping unknown-hint …
sususu98 Apr 23, 2026
8eb56e5
Merge pull request #2962 from MoYeRanqianzhi/feat/codex-image-generat…
luispater Apr 23, 2026
7ad1900
perf(antigravity): async credits hint refresh for warm tokens
sususu98 Apr 23, 2026
25137b1
feat(logging): add AI API path support for image routes
luispater Apr 23, 2026
12195a2
Merge pull request #2971 from sususu98/feat/antigravity-credits-fallback
sususu98 Apr 23, 2026
7d5f6d9
feat(models): add GPT-5.5 model entry to registry JSON
luispater Apr 23, 2026
736018a
Add GPT-5.5 Codex model support
ben-vargas Apr 23, 2026
1576d14
Merge pull request #2989 from ben-vargas/gpt-5-5-support
luispater Apr 23, 2026
7b89583
chore(models): remove GPT-5.5 model entry from registry JSON
luispater Apr 23, 2026
f1ba615
feat(codex): pass base model to enable conditional image_generation t…
luispater Apr 23, 2026
5f5d593
fix antigravity credits stream fallback
sususu98 Apr 24, 2026
36cc762
Merge pull request #3007 from sususu98/fix-antigravity-credits-stream…
sususu98 Apr 24, 2026
4056c25
fix(codex): classify known upstream failures
Matthias319 Apr 24, 2026
a7e92e2
feat(auth): disallow free-tier Codex auth during selection process
luispater Apr 24, 2026
faad8e3
Add CPA Usage Keeper to README ecosystem list
Willxup Apr 24, 2026
cf043f6
docs:Add CPA Usage Keeper to README ecosystem list
Willxup Apr 24, 2026
be0fe6f
Merge pull request #3022 from Willxup/main
luispater Apr 25, 2026
28d7827
feat(api): implement protocol multiplexer and Redis queue for usage i…
luispater Apr 25, 2026
2c626ef
feat(security): implement IP ban for repeated management key and Redi…
luispater Apr 25, 2026
ea670ef
feat(models): add Codex Auto Review model entry to registry JSON
luispater Apr 25, 2026
0a7c6b0
feat(api): enhance model assignment logic in image handlers
luispater Apr 25, 2026
e707cf7
fix(claude): only reverse-remap OAuth tool names that were forward-re…
edlsh Apr 18, 2026
03ea4e5
perf(claude): pre-allocate reverseMap capacity
edlsh Apr 18, 2026
fc1ddf3
fix(claude): centralize oauth tool-name transform flow
edlsh Apr 19, 2026
95318ad
fix(amp): preserve lowercase glob tool name
edlsh Apr 13, 2026
fd45dec
fix(openai): repair empty responses stream output
edlsh Apr 24, 2026
d36e70e
fix(openai): preserve unindexed response output items
edlsh Apr 25, 2026
80eb037
fix(openai): preserve multiline repaired SSE data
edlsh Apr 25, 2026
32ef158
fix(test): remove free tier from GPT-5.5 inclusion test
philipbankier Apr 26, 2026
3857305
feat(config): add support for disabling OpenAI compatibility providers
luispater Apr 26, 2026
c7b28ba
feat(executor): add support for Codex image generation tool usage tra…
luispater Apr 26, 2026
c5bea6f
Merge pull request #3020 from Matthias319/fix/codex-error-classification
luispater Apr 26, 2026
736ae61
Merge pull request #3051 from philipbankier/fix/gpt55-free-tier-test
luispater Apr 26, 2026
6fc2356
logging: mark antigravity credits requests
sususu98 Apr 26, 2026
a325533
Merge pull request #2972 from XYenon/feat/amp-thread-id
luispater Apr 26, 2026
04a336f
fix(usage_helpers): skip zero-token usage in additional model records
luispater Apr 27, 2026
01e16a8
feat(codex): handle thinking-signature conversion for reasoning content
luispater Apr 27, 2026
d85e13b
fix(codex): include `content` field in reasoning item initialization
luispater Apr 27, 2026
c523101
Preserve Codex reasoning signatures for Claude
sususu98 Apr 27, 2026
34027da
Merge pull request #3088 from sususu98/codex-claude-reasoning-signature
luispater Apr 27, 2026
3ac39dc
feat: support Codex/PI session headers for session affinity
XYenon Apr 27, 2026
a992dee
fix(antigravity): use real antigravity UA when polling credits balance
Xbang0222 Apr 28, 2026
9fb6a49
test(api): add validation for unsupported models in OpenAI image hand…
luispater Apr 28, 2026
b34f3be
Merge pull request #3114 from Xbang0222/fix/antigravity-credits-ua
sususu98 Apr 28, 2026
e78d45a
fix antigravity user agent handling
sususu98 Apr 24, 2026
0e12351
fix antigravity client agent headers
sususu98 Apr 24, 2026
c4965be
Merge pull request #3117 from sususu98/fix/restore-antigravity-ua-han…
sususu98 Apr 28, 2026
f95ab4c
Merge pull request #3089 from XYenon/feat/session-affinity
luispater Apr 28, 2026
2ea8f77
feat(models): add GPT-5.5 to the registry with support for advanced t…
luispater Apr 29, 2026
4982512
fix: parse gemini cli usage metadata variants
sususu98 Apr 29, 2026
1c0c426
fix: align claude codex translation
sususu98 Apr 29, 2026
0d107dd
fix: respect declared claude web search tool names
sususu98 Apr 29, 2026
2c1539e
Merge pull request #3133 from sususu98/optimize/claude-codex-translator
luispater Apr 29, 2026
b3b92f3
Merge pull request #3125 from sususu98/fix/gemini-cli-usage-metadata-…
luispater Apr 29, 2026
a1f0ed9
Merge pull request #3071 from sususu98/fix/antigravity-credits-log
luispater Apr 29, 2026
359ec30
chore(docs): remove LingtrueAPI sponsorship section from README files
luispater Apr 29, 2026
e3e60f9
feat: support disabling image generation globally
luispater Apr 29, 2026
4601841
feat: remove `tool_choice` for `image_generation` when disabled
luispater Apr 30, 2026
f56a19e
feat: add tri-state support for `disable-image-generation` configuration
luispater Apr 30, 2026
6ba7c81
feat: apply image_generation filtering before payload rules
luispater Apr 30, 2026
243c582
feat: add unit tests for OpenAI responses request conversion
Apr 30, 2026
05ecfb6
feat: add local Docker build script and update compose configuration
Apr 30, 2026
aa70d13
docs: add CodexCliPlus to README ecosystem list
C4AL Apr 30, 2026
8b286e8
Merge pull request #3163 from C4AL/docs/add-codexclipplus-ecosystem
luispater Apr 30, 2026
4035abc
refactor(logging): replace gin-specific context handling with generic…
luispater Apr 30, 2026
6187919
feat: add support for recent request tracking in auth records
luispater May 1, 2026
b0dc9df
feat: add API key usage endpoint with provider and key grouping
luispater May 1, 2026
e37f3be
chore: update .goreleaser.yml to include custom archive naming with a…
luispater May 1, 2026
8c2f1a8
feat: enhance API key usage grouping with base URL inclusion
luispater May 1, 2026
b8bba05
feat: add tracking for auth request success and failure counts
luispater May 1, 2026
18bb9c3
chore: remove usage tracking and logging functionality
luispater May 1, 2026
79579c3
docs: update README to consolidate and clarify CPA Usage Keeper details
luispater May 2, 2026
2efa56d
docs: add Playful Proxy API Panel
daishuge May 2, 2026
85124f0
Merge pull request #3194 from daishuge/codex/add-daishuge-cpa-port-20…
luispater May 2, 2026
56df368
feat: add configurable retention period for Redis usage queue
luispater May 2, 2026
101b59c
docs: update Subtitle Translator project description
VjayC May 3, 2026
593995a
Merge pull request #3197 from VjayC/dev
luispater May 3, 2026
5fc6f66
docs: add CLIProxy Pool Watch project
May 3, 2026
81db7fd
Add CLIProxyAPI Usage Dashboard to statistics docs
May 3, 2026
7972130
Update README_CN.md
zhanglunet May 3, 2026
d2386a3
Update README_JA.md
zhanglunet May 3, 2026
054d0de
Merge pull request #3201 from murasame612/docs/add-cliproxy-pool-watch
luispater May 3, 2026
756b600
Merge pull request #3204 from zhanglunet/add-usage-dashboard-link
luispater May 3, 2026
af65908
feat: enhance tool mapping with namespace and web search support
luispater May 3, 2026
672fdd1
feat: filter and drop empty assistant messages in Kimi executor
luispater May 3, 2026
bf0e5c2
fix: prevent goroutine leaks in streaming executors via context-aware…
1137043480 May 3, 2026
2753d9f
feat: add validation for Claude streaming responses
luispater May 3, 2026
82ebe24
Merge pull request #2266 from DragonFSKY/fix/ws-compact-tool-output-m…
luispater May 3, 2026
a1487b0
fix(translator): handle non-string types in tools result processing
luispater May 3, 2026
8e6ef3f
fix(websocket): ensure state consistency on auth errors in streaming
luispater May 3, 2026
38dad2a
chore(docker): upgrade base image to alpine 3.23
luispater May 3, 2026
17be644
fix(translator): improve tool response handling for non-string content
luispater May 3, 2026
c19ae1d
Align Codex websocket protocol semantics
kdcokenny May 3, 2026
08b0fe6
Fix Codex websocket retry metadata
kdcokenny May 4, 2026
6b4bc0a
Align Codex default identity and docs
kdcokenny May 4, 2026
a1eba11
Merge pull request #2416 from kslamph/fix/gemini-cli-projectid
luispater May 4, 2026
89d80bf
fix(executor): adjust ApplyThinking order and add payload override test
luispater May 4, 2026
85c0150
feat(translator): add token usage tracking and improve usage handling
luispater May 4, 2026
bf6fa40
fix(executor): strip Vertex OpenAI response tool call IDs for consist…
luispater May 4, 2026
c1caa45
fix(translator): handle empty tool function names in OpenAI Claude re…
luispater May 4, 2026
162897e
Merge remote-tracking branch 'origin/pr/3205' into dev
luispater May 4, 2026
ecf1c25
fix: preserve Antigravity cancellation errors
luispater May 4, 2026
8262a03
Merge PR #2568: fix Claude refresh backoff
luispater May 4, 2026
e4a93c0
fix(executor): enhance parsing of OpenAI stream data lines
luispater May 4, 2026
bdc4240
Merge pull request #2896 from edlsh/fix/oauth-tool-rename-per-request…
luispater May 4, 2026
28b4b19
Merge pull request #3208 from kdcokenny/codex-websocket-protocol-parity
luispater May 4, 2026
ba5d8ca
feat(usage): add support for requested model alias handling
luispater May 4, 2026
61b39d4
feat(management): add usage record retrieval endpoint
luispater May 4, 2026
da6c599
refactor(management): rename `GetUsage` to `GetUsageQueue` and update…
luispater May 4, 2026
99dfbae
fix(executor): ignore null OpenAI stream usage chunks
mochenya May 5, 2026
ed1458a
chore(docs): update sponsor details in README
luispater May 5, 2026
17a1f53
fix:openai 2 kimi error Continuous function_call
May 6, 2026
ad3f4f2
📝 docs(readme): add CPA-Manager usage statistics recommendation
seakee May 6, 2026
a09a16e
Merge branch 'router-for-me:main' into my-fix
AhDEV-free May 6, 2026
fb08b92
feat(executor): add upstream disconnect handling for Codex WebSocket …
luispater May 6, 2026
0117174
fix(amp): proxy thread actors route
edlsh May 6, 2026
a034cf8
Merge pull request #3247 from edlsh/fix/amp-thread-actors-route
luispater May 7, 2026
785b00c
Merge pull request #3237 from seakee/docs/add-cpa-manager-usage-stati…
luispater May 7, 2026
33130f1
fix: require antigravity project id
sususu98 May 7, 2026
809feb1
fix(antigravity): mask project_id in logs
sususu98 May 7, 2026
e50caba
chore: upgrade CLIProxyAPI dependency to v7 across the project
luispater May 8, 2026
c883114
fix responses websocket tool output context
codex May 8, 2026
4071fde
fix: apply default auth-dir when config value is empty
lihan3238 May 8, 2026
4cbe172
refactor: extract DefaultAuthDir constant per review feedback
lihan3238 May 8, 2026
1721994
feat(management): expose additional OAuth and configuration helpers
luispater May 8, 2026
c67096b
feat(server): add support for loading configuration from a remote hom…
luispater May 8, 2026
0f0fcd2
feat(config): add per-auth `disable_cooling` override support
luispater May 9, 2026
0dcb8bd
refactor(cliproxy): remove `ClaudeCodeSessionAffinity` support and si…
luispater May 9, 2026
09ac8a1
Merge pull request #3221 from mochenya/main
luispater May 9, 2026
68fddaa
Merge pull request #3292 from lihan3238/fix-3272
luispater May 9, 2026
c69ff49
feat(auth): add support for persisting `disabled` flag in token storage
luispater May 9, 2026
41f4ee7
feat(auth): enhance auth index generation with improved file path han…
luispater May 9, 2026
3cbd587
Merge pull request #3283 from wuchulonly/fix/responses-ws-tool-output…
luispater May 9, 2026
1abf862
feat(logging): add home request-log forwarding support
luispater May 9, 2026
66c3dae
feat(home): implement `count` for home auth dispatch requests and ena…
luispater May 9, 2026
67fb4eb
feat(auth): add `shouldReturnLastErrorOnPickFailure` helper and impro…
luispater May 9, 2026
a44e5eb
Merge branch 'v7' into dev
luispater May 9, 2026
28dfcae
fix(api): prevent idle TCP connections from blocking the accept loop
lihan3238 May 9, 2026
dc1cc7f
feat(auth): add websocket session reuse for home auths with caching s…
luispater May 10, 2026
8300ee8
feat(auth): enhance home auth session reuse with scoped caching and r…
luispater May 10, 2026
15ac7fb
refactor(auth): simplify home auth session management and remove ref …
luispater May 10, 2026
5e5b1bc
feat(config): add detailed logging for home config changes
luispater May 10, 2026
c5596e0
fix(api): clear sniff deadline before entering Redis handler
lihan3238 May 10, 2026
1fca942
Merge remote-tracking branch 'origin/pr/3239'
luispater May 10, 2026
041ccf0
Merge pull request #3303 from lihan3238/fix-3267
luispater May 11, 2026
bd8c05a
feat(usage): add support for detailed token breakdown in usage tracking
luispater May 12, 2026
5c3646d
fix(claude): preserve OAuth system context
burugo May 11, 2026
6bfcb0c
feat(auth): improve unauthorized error handling for refresh and auto-…
luispater May 12, 2026
bfdc0b3
fix: scope antigravity credits fallback gate
sususu98 May 13, 2026
bcbb949
feat(client): add cluster node failover and improve reconnection hand…
luispater May 13, 2026
437aa87
feat(api): add dynamic handler for Gemini models with home integration
luispater May 13, 2026
3a9fb37
fix(home): implement home dispatch headers and enhance Gemini model h…
luispater May 13, 2026
229d03a
feat(auth): add support for disabling auth via metadata
luispater May 14, 2026
1d529c3
feat(redis): implement Pub/Sub support for usage tracking
luispater May 15, 2026
9d01c80
feat(redis): implement Pub/Sub support for usage tracking
luispater May 15, 2026
30a8824
fix(gitstore): adjust garbage collection to run after push operation
luispater May 15, 2026
e7a1859
feat(api): add request body decoding with Content-Encoding support
luispater May 16, 2026
82c9e0d
feat(api, watcher): add zstd decoding for request logs and payload di…
luispater May 16, 2026
7a1a340
fix(home): use net.JoinHostPort for consistent host:port formatting
luispater May 16, 2026
48104ab
feat(home): implement home control plane integration with Redis and T…
hkfires May 16, 2026
644d5ea
feat(home): add support for disabling cluster discovery in Redis conf…
hkfires May 16, 2026
f4c6c41
Merge pull request #3430 from router-for-me/home
luispater May 16, 2026
c66fa37
feat(home): add cluster nodes payload parsing and Redis channel handling
luispater May 16, 2026
cd0cea3
refactor(server): consolidate `home_flag` logic into `main.go` for be…
luispater May 16, 2026
e4c9570
feat(auth): add OAuth2 support for xAI with PKCE and token persistence
luispater May 16, 2026
2ff9e33
feat(api, xai): integrate xAI Grok image models and extend API endpoi…
luispater May 16, 2026
53d1fd6
feat(api, xai): add xAI Grok video model support with API integration
luispater May 16, 2026
d606faa
fix: strip Claude Code attribution from non-Anthropic translations
madwiki May 16, 2026
088ab33
feat(api): add Codex client models support for OpenAI API
luispater May 16, 2026
ddd1053
feat(xai): normalize xAI input reasoning items and enhance test cases
luispater May 16, 2026
96754f5
refactor(api): move Codex client model handling to `registry` package
luispater May 16, 2026
8b3670b
feat(xai): support namespace tools and enhance tool normalization logic
luispater May 16, 2026
2607888
fix(xai): default missing function tool parameters
ben-vargas May 16, 2026
74cb53d
feat(xai): support namespace tools and enhance tool normalization logic
luispater May 17, 2026
4b13f9c
Merge pull request #3439 from ben-vargas/fix-grok-tool-params
luispater May 17, 2026
be841b8
log(registry): replace panic with warning on embedded model parse fai…
luispater May 17, 2026
26d13af
feat(runtime): enhance payload rule resolution with dynamic path support
luispater May 17, 2026
2007a89
feat(runtime): enhance payload rule resolution with dynamic path support
luispater May 17, 2026
9ef99aa
refactor(runtime): rename `FormProtocol` to `FromProtocol` across pay…
luispater May 17, 2026
605adaa
feat(api): add support for local management password validation and s…
luispater May 17, 2026
ed0ac68
feat(server): add HOME_ADDR and HOME_PASSWORD env var fallback for ho…
May 17, 2026
5f03965
refactor: move home env vars after godotenv and use lookupEnv helper
May 18, 2026
66c5d60
refactor(api): remove `newTestServerWithOptions` and spoofed IP rejec…
luispater May 18, 2026
64d233f
Merge pull request #3448 from LongDinhh/feat/home-env-vars
luispater May 18, 2026
1c2153a
fix(openai-claude): stabilize streaming tool_use blocks
May 18, 2026
4ad6ffe
Merge pull request #3438 from madwiki/fix/strip-claude-code-attribution
luispater May 18, 2026
2460205
Merge pull request #2926 from slicenferqin/fix-tool-use-name-loss-and…
luispater May 18, 2026
ec79951
fix(proxy): support HTTP CONNECT dialer
sususu98 May 18, 2026
8bc2eff
fix: shorten claude codex tool call ids
sususu98 May 18, 2026
2710f56
Merge pull request #3450 from sususu98/fix/http-connect-proxy-dialer
luispater May 18, 2026
cc0cb05
Merge pull request #3468 from sususu98/fix/claude-codex-call-id-length
luispater May 18, 2026
1583cb4
Cap Gemini max output tokens
sususu98 May 18, 2026
32a0d69
Fix Antigravity Gemini thought signatures
sususu98 May 18, 2026
77ba15f
feat(server): add mTLS certificate bootstrap via JWT for Home connect…
luispater May 18, 2026
ad98c95
feat(runtime): track upstream response headers in logging and usage r…
luispater May 18, 2026
bac006e
feat(thinking): add xAI provider support with reasoning.effort implem…
luispater May 18, 2026
6448235
Merge pull request #3469 from sususu98/fix/gemini-max-output-token-cap
sususu98 May 19, 2026
b67eb6f
Merge pull request #3470 from sususu98/fix/antigravity-gemini-thought…
sususu98 May 19, 2026
feebe6c
feat(api): add OpenAI compatibility for image models
luispater May 19, 2026
bbe30f5
feat(server): enhance Home certificate handling with CA fingerprint v…
luispater May 19, 2026
ad86830
fix codex context length stream errors
sususu98 May 19, 2026
67f2251
style(docs): improve sponsor section clarity in README files
luispater May 19, 2026
7efc162
feat(docker): add cluster-specific docker-compose configuration for C…
hkfires May 19, 2026
bb5ac40
feat(client): add timeout handling for Redis operations and subscript…
luispater May 19, 2026
7f68fa2
Add Codex Switch tool to README
9ycrooked May 19, 2026
5ef7693
Update README.md
9ycrooked May 19, 2026
0de0ad0
Add reasoning effort to usage events
yavon007 May 19, 2026
b9589e8
Merge pull request #3482 from 9ycrooked/patch-1
luispater May 19, 2026
99fa530
test: remove unused Redis protocol tests and helpers
luispater May 19, 2026
ea25949
feat(models): add Gemini 3.5 Flash models to registry
luispater May 19, 2026
de03949
feat(models): expand supported reasoning levels for Codex
luispater May 19, 2026
fdffe49
feat(models): register Gemini 3.5 Flash with dynamic thinking levels
luispater May 20, 2026
0ec07e5
feat(models): add Gemini 3.5 Flash to registry with enhanced thinking…
luispater May 20, 2026
1c632d1
fix(translator): skip empty text parts in Claude request conversion
luispater May 20, 2026
f1ee883
Merge pull request #3484 from yavon007/main
luispater May 20, 2026
a726e37
feat(redis): enhance Redis protocol handling with subscription and qu…
luispater May 20, 2026
42e9605
Merge pull request #3254 from sususu98/fix/antigravity-project-id-onb…
luispater May 20, 2026
8b9ecff
Merge pull request #3382 from sususu98/dev
luispater May 20, 2026
48a1c88
Merge pull request #3476 from sususu98/fix/codex-context-length-strea…
luispater May 20, 2026
21fad9d
Merge pull request #3477 from router-for-me/cluster
luispater May 20, 2026
3c62a9a
fix(auth): update import paths to v7 for registry and executor
hkfires May 21, 2026
cecd393
Merge pull request #3498 from router-for-me/test
luispater May 21, 2026
33f4904
fix(translator): handle system role as developer in Claude request co…
luispater May 22, 2026
aaec919
feat(models): add Grok Build 0.1 to registry
luispater May 23, 2026
50d19e2
docs(readme): add APIKEY.FUN sponsorship details to README files
luispater May 23, 2026
2acc570
Merge upstream/main into sync-upstream-20260525
BotHank-309 May 25, 2026
04c6b82
feat(usage): restore in-memory usage stats with Redis-backed persistence
HeimaoLST May 25, 2026
06a4283
fix(api): model-group routing + expose group names in /v1/models
HeimaoLST May 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .env.cluster.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Cluster JWT example.
# After deploying https://github.com/router-for-me/CLIProxyAPIHome, get the JWT value with:
# curl -sS -X POST "http://<home-host>:8327/v0/management/certificates/clients" -H "X-MANAGEMENT-KEY: <management-key>" | jq -r '.home_jwt'
# Then paste it into HOME_JWT here or export it before starting Compose.
HOME_JWT=your-home-jwt-here
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,4 @@ _bmad-output/*
# macOS
.DS_Store
._*
.gocache/
2 changes: 2 additions & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ builds:
archives:
- id: "cli-proxy-api"
format: tar.gz
name_template: >-
{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{- if eq .Arch "arm64" -}}aarch64{{- else -}}{{ .Arch }}{{- end -}}
format_overrides:
- goos: windows
format: zip
Expand Down
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
-X 'main.BuildDate=${BUILD_DATE}'" \
-o ./CLIProxyAPI ./cmd/server/

FROM alpine:3.22.0
FROM alpine:3.23

RUN apk add --no-cache tzdata ca-certificates

Expand Down Expand Up @@ -49,4 +49,4 @@ ENV MANAGEMENT_STATIC_PATH=/CLIProxyAPI/panel/management.html

RUN cp /usr/share/zoneinfo/${TZ} /etc/localtime && echo "${TZ}" > /etc/timezone

ENTRYPOINT ["./docker-entrypoint.sh"]
ENTRYPOINT ["./docker-entrypoint.sh"]
74 changes: 50 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,27 @@

English | [中文](README_CN.md) | [日本語](README_JA.md)

A proxy server that provides OpenAI/Gemini/Claude/Codex compatible API interfaces for CLI.
A proxy server that provides OpenAI/Gemini/Claude/Codex/Grok compatible API interfaces for CLI.

It now also supports OpenAI Codex (GPT models) and Claude Code via OAuth.

So you can use local or multi-account CLI access with OpenAI(include Responses)/Gemini/Claude-compatible clients and SDKs.

## Sponsor

[![z.ai](https://assets.router-for.me/english-5-0.jpg)](https://z.ai/subscribe?ic=8JVLJQFSKB)
[![https://www.packyapi.com/register?aff=cliproxyapi](./assets/packycode-en.png)](https://www.packyapi.com/register?aff=cliproxyapi)

This project is sponsored by Z.ai, supporting us with their GLM CODING PLAN.
Thanks to PackyCode for sponsoring this project!

GLM CODING PLAN is a subscription service designed for AI coding, starting at just $10/month. It provides access to their flagship GLM-4.7 & (GLM-5 Only Available for Pro Users)model across 10+ popular AI coding tools (Claude Code, Cline, Roo Code, etc.), offering developers top-tier, fast, and stable coding experiences.
PackyCode is a reliable and efficient API relay service provider, offering relay services for Claude Code, Codex, Gemini, and more.

Get 10% OFF GLM CODING PLAN:https://z.ai/subscribe?ic=8JVLJQFSKB
PackyCode provides special discounts for our software users: register using <a href="https://www.packyapi.com/register?aff=cliproxyapi">this link</a> and enter the "cliproxyapi" promo code during recharge to get 10% off.

---

<table>
<tbody>
<tr>
<td width="180"><a href="https://www.packyapi.com/register?aff=cliproxyapi"><img src="./assets/packycode.png" alt="PackyCode" width="150"></a></td>
<td>Thanks to PackyCode for sponsoring this project! PackyCode is a reliable and efficient API relay service provider, offering relay services for Claude Code, Codex, Gemini, and more. PackyCode provides special discounts for our software users: register using <a href="https://www.packyapi.com/register?aff=cliproxyapi">this link</a> and enter the "cliproxyapi" promo code during recharge to get 10% off.</td>
</tr>
<tr>
<td width="180"><a href="https://www.aicodemirror.com/register?invitecode=TJNAIF"><img src="./assets/aicodemirror.png" alt="AICodeMirror" width="150"></a></td>
<td>Thanks to AICodeMirror for sponsoring this project! AICodeMirror provides official high-stability relay services for Claude Code / Codex / Gemini CLI, with enterprise-grade concurrency, fast invoicing, and 24/7 dedicated technical support. Claude Code / Codex / Gemini official channels at 38% / 2% / 9% of original price, with extra discounts on top-ups! AICodeMirror offers special benefits for CLIProxyAPI users: register via <a href="https://www.aicodemirror.com/register?invitecode=TJNAIF">this link</a> to enjoy 20% off your first top-up, and enterprise customers can get up to 25% off!</td>
</tr>
Expand All @@ -35,38 +31,36 @@ Get 10% OFF GLM CODING PLAN:https://z.ai/subscribe?ic=8JVLJQFSKB
<td>Huge thanks to BmoPlus for sponsoring this project! BmoPlus is a highly reliable AI account provider built strictly for heavy AI users and developers. They offer rock-solid, ready-to-use accounts and official top-up services for ChatGPT Plus / ChatGPT Pro (Full Warranty) / Claude Pro / Super Grok / Gemini Pro. By registering and ordering through <a href="https://shop.bmoplus.com/?utm_source=github">BmoPlus - Premium AI Accounts & Top-ups</a>, users can unlock the mind-blowing rate of <b>10% of the official GPT subscription price (90% OFF)</b>!</td>
</tr>
<tr>
<td width="180"><a href="https://www.lingtrue.com/register"><img src="./assets/lingtrue.png" alt="LingtrueAPI" width="150"></a></td>
<td>Thanks to LingtrueAPI for its sponsorship of this project! LingtrueAPI is a global large - model API intermediary service platform that provides API calling services for various top - notch models such as Claude Code, Codex, and Gemini. It is committed to enabling users to connect to global AI capabilities at low cost and with high stability. LingtrueAPI offers special discounts to users of this software: register using <a href="https://www.lingtrue.com/register">this link</a>, and enter the promo code "LingtrueAPI" when making the first recharge to enjoy a 10% discount.</td>
</tr>
<tr>
<td width="180"><a href="https://poixe.com/i/m8kvep"><img src="./assets/poixeai.png" alt="PoixeAI" width="150"></a></td>
<td>Thanks to Poixe AI for sponsoring this project! Poixe AI provides reliable LLM API services. You can leverage the platform's API endpoints to seamlessly build AI-powered products. Additionally, you can become a vendor by providing AI API resources to the platform and earn revenue. Register through the exclusive CLIProxyAPI <a href="https://poixe.com/i/m8kvep">referral link</a> and receive a bonus of $5 USD on your first top-up.</td>
</tr>
<tr>
<td width="180"><a href="https://coder.visioncoder.cn"><img src="./assets/visioncoder.png" alt="VisionCoder" width="150"></a></td>
<td>Thanks to VisionCoder for supporting this project. <a href="https://coder.visioncoder.cn" target="_blank">VisionCoder Developer Platform</a> is a reliable and efficient API relay service provider, offering access to mainstream AI models such as Claude Code, Codex, and Gemini. It helps developers and teams integrate AI capabilities more easily and improve productivity.
<td>Thanks to <b>VisionCoder</b> for supporting this project. <a href="https://coder.visioncoder.cn" target="_blank">VisionCoder Developer Platform</a> is a reliable and efficient API relay service provider, offering access to mainstream AI models such as Claude Code, Codex, and Gemini. It helps developers and teams integrate AI capabilities more easily and improve productivity.
<p></p>
VisionCoder is also offering our users a limited-time <a href="https://coder.visioncoder.cn" target="_blank">Token Plan</a> promotion: buy 1 month and get 1 month free.</td>
VisionCoder is also offering our users a limited-time <a href="https://coder.visioncoder.cn" target="_blank">Token Plan</a> promotion: <b>buy 1 month and get 1 month free</b>.</td>
</tr>
<tr>
<td width="180"><a href="https://apikey.fun/register?aff=CLIProxyAPI"><img src="./assets/apikey.png" alt="APIKEY.FUN" width="150"></a></td>
<td>Thanks to APIKEY.FUN for sponsoring this project! APIKEY.FUN is a professional enterprise-grade AI relay platform dedicated to providing stable, efficient, and low-cost AI model API access for enterprises and individual developers. The platform supports popular mainstream models such as Claude, OpenAI, and Gemini, with prices as low as 7% of the official price. Register through this project's <a href="https://apikey.fun/register?aff=CLIProxyAPI">exclusive link</a> to enjoy a special <b>permanent 5% top-up discount</b>.</td>
</tr>
</tbody>
</table>

## Overview

- OpenAI/Gemini/Claude compatible API endpoints for CLI models
- OpenAI/Gemini/Claude/Grok compatible API endpoints for CLI models
- OpenAI Codex support (GPT models) via OAuth login
- Claude Code support via OAuth login
- Grok Build support via OAuth login
- Amp CLI and IDE extensions support with provider routing
- Streaming and non-streaming responses
- Streaming, non-streaming, and WebSocket responses where supported
- Function calling/tools support
- Multimodal input support (text and images)
- Multiple accounts with round-robin load balancing (Gemini, OpenAI, Claude)
- Simple CLI authentication flows (Gemini, OpenAI, Claude)
- Multiple accounts with round-robin load balancing (Gemini, OpenAI, Claude, Grok)
- Simple CLI authentication flows (Gemini, OpenAI, Claude, Grok)
- Generative Language API Key support
- AI Studio Build multi-account load balancing
- Gemini CLI multi-account load balancing
- Claude Code multi-account load balancing
- OpenAI Codex multi-account load balancing
- Grok Build multi-account load balancing
- OpenAI-compatible upstream providers via config (e.g., OpenRouter)
- Reusable Go SDK for embedding the proxy (see `docs/sdk-usage.md`)

Expand All @@ -78,6 +72,22 @@ CLIProxyAPI Guides: [https://help.router-for.me/](https://help.router-for.me/)

see [MANAGEMENT_API.md](https://help.router-for.me/management/api)

## Usage Statistics

Since v6.10.0, CLIProxyAPI and [CPAMC](https://github.com/router-for-me/Cli-Proxy-API-Management-Center) no longer ship built-in usage statistics. If you need usage statistics, use:

### [CPA Usage Keeper](https://github.com/Willxup/cpa-usage-keeper)

Standalone persistence and visualization service for CLIProxyAPI, with periodic data sync, SQLite storage, aggregate APIs, and a built-in dashboard for usage and statistics.

### [CLIProxyAPI Usage Dashboard](https://github.com/zhanglunet/cliproxyapi-usage-dashboard)

Local-first usage and quota dashboard for CLIProxyAPI. It collects per-request token usage from the Redis-compatible usage queue into SQLite, visualizes daily and recent-window usage by account and model, and shows Codex 5h/7d quota remaining in a local web UI.

### [CPA-Manager](https://github.com/seakee/CPA-Manager)

Full CLIProxyAPI management center with request-level monitoring and cost estimates. CPA-Manager tracks collected requests by account, model, channel, latency, status, and token usage; estimates cost with editable model prices and one-click LiteLLM price sync; persists events in SQLite; and provides Codex account-pool operations with batch inspection, quota detection, unhealthy account discovery, cleanup suggestions, and one-click execution for day-to-day multi-account maintenance.

## Amp CLI Support

CLIProxyAPI includes integrated support for [Amp CLI](https://ampcode.com) and Amp IDE extensions, enabling you to use your Google/ChatGPT/Claude OAuth subscriptions with Amp's coding tools:
Expand Down Expand Up @@ -126,7 +136,7 @@ Native macOS menu bar app to use your Claude Code & ChatGPT subscriptions with A

### [Subtitle Translator](https://github.com/VjayC/SRT-Subtitle-Translator-Validator)

Browser-based tool to translate SRT subtitles using your Gemini subscription via CLIProxyAPI with automatic validation/error correction - no API keys needed
A cross-platform desktop and web app to translate and validate SRT subtitles using your existing LLM subscriptions (Gemini, ChatGPT, Claude, etc.) via CLIProxyAPI - no API keys needed.

### [CCS (Claude Code Switch)](https://github.com/kaitranntt/ccs)

Expand Down Expand Up @@ -187,6 +197,14 @@ Cross-platform desktop app (macOS, Windows, Linux) wrapping CLIProxyAPI with a n

Ready-to-use cross-platform quota inspector for CLIProxyAPI, supporting per-account codex 5h/7d quota windows, plan-based sorting, status coloring, and multi-account summary analytics.

### [CodexCliPlus](https://github.com/C4AL/CodexCliPlus)

Windows-focused, local-first desktop management platform for Codex CLI built on CLIProxyAPI, focused on simplifying local setup, account and runtime management, and providing a more complete Codex CLI experience for local users.

### [CLIProxy Pool Watch](https://github.com/murasame612/CLIProxyPoolWidget)

Native macOS SwiftUI app for monitoring ChatGPT/Codex account quotas in CLIProxyAPI pools. Displays account availability, Plus-base capacity, 5-hour and weekly quota bars, plan weights, and restore forecasts through the Management API.

> [!NOTE]
> If you developed a project based on CLIProxyAPI, please open a PR to add it to this list.

Expand All @@ -204,6 +222,14 @@ Never stop coding. Smart routing to FREE & low-cost AI models with automatic fal

OmniRoute is an AI gateway for multi-provider LLMs: an OpenAI-compatible endpoint with smart routing, load balancing, retries, and fallbacks. Add policies, rate limits, caching, and observability for reliable, cost-aware inference.

### [Playful Proxy API Panel (PPAP)](https://github.com/daishuge/playful-proxy-api-panel)

A public CLIProxyAPI-compatible fork and bundled management panel. It keeps upstream-style usage while restoring built-in usage statistics, adding cache hit rate, first-byte latency, TPS tracking, and Docker-oriented self-hosted installation docs.

### [Codex Switch](https://github.com/9ycrooked/CodexSwitch)

This is a tool built with Tauri 2 + Vue 3 for managing multiple OpenAI Codex desktop accounts. Switch between saved ChatGPT/Codex certification profiles, check 5-hour and weekly quota usage in real time, verify token health, view active account details, and import or save auth.json files without manual copying.

> [!NOTE]
> If you have developed a port of CLIProxyAPI or a project inspired by it, please open a PR to add it to this list.

Expand Down
Loading
Loading