Skip to content

v7.3.4-muse.1

Choose a tag to compare

@iamriajul iamriajul released this 15 Sep 16:27
· 222 commits to main since this release

Linux release assets

  • CLIProxyAPI_<version>_linux_<arch>.tar.gz is 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.gz is 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.gz is 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 FixCLIToolResponse for 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 ClaudeMessages handler 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 GeminiModels handler and enhance API key validation (423faae)
  • Add GeminiGetHandler, enhance Gemini functionality, and enable token counting (31a9e2d)
  • Fix alt parameter handling in URL construction (beff928)
  • Enhance Gemini request handling with fallback support for contents (e64fa48)
  • Fix SSE headers initialization for geminiStreamGenerateContent and internalStreamGenerateContent (3b2ab0d)
  • Update example configuration file (config.example.yaml) (0b02693)
  • Add .gitignore and ignore config.yaml (5812229)
  • Update .goreleaser.yml to include config.example.yaml instead of config.yaml in release assets (00bd6a3)
  • Improve getClient logic with optional content generation flag (3b4634e)
  • Add file watcher for dynamic configuration and client reloading (3c4dc07)
  • Enhance Gemini request handling for contents support 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.yml to 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/models endpoint (dff31a7)
  • Add support for localhost unauthenticated requests (1c4183d)
  • Suppress debug logs for model routing and ignore empty tools arrays (7a6adfa)
  • Add /v1/completions endpoint with OpenAI compatibility (bea5f97)
  • Add nil-check for GetRequestMutex across handlers to prevent potential panics (3704dae)
  • Fix some bugs. (e9e0016)
  • Unlock mutex before returning error in handlers.go to prevent deadlocks (09b9d3b)
  • Update README documentation to clarify auth-dir configuration for Windows users (c2b2c9e)
  • Update README documentation to clarify auth-dir configuration 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-nano to gpt-5-minimal in usage examples (0652241)
  • Extract argument parsing logic into parseArgsToMap helper function (ae06f13)
  • Remove redundant dataUglyTag parsing 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 parseArgsToMap with tolerant JSON parsing (6d2f7e3)
  • feat(watcher): implement incremental client hot-reloading (f60ef0b)
  • Refactor cliCancel calls to remove unused resp argument 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 path with filepath for 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 FunctionCallIndex to ConvertCliToOpenAIParams and 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 /config management 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 select to STRING type 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 tokenType to an empty string instead of "gemini" in watcher.go and run.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 logsDir path relative to configuration directory in FileRequestLogger (4375822)
  • Update internal module imports to use v5 package 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-codex to force-gpt-5-codex for clarity in example configuration file (ed6e775)
  • Fix log key name from gpt-5-codex to force-gpt-5-codex for 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 dataTag processing 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.providers for flexible authentication configuration (4008be1)
  • chore(logging): add debug logs for executor Refresh methods (837ae1b)
  • refactor(auth): remove unused Refresh methods 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_refresh metadata 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 EnsureHeader utility (d32fc04)
  • feat(executor): add CountTokens support across all executors (ac59023)
  • feat(gemini-executor): implement CountTokens method 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 cliproxy service (ec08500)
  • feat(auth): enable model suspension and resumption logic in AuthManager (e68a603)
  • refactor(auth): replace NextRefreshAfter with NextRetryAfter for 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 log calls with fmt for improved consistency and standard output usage (e3be548)
  • refactor(config): remove force-gpt-5-codex option and related handlers (58f74eb)
  • refactor(logging, mgmt): update timestamp format in logs and remove force-gpt-5-codex handlers (ac93641)
  • refactor(config, auth): remove allow-localhost-unauthenticated support 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 label support for Gemini web token management (9761ac5)
  • chore(docs): remove outdated allow-localhost-unauthenticated section 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-enabled option 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