# Server portport: 8317# Management API settingsremote-management: # Whether to allow remote (non-localhost) management access. # When false, only localhost can access management endpoints (a key is still required). allow-remote: false # Management key. If a plaintext value is provided here, it will be hashed on startup. # All management requests (even from localhost) require this key. # Leave empty to disable the Management API entirely (404 for all /v0/management routes). secret-key: ""# Authentication directory (supports ~ for home directory)auth-dir: "~/.cli-proxy-api"# API keys for authenticationapi-keys: - "your-api-key-1" - "your-api-key-2"# Enable debug loggingdebug: false# When true, write application logs to rotating files instead of stdoutlogging-to-file: false# When false, disable in-memory usage statistics aggregationusage-statistics-enabled: false# Proxy URL. Supports socks5/http/https protocols. Example: socks5://user:pass@192.168.1.1:1080/proxy-url: ""# Number of times to retry a request. Retries will occur if the HTTP response code is 403, 408, 500, 502, 503, or 504.request-retry: 3# Quota exceeded behaviorquota-exceeded: switch-project: true # Whether to automatically switch to another project when a quota is exceeded switch-preview-model: true # Whether to automatically switch to a preview model when a quota is exceeded# API keys for official Generative Language API#generative-language-api-key:# - "AIzaSy...01"# - "AIzaSy...02"# - "AIzaSy...03"# - "AIzaSy...04"# Codex API keys#codex-api-key:# - api-key: "sk-atSM..."# base-url: "https://www.example.com" # use the custom codex API endpoint# proxy-url: "socks5://proxy.example.com:1080" # optional: per-key proxy override# Claude API keys#claude-api-key:# - api-key: "sk-atSM..." # use the official claude API key, no need to set the base url# - api-key: "sk-atSM..."# base-url: "https://www.example.com" # use the custom claude API endpoint# proxy-url: "socks5://proxy.example.com:1080" # optional: per-key proxy override# OpenAI compatibility providers#openai-compatibility:# - name: "openrouter" # The name of the provider; it will be used in the user agent and other places.# base-url: "https://openrouter.ai/api/v1" # The base URL of the provider.# # New format with per-key proxy support (recommended):# api-key-entries:# - api-key: "sk-or-v1-...b780"# proxy-url: "socks5://proxy.example.com:1080" # optional: per-key proxy override# - api-key: "sk-or-v1-...b781" # without proxy-url# # Legacy format (still supported, but cannot specify proxy per key):# # api-keys:# # - "sk-or-v1-...b780"# # - "sk-or-v1-...b781"# models: # The models supported by the provider.# - name: "moonshotai/kimi-k2:free" # The actual model name.# alias: "kimi-k2" # The alias used in the API.# Gemini Web settings#gemini-web:# # Conversation reuse: set to true to enable (default), false to disable.# context: true# # Maximum characters per single request to Gemini Web. Requests exceeding this# # size split into chunks. Only the last chunk carries files and yields the final answer.# max-chars-per-request: 1000000# # Disable the short continuation hint appended to intermediate chunks# # when splitting long prompts. Default is false (hint enabled by default).# disable-continuation-hint: false# # Code mode:# # - true: enable XML wrapping hint and attach the coding-partner Gem.# # Thought merging (<think> into visible content) applies to STREAMING only;# # non-stream responses keep reasoning/thought parts separate for clients# # that expect explicit reasoning fields.# # - false: disable XML hint and keep <think> separate# code-mode: false
# Server port
port: 8317
# Management API settings
remote-management:
# Whether to allow remote (non-localhost) management access.
# When false, only localhost can access management endpoints (a key is still required).
allow-remote: false
# Management key. If a plaintext value is provided here, it will be hashed on startup.
# All management requests (even from localhost) require this key.
# Leave empty to disable the Management API entirely (404 for all /v0/management routes).
secret-key: ""
# Authentication directory (supports ~ for home directory)
auth-dir: "~/.cli-proxy-api"
# API keys for authentication
api-keys:
- "your-api-key-1"
- "your-api-key-2"
# Enable debug logging
debug: false
# When true, write application logs to rotating files instead of stdout
logging-to-file: false
# When false, disable in-memory usage statistics aggregation
usage-statistics-enabled: false
# Proxy URL. Supports socks5/http/https protocols. Example: socks5://user:pass@192.168.1.1:1080/
proxy-url: ""
# Number of times to retry a request. Retries will occur if the HTTP response code is 403, 408, 500, 502, 503, or 504.
request-retry: 3
# Quota exceeded behavior
quota-exceeded:
switch-project: true # Whether to automatically switch to another project when a quota is exceeded
switch-preview-model: true # Whether to automatically switch to a preview model when a quota is exceeded
# API keys for official Generative Language API
#generative-language-api-key:
# - "AIzaSy...01"
# - "AIzaSy...02"
# - "AIzaSy...03"
# - "AIzaSy...04"
# Codex API keys
#codex-api-key:
# - api-key: "sk-atSM..."
# base-url: "https://www.example.com" # use the custom codex API endpoint
# proxy-url: "socks5://proxy.example.com:1080" # optional: per-key proxy override
# Claude API keys
#claude-api-key:
# - api-key: "sk-atSM..." # use the official claude API key, no need to set the base url
# - api-key: "sk-atSM..."
# base-url: "https://www.example.com" # use the custom claude API endpoint
# proxy-url: "socks5://proxy.example.com:1080" # optional: per-key proxy override
# OpenAI compatibility providers
#openai-compatibility:
# - name: "openrouter" # The name of the provider; it will be used in the user agent and other places.
# base-url: "https://openrouter.ai/api/v1" # The base URL of the provider.
# # New format with per-key proxy support (recommended):
# api-key-entries:
# - api-key: "sk-or-v1-...b780"
# proxy-url: "socks5://proxy.example.com:1080" # optional: per-key proxy override
# - api-key: "sk-or-v1-...b781" # without proxy-url
# # Legacy format (still supported, but cannot specify proxy per key):
# # api-keys:
# # - "sk-or-v1-...b780"
# # - "sk-or-v1-...b781"
# models: # The models supported by the provider.
# - name: "moonshotai/kimi-k2:free" # The actual model name.
# alias: "kimi-k2" # The alias used in the API.
# Gemini Web settings
#gemini-web:
# # Conversation reuse: set to true to enable (default), false to disable.
# context: true
# # Maximum characters per single request to Gemini Web. Requests exceeding this
# # size split into chunks. Only the last chunk carries files and yields the final answer.
# max-chars-per-request: 1000000
# # Disable the short continuation hint appended to intermediate chunks
# # when splitting long prompts. Default is false (hint enabled by default).
# disable-continuation-hint: false
# # Code mode:
# # - true: enable XML wrapping hint and attach the coding-partner Gem.
# # Thought merging (<think> into visible content) applies to STREAMING only;
# # non-stream responses keep reasoning/thought parts separate for clients
# # that expect explicit reasoning fields.
# # - false: disable XML hint and keep <think> separate
# code-mode: false