v7.3.4-muse.1
Linux release assets
CLIProxyAPI_<version>_linux_<arch>.tar.gzis the default Linux build. It supports dynamic library plugins and is built against a GLIBC 2.17 baseline.CLIProxyAPI_<version>_linux_<arch>_no-plugin.tar.gzis the portable Linux build for musl-based or older systems such as OpenWrt. It does not support dynamic library plugins.
FreeBSD release assets
CLIProxyAPI_<version>_freebsd_aarch64_no-plugin.tar.gzis the FreeBSD arm64 build. It is built without CGO and does not support dynamic library plugins.
Changelog
- first commit (827bd6e)
- Add SOCKS5 and HTTP/HTTPS proxy support (d292456)
- Refactor authentication and service initialization code (79acea5)
- Refactor user onboarding and token management (57ead9a)
- Refactor token management, client initialization, and project handling (582280f)
- Update model name to include release date in API handlers (8dd7f8e)
- Numerous Comments Added and Extensive Optimization Performed using Roo-Code with CLIProxyAPI itself. (5ec6450)
- Add archive configuration to
.goreleaser.yml(bf08646) - Refactor API request flow and streamline response handling (512f2d5)
- Refactor API handlers to streamline response handling (e73f165)
- Enhance quota management and refactor configuration handling (7cb76ae)
- Add support for Generative Language API Key and improve client initialization (589ae6d)
- Correct config in README.md (9be56fe)
- Merge pull request #1 from chaudhryfaisal/main (65f47c1)
- Add system instruction support and enhance internal API handlers (273e1d9)
- Updated README.md (d410421)
- Set the http request header and update client metadata handling (d880d1a)
- Refactor API handlers and proxy logic (ef68a97)
- Enhance response and request handling in translators (fa8d949)
- Add Gemini-compatible API and improve error handling (b3607d3)
- Add
FixCLIToolResponsefor enhanced function call-response mapping (aa9fd05) - Restrict CLI access to localhost and update README for Gemini compatibility (edeadfc)
- Add Claude compatibility and enhance API handling (3c0c61a)
- Add
ClaudeMessageshandler for SSE-compatible chat completions (c601542) - Add Docker support with CI/CD workflow and usage instructions (3687963)
- Refactor client handling and improve error responses (f49a530)
- Add Chinese README and update project files (c86545d)
- Enhance HTTP server with custom multiplexer in Auth flow (58b7afd)
- Improve error logging and add user guidance for issue reporting (ead71fb)
- Add
GeminiModelshandler and enhance API key validation (423faae) - Add
GeminiGetHandler, enhance Gemini functionality, and enable token counting (31a9e2d) - Fix
altparameter handling in URL construction (beff928) - Enhance Gemini request handling with fallback support for
contents(e64fa48) - Fix SSE headers initialization for
geminiStreamGenerateContentandinternalStreamGenerateContent(3b2ab0d) - Update example configuration file (
config.example.yaml) (0b02693) - Add
.gitignoreand ignoreconfig.yaml(5812229) - Update
.goreleaser.ymlto includeconfig.example.yamlinstead ofconfig.yamlin release assets (00bd6a3) - Improve
getClientlogic with optional content generation flag (3b4634e) - Add file watcher for dynamic configuration and client reloading (3c4dc07)
- Enhance Gemini request handling for
contentssupport and improve error logging (00f33f5) - Refactor API handlers organization and simplify error response handling (1483c31)
- Fix activation URL extraction logic and improve warning message formatting (ebcd4db)
- Update
.goreleaser.ymlto specify archive formats for different OS targets (d2394b0) - Add openai codex support (de7b850)
- Add support for Codex model in provider logic and update documentation for claude code (4155805)
- Add request logging capabilities to API handlers and update .gitignore (fcadf08)
- Refactor Gemini API handlers to standardize response field names and improve model descriptions (6bbdf67)
- Refactor error handling and variable declarations in browser and logging modules (c5cc238)
- Add claude code support (d58cc55)
- Add Qwen support (aa2f37d)
- Update README to reflect usage of Qwen models instead of Claude models (2b1762b)
- Refactor codebase (8c555c4)
- Refactor API handlers to implement retry mechanism with configurable limits and improved error handling (9102ff0)
- Add OpenAI compatibility support and improve resource cleanup (ed8873f)
- Improved the
/v1/modelsendpoint (dff31a7) - Add support for localhost unauthenticated requests (1c4183d)
- Suppress debug logs for model routing and ignore empty tools arrays (7a6adfa)
- Add
/v1/completionsendpoint with OpenAI compatibility (bea5f97) - Add nil-check for
GetRequestMutexacross handlers to prevent potential panics (3704dae) - Fix some bugs. (e9e0016)
- Unlock mutex before returning error in
handlers.goto prevent deadlocks (09b9d3b) - Update README documentation to clarify
auth-dirconfiguration for Windows users (c2b2c9e) - Update README documentation to clarify
auth-dirconfiguration for Windows users (f1d9364) - Update issue templates (1aad033)
- Add token refresh handling for 401 responses across clients (512c8b6)
- Set the default Docker timezone to Asia/Shanghai (3f78401)
- Add token refresh handling for 401 responses across clients (0331660)
- Merge pull request #16 from hkfires/main (ba4c114)
- Add support for new GPT-5 model variants (9c9ea99)
- Enhance client reload process with new OpenAI compatibility support (b125410)
- Add management API handlers for config and auth file management (db43930)
- Reorganize and reintroduce Management API section in README files (8a2285e)
- Add Gemini-to-Gemini request normalization and passthrough support (c0eaa41)
- Update Management API CN docs for authentication requirements (6d30faf)
- Update PassthroughGeminiResponseStream to handle
[DONE]marker (bdac24b) - Refactor translator packages for OpenAI Chat Completions (e3994ac)
- Refactor translator packages for OpenAI Chat Completions (1f46dc2)
- Refactor translator packages for OpenAI Chat Completions (305916f)
- Refactor translator packages for OpenAI Chat Completions (bff6f66)
- Refactor translator packages for OpenAI Chat Completions (e0bff9f)
- Refactor translator packages for OpenAI Chat Completions (e11637d)
- Handle
data:without trailing space in streaming responses (56c8297) - Fix model switch logic when quota is exceeded (34855bc)
- Add OpenAI Responses support (ce5d2ba)
- Add OpenAI Responses support (3acdec5)
- Merge branch 'main' of github.com:luispater/CLIProxyAPI (edf9d9b)
- Update README to rename
gpt-5-nanotogpt-5-minimalin usage examples (0652241) - Extract argument parsing logic into
parseArgsToMaphelper function (ae06f13) - Remove redundant
dataUglyTagparsing logic in streaming responses (b0f7273) - Add Codex load balancing documentation and refine JSON handling logic (67e0b71)
- Update README to include Codex support and multi-account load balancing details (30d5d87)
- Update README to include Codex support and multi-account load balancing details (36ee21e)
- Remove commented debug logging in
ConvertOpenAIResponsesRequestToGeminiCLI(b6f8677) - Add support for Codex API key authentication (c4a42eb)
- Update MANAGEMENT_API.md with expanded documentation for endpoints (caf386c)
- Enhance
parseArgsToMapwith tolerant JSON parsing (6d2f7e3) - feat(watcher): implement incremental client hot-reloading (f60ef0b)
- Refactor
cliCancelcalls to remove unusedrespargument across handlers. (70e9169) - Merge pull request router-for-me#23 from luispater/dev (7b9cfbc)
- Refactor client map construction to include all client types and enhance callback updates (7209fa2)
- Add reverse mappings for original tool names and improve error logging (ad943b2)
- Replace
pathwithfilepathfor cross-platform compatibility (d4709ff) - Add Docker Compose (9b627a9)
- Add reasoning/thinking configuration handling for Claude and OpenAI translators (f1d6f01)
- Update the README to include Docker Compose usage instructions (f38b78d)
- Add debounce logic for file events to prevent duplicate reloads (5ed79e5)
- Add Gemini 2.5 Flash-Lite Model (3e09bc9)
- Merge pull request router-for-me#26 from luispater/flash-lite (56a05d2)
- Add Codex API key support and Gemini 2.5 Flash-Lite model documentation updates (c62e45e)
- Add
FunctionCallIndextoConvertCliToOpenAIParamsand enhance tool call handling (54ffb52) - refactor(watcher): restructure client management and API key handling (0e0602c)
- fix(watcher): improve client reload logic and prevent redundant updates (57484b9)
- Merge pull request router-for-me#28 from luispater/bugfix (798f65b)
- fix(watcher): enhance API key client counting and logging (f97954c)
- feat(api): implement granular client type metrics in server updates (28218ec)
- Merge pull request router-for-me#29 from luispater/bugfix (4f18809)
- Add versioning support to build artifacts and log outputs (8d05489)
- Add versioning support to build artifacts and log outputs (b05d00e)
- Merge branch 'dev' (c52255e)
- feat(server): inject build metadata into application logs and container image (506e2e1)
- build(goreleaser): inject build metadata into binary during release (7b546ea)
- Update README (e074e95)
- Merge pull request router-for-me#31 from luispater/docker-build-sh (d10ef7b)
- Update workflows and build process for enhanced metadata injection (ef922b2)
- Add Telegram group link to Chinese README for user support (c263398)
- Add JSON annotations to configuration structs and new
/configmanagement endpoint (6164f5c) - Update README (1bb0d11)
- Modify docker compose for remote image and local build (47b5ebf)
- Refactor docker-compose config for simplicity and consistency (5aba4ca)
- Update README (2a2a276)
- Merge pull request router-for-me#33 from luispater/docker (1305f2f)
- Enhance README formatting and update .dockerignore (551bc1a)
- Update log level in OpenURL function from Debug to Info (46fa32f)
- Add dynamic log level adjustment and "type" field to auth files response (c875088)
- Add SSH tunnel guidance for login fallback (040d66f)
- Merge pull request router-for-me#36 from luispater/ssh-tunnel (179b8aa)
- Fix model name update during quota check to avoid incorrect logging (f9f2333)
- Fixed bug router-for-me#38 (99c9f30)
- Fix bug: router-for-me#38 about lobechat cors policy (7353bc0)
- Add OAuth support for Gemini CLI, Claude, Codex, and Qwen authentication (545dff8)
- Avoid unnecessary config.yaml reloads via hash check (ebf2a26)
- Merge pull request router-for-me#39 from luispater/config_hash (d4dc7b0)
- Restrict management key validation to non-localhost requests only (156e3b0)
- Enhance OAuth handling for Anthropic, Codex, Gemini, and Qwen tokens (0449fef)
- Resolve relative logsDir to executable directory in FileRequestLogger (4e67cd4)
- Filter OpenAI models response to include only essential fields (
id,object,created,owned_by). (74bae32) - Normalize
selecttoSTRINGtype in Gemini OpenAI request outputs (0371062) - Remove API key truncation in Gemini client ID generation (0983119)
- Ensure auth directory existence before processing tokens in
run.go(35daffd) - Default
tokenTypeto an empty string instead of "gemini" inwatcher.goandrun.go. (ef8820e) - Implement IP-based rate limiting and ban mechanism for management API (1c92034)
- Codex CLI - setting 'store = false' (aacfcae)
- Windows build instructions (b7d6ae1)
- Build instructions reformatting (b3c534b)
- Merge pull request router-for-me#41 from kaixxx/main (bd68472)
- Merge branch 'main' into dev (e0d1314)
- Resolve
logsDirpath relative to configuration directory inFileRequestLogger(4375822) - Update internal module imports to use
v5package path (9fce13f) - Refine .gitignore and .dockerignore files (d6037e5)
- Add Keep-Alive header (7e0fd1e)
- Merge branch 'dev' of github.com:luispater/CLIProxyAPI into dev (fa762e6)
- Add support for forcing GPT-5 Codex model configuration (b84cbee)
- Add GPT-5 Codex model support and configuration options in documentation (2406cc7)
- fix(windows): Improve path handling and file read reliability (e9037fc)
- fix: comprehensive JSON Schema sanitization for Claude to Gemini (a0c389a)
- Update config key
gpt-5-codextoforce-gpt-5-codexfor clarity in example configuration file (ed6e775) - Fix log key name from
gpt-5-codextoforce-gpt-5-codexfor consistency (8c2063a) - Merge pull request router-for-me#43 from kyle-the-dev/fix/gemini-schema-sanitization (7f0c9b1)
- feat: add graceful shutdown for streaming response handling (172f282)
- feat(gemini-web): squash all features and fixes for gemini-web (e4dd22b)
- feat: Add support for Gemini Web via cookie authentication (580ec73)
- feat(gemini): Implement pseudo-streaming and improve context reuse (1b2e3dc)
- fix(gemini-web): Correct inaccurate cookie refresh log message (bb6ec7c)
- Merge pull request router-for-me#44 from luispater/gemini-web (9ec8478)
- feat: add client availability tracking and error handling improvements (df66046)
- feat: implement model-specific Codex instructions for GPT-5 (869a3df)
- Refine Codex instructions for GPT-5 use case (d00604d)
- refactor: remove redundant Codex instruction validation logic (c0fbc19)
- refactor(cookie): Extract cookie snapshot logic to util package (7632204)
- refactor(auth): Introduce generic cookie snapshot manager (56b2dab)
- refactor(watcher): Filter irrelevant file system events early (8f0a345)
- fix(client): Add reason to unregistration to skip persistence (d9f8129)
- fix(client): Prevent overwriting auth file on update (f17ec7f)
- fix(client): Prevent overwriting auth file on update (6bd37b2)
- refactor(client): Improve auth file handling and client lifecycle (39518ec)
- refactor(auth): Centralize logging for saving credentials (2274d74)
- refactor(watcher): Move API key client creation to watcher package (4bfafbe)
- Merge pull request router-for-me#46 from router-for-me/cookie_snapshot (6ad5e07)
- Merge pull request router-for-me#47 from router-for-me/dev (b449d17)
- feat(log): Add separator when saving client credentials (395164e)
- Merge branch 'cookie_snapshot' into dev (1dccdb7)
- fix(gemini-web): ensure colon spacing in JSON output for compatibility (1d7abc9)
- refactor(auth): Centralize auth file reading with snapshot preference (aba719f)
- Merge pull request router-for-me#49 from router-for-me/gemini-web (bc376ad)
- Merge pull request router-for-me#50 from router-for-me/auth-dev (c16a989)
- Merge branch 'dev' (67a4fe7)
- feat: add support for Gemini 2.5 Flash image preview alias (24f243a)
- Merge branch 'dev' (d42384c)
- feat(gemini-web): Add support for real Nano Banana model (deaa64b)
- Merge pull request router-for-me#51 from router-for-me/gemini-web (b07ed71)
- feat(gemini-web): Add support for image generation with Gemini models through the OpenAI chat completions translator. (41effa5)
- feat(provider): Introduce dedicated provider type for Gemini-Web (9253bdb)
- Merge pull request router-for-me#52 from router-for-me/gemini-web (83a1fa6)
- refactor: standardize
dataTagprocessing across response translators (e5a6fd2) - v6 version first commit (4999fce)
- refactor: standardize constant naming and improve file-based auth handling (d9ad656)
- feat: enhance request logging and account handling in CLI proxy (d5ad5fa)
- feat: introduce custom provider example and remove redundant debug logs (f81898c)
- refactor(translator): Remove unused logrus imports (d6bb143)
- feat: implement token refresh support for executors (0607e52)
- fix(auth): Improve file-based auth handling and consistency (759bb88)
- fix(logging): Prevent race conditions in FileStreamingLogWriter (314125e)
- Merge pull request router-for-me#54 from router-for-me/v6-test (c28a5d2)
- feat(auth): introduce
auth.providersfor flexible authentication configuration (4008be1) - chore(logging): add debug logs for executor
Refreshmethods (837ae1b) - refactor(auth): remove unused
Refreshmethods from authenticators (053134f) - refactor(client): remove deprecated and unused methods for cleaner session handling and core auth management (ed87dda)
- feat(gemini-web): Implement proactive PSIDTS cookie rotation (22a6933)
- Merge pull request router-for-me#55 from router-for-me/v6-test (c9ce3a5)
- feat(logging): integrate logrus with custom Gin middleware for enhanced request logging and recovery (f1c4caf)
- feat(openai-compat): enhance provider key handling and model resolution (e41d127)
- feat(auth): standardize
last_refreshmetadata handling across executors (2e836ce) - chore(executor): add debug logging for API request errors (c6b3913)
- chore(executor): add debug logging for API request errors (c5df806)
- refactor(executor): centralize header application logic for executors (7ea8835)
- refactor(headers): centralize header logic using
EnsureHeaderutility (d32fc04) - feat(executor): add
CountTokenssupport across all executors (ac59023) - feat(gemini-executor): implement
CountTokensmethod with request translation and API integration (e313d39) - docs(sdk-access): add SDK usage guides in English and Chinese (3ffd87d)
- feat(auth): implement incremental auth updates with queue integration (792ec49)
- feat(auth): enhance watcher with asynchronous dispatch and buffering (6046a8c)
- fix(auth): resolve drain label for correct loop termination in
cliproxyservice (ec08500) - feat(auth): enable model suspension and resumption logic in
AuthManager(e68a603) - refactor(auth): replace
NextRefreshAfterwithNextRetryAfterfor clarity and consistency (72ffeb7) - fix(log): Trim trailing newlines to prevent blank log lines (4923237)
- refactor(watcher): Remove unnecessary log separator (e8e00d4)
- feat(gemini-web): Inject fallback text for image-only flash model responses (50c8f7f)
- fix(auth): address index logic bug and remove redundant conditions (5bf7a95)
- Merge pull request router-for-me#57 from router-for-me/v6-test (45d382f)
- feat(claude-executor): add ZSTD decoding support for Claude executor responses (11b0efc)
- refactor(gemini-web): Remove auto-refresh, auto-close, and caching (8e485e5)
- Merge pull request router-for-me#58 from router-for-me/v6-test (c159180)
- feat(translators/claude): implement non-streaming response parsing for various translator types (9df04d7)
- fix(gemini-web): Correct stream translation and reduce auth refresh lead (73cf491)
- Merge pull request router-for-me#59 from router-for-me/gemini-web-v6 (361a69f)
- fix(gemini): trim "data:" prefix in raw JSON and resolve variable shadowing in stream translation (b018072)
- feat(translators): improve system instruction extraction and input handling for OpenAI and Claude responses (d41ff20)
- feat(translators): improve system instruction extraction and input handling for OpenAI and Claude responses (5090d98)
- feat(usage): implement usage tracking infrastructure across executors (3ade03f)
- refactor(usage): replace channel-based queue with mutex-protected slice (582677d)
- feat(translators): add token counting support for Claude and Gemini responses (3dd5095)
- fix(codex): Remove reasoning.effort for default gpt-5-codex model (b86ed46)
- refactor(executor): remove ClientAdapter and legacy fallback logic (a2c5fda)
- feat(auth): introduce per-model state tracking and enhanced error handling (ab55373)
- refactor(gemini-web): Move provider logic to its own package (e9707c2)
- chore: Ignore .serena directory (06a3e97)
- Removed the cookie snapshot feature. (d4f5ec2)
- refactor(gemini-web): Standardize logging with logrus (c76b878)
- Merge pull request router-for-me#60 from router-for-me/v6-test (68be2f0)
- Reduce the size of gemini-web's package files (4ecc798)
- fix(gemini): handle "[DONE]" chunk, trim "data:" prefix, and remove session_id from requests (48bbd9e)
- Merge pull request router-for-me#61 from router-for-me/gemini-web (e9d2905)
- Merge remote-tracking branch 'origin/v6' into v6 (3c5390a)
- chore(docs): add and refine package-level comments across modules (0db0b03)
- feat(usage): add in-memory usage statistics tracking and API endpoint (19609db)
- feat(auth): centralize token store management and enhance persistence (8fc7387)
- refactor(auth): replace FileStore with FileTokenStore for unified token persistence (bb8f931)
- feat(auth): add Gemini Web token saving endpoint (2724630)
- refactor(auth): replace
logcalls withfmtfor improved consistency and standard output usage (e3be548) - refactor(config): remove
force-gpt-5-codexoption and related handlers (58f74eb) - refactor(logging, mgmt): update timestamp format in logs and remove
force-gpt-5-codexhandlers (ac93641) - refactor(config, auth): remove
allow-localhost-unauthenticatedsupport and related handlers (688547b) - merge (84248b6)
- remove all (3f69254)
- rebuild branch (f5dc380)
- refactor(gemini-web): Improve client robustness and code reuse (0d4cb9e)
- refactor(gemini-web): Centralize HTTP client creation for media (9810834)
- refactor(gemini-web): Consolidate conversation data into single BoltDB file (7f2e2fe)
- feat(auth): Add stable label to Gemini Web tokens for logging (20f3e62)
- feat(gemini-web): Introduce stable account label for identification (2175a10)
- Merge branch 'main' into gemini-web (2a274d4)
- feat(auth, docs): add SDK guides and local password support for management (a4767fd)
- Merge pull request router-for-me#62 from router-for-me/dev (cc8c46d)
- Merge pull request router-for-me#63 from router-for-me/gemini-web (830b51c)
- fix(auth): Scope unavailability checks to specific models (c63dc7f)
- refactor(gemini-web): Remove file-based PSIDTS cookie caching (7a30e65)
- feat(auth): Improve Gemini web auth with email label detection (a45d210)
- Merge pull request router-for-me#64 from router-for-me/bugfix (fc103f6)
- feat(auth): add interactive prompts to Gemini web auth flow (96cebd2)
- Merge pull request router-for-me#65 from router-for-me/gemini-web (80b6a95)
- feat(auth): enhance Gemini web auth with macOS support and input fallback (8fa52e9)
- feat(auth, docs): add
labelsupport for Gemini web token management (9761ac5) - chore(docs): remove outdated
allow-localhost-unauthenticatedsection from API docs (72325f7) - feat(logging): introduce centralized logging with custom format and Gin integration (cf734f7)
- feat(server): add keep-alive endpoint with timeout handling (5a50856)
- chore(docs): update README with GUI client, WebUI links, and detailed SDK documentation (4832297)
- feat(config, usage): add
usage-statistics-enabledoption and dynamic toggling (25ba042) - feat(watcher, auth): add stable hash for OpenAI compatibility models (3297f75)
- feat(auth): Enhance Gemini web auth with flexible input and UI (f228a4d)
- fix(auth): Make round-robin auth selection deterministic (e836b4a)
(changelog truncated to the first 300 of 3784 entries)
Full Changelog: https://github.com/iamriajul/CLIProxyAPI/commits/v7.3.4-muse.1