Skip to content

Опции конфигурации ​

Значения по умолчанию и доступные поля соответствуют макету v8 в config.example.yaml.

Для файла v8 установите config-version: 8. Существующие старые файлы и запросы /v0/management продолжают работать. Если одновременно заданы поле v8 и его старое написание, побеждает значение v8, включая false, 0 и пустые коллекции; старое поле удаляется при загрузке или сохранении. Поля, существующие только в старом макете, остаются на месте до успешной записи конфигурации через /v8/management. Одна установка config-version: 8 или чтение конфигурации файл не мигрирует. Запись управления v8 отклоняет старые имена полей и неизвестные корневые разделы.

Корневое отображение api-keys зарезервировано для групп upstream-провайдеров. Клиентские ключи, которые раньше находились в корневом списке api-keys, теперь задаются в access.api-keys. Эти два значения не могут использовать один ключ YAML.

ПараметрТипПо умолчаниюОписание
config-versioninteger—При наличии должно быть 8.

Сервер ​

ПараметрТипПо умолчаниюОписание
server.hoststring""Адрес привязки. Пустое значение слушает все интерфейсы IPv4 и IPv6. Используйте 127.0.0.1 или localhost только для локального доступа.
server.portinteger8317Порт сервера. 0 и отрицательное значение также возвращаются к 8317.
server.trusted-proxiesstring[][]IP или CIDR, которым разрешено передавать заголовки клиентского IP. Пустой список никому не доверяет. После изменения нужна перезагрузка.
server.tls.enablebooleanfalseВключить HTTPS.
server.tls.cert / server.tls.keystring""Пути к сертификату TLS и закрытому ключу.
server.commercial-modebooleanfalseОтключить ресурсоемкое логирование запросов и middleware для снижения потребления памяти.
server.discovery.enabledbooleanfalseОбъявлять _ai-gateway._tcp через mDNS / DNS-SD. Docker должен использовать host networking: link-local multicast не проходит стандартный мост.
server.discovery.service-namestring""Необязательный префикс имени. Объявляется как CPA-<ShortID> или <name>-<ShortID>.
server.discovery.service-typestring"_ai-gateway._tcp"Тип службы DNS-SD.
server.discovery.subtypesstring[]chat, responses, messages, generate-content, interactionsПодтипы протоколов API. Каждое значение содержит начальное подчеркивание, например _responses.
server.discovery.interfaces.include / excludestring[][]Разрешенные интерфейсы и дополнительные шаблоны исключения. Пустой include автоматически определяет физические интерфейсы.
server.discovery.auth-requiredbooleantrueОбъявлять, что клиентам нужна аутентификация.
server.discovery.advertise-managementbooleanfalseОбъявлять доступность управления.

Management API ​

Пустой secret-key отключает /v0/management и /v8/management (404). Доступ с localhost также требует ключ.

ПараметрТипПо умолчаниюОписание
management.allow-remotebooleanfalseРазрешить управление не только с localhost.
management.secret-keystring""Ключ управления. Открытый текст хешируется при запуске.
management.disable-control-panelbooleanfalseОтключить встроенные ресурсы и маршруты панели управления.
management.disable-auto-update-panelbooleanfalseОтключить периодические фоновые обновления панели. Отсутствующая панель все равно загружается при первом доступе.
management.base-urlstringhttp://127.0.0.1:<port>Базовый URL удаленного управления для cliproxyapi --tui. --management-base-url его заменяет.
management.panel-github-repositorystring"https://github.com/router-for-me/Cli-Proxy-API-Management-Center"Репозиторий или URL releases API пакета панели управления.

Доступ ​

ПараметрТипПо умолчаниюОписание
access.api-keysstring[][]Клиентские ключи, принимаемые этим прокси. Это не ключи upstream-провайдеров.

Маршрутизация ​

routing.strategy принимает round-robin (по умолчанию), weighted-round-robin или fill-first. weightedroundrobin, wrr, fillfirst и ff являются псевдонимами.

Взвешенный round-robin использует целочисленный weight каждой учетной записи. Пропущенное значение равно 1, максимум — 1,000,000, а неположительный вес исключает учетную запись, пока действует эта стратегия. Для OAuth или файловых учетных данных поместите числовой weight на верхний уровень auth JSON.

Уже установленная привязка сессии важнее приоритета учетных данных. Приоритет по-прежнему выбирает холодные привязки, запросы без сессии и повторную привязку после failover.

ПараметрТипПо умолчаниюОписание
routing.strategystring"round-robin"Стратегия выбора учетных данных.
routing.session-affinitybooleanfalseПривязать сессии к учетным данным. Сначала используются явные заголовки сессий Claude Code, Codex, OpenCode и pi, затем prompt_cache_key, ID разговоров Responses, старые ID тела, execution или производная идентичность сессии и хеш первого сообщения. Failover остается включенным.
routing.session-affinity-ttlstring"1h"TTL привязки сессии к учетным данным. Значение меньше одной секунды повышается до одной секунды.
routing.session-affinity-subagentsbooleantrueДочерние сессии со ссылкой на родителя повторно используют учетные данные родителя для Claude, Codex, Antigravity и Gemini. false распределяет их fallback-селектором. Игнорируется при выключенной session affinity.
routing.force-model-prefixbooleanfalseЗапросы моделей без префикса используют только учетные данные без префикса, кроме случая, когда префикс равен имени модели.
routing.retry.request-retryinteger3Дополнительные раунды учетных данных после раунда 0. Раунд r допускает только учетные данные, чье эффективное значение не меньше r. Применяется к HTTP 403, 408, 429, 500, 502, 503 и 504.
routing.retry.max-retry-credentialsinteger0Число различных учетных данных в каждом раунде после фильтрации раунда. 0 пробует все подходящие. Пропущенные из-за предела учетные данные все равно стареют вместе с глобальным раундом.
routing.retry.max-retry-intervalinteger30Максимальное ожидание cooldown между раундами в секундах. 0 или меньше означает не ждать. Это не отключает failover внутри раунда или немедленные раунды.
routing.cooldown.disable-coolingbooleanfalseГлобально отключить cooldown учетных данных и моделей. Присутствующее значение учетной записи или провайдера его заменяет.
routing.cooldown.save-cooldown-statusbooleanfalseСохранять состояние cooldown в файлах .cds рядом с auth-файлами.
routing.cooldown.transient-error-cooldown-secondsinteger0Cooldown для временных ошибок 408, 500, 502, 503, 504 и 520-526. 0 использует прежние 60 секунд. -1 отключает его.

Для request-retry отдельной учетной записи явное неотрицательное значение побеждает, 0 допускает только раунд 0, а пропущенное или отрицательное значение наследует routing.retry.request-retry.

Запросы ​

ПараметрТипПо умолчаниюОписание
requests.proxy-urlstring""Глобальный исходящий прокси (socks5, http или https).
requests.passthrough-headersbooleanfalseПередавать клиентам отфильтрованные заголовки ответа upstream.
requests.nonstream-keepalive-intervalinteger0Выводить пустые строки каждые N секунд для нестриминговых ответов. 0 отключает.
requests.streaming.keepalive-secondsinteger0Интервал SSE keep-alive. Значения <= 0 отключают его.
requests.streaming.bootstrap-retriesinteger0Безопасные повторы стриминга до отправки первого байта.
requests.streaming.send-keepalive-before-ftbooleanfalseОтправлять SSE keep-alive до получения первого токена при keepalive-seconds > 0.

proxy-url отдельной записи принимает direct или none, чтобы обойти и этот прокси, и прокси окружения. Значения заголовков, начинающиеся с $, копируют соответствующий заголовок клиентского запроса и опускаются, если клиент его не отправил.

Правила payload находятся в requests.payload. См. Правила Payload.

Мультимедиа ​

ПараметрТипПо умолчаниюОписание
multimedia.disable-image-generationboolean | "chat" | "passthrough"falsetrue отключает генерацию изображений и возвращает 404 для /v1/images/*. "chat" отключает внедрение только вне image endpoints. "passthrough" не меняет клиентский payload вне image endpoints и ведет себя как "chat" на image endpoints.
multimedia.gpt-image-2-base-modelstring"gpt-5.4-mini"Базовая модель устаревшего hosted image-generation пути. Должна начинаться с gpt-. Недопустимое значение заменяется значением по умолчанию.
multimedia.video-result-auth-cache-ttlstring"3h"Как долго ID видео из /openai/v1/videos и создания видео xAI остаются привязаны к создавшей их учетной записи.

Наблюдаемость ​

ПараметрТипПо умолчаниюОписание
observability.logs.debugbooleanfalseВключить отладочное логирование.
observability.logs.request-logbooleanfalseЗаписывать запросы и ответы прокси. Запросы управления исключаются.
observability.logs.logging-to-filebooleanfalseЗаписывать ротируемые логи приложения вместо stdout.
observability.logs.logs-max-total-size-mbinteger0Ограничение общего размера каталога логов в MB. 0 отключает ограничение.
observability.logs.error-logs-max-filesinteger10Число файлов логов ошибок при отключенном логировании запросов. 0 отключает очистку.
observability.usage.usage-statistics-enabledbooleanfalseВключить агрегацию статистики использования в памяти.
observability.usage.redis-usage-queue-retention-secondsinteger60Сколько секунд хранить в памяти элементы очереди использования для Management API. Максимум 3600. Локальный вывод использования Redis RESP отключен.
observability.pprof.enablebooleanfalseВключить HTTP-сервер отладки pprof.
observability.pprof.addrstring"127.0.0.1:8316"Адрес привязки pprof. Оставляйте его локальным.

Плагины ​

Доверенные динамические плагины в процессе по умолчанию выключены. plugins.configs.<plugin-id>.enabled не меняет plugins.enabled. plugins.auth-revision — метаданные, принадлежащие Home, а не обычная настройка.

ПараметрТипПо умолчаниюОписание
plugins.enabledbooleanfalseВключить динамические плагины.
plugins.dirstring"plugins"Каталог обнаружения плагинов.
plugins.store-sourcesstring[][]Дополнительные URL реестров plugin store. Официальный реестр включен всегда.
plugins.store-auth[].matchstring""URL-префикс одного правила аутентификации. Для HTTP требуется allow-insecure: true.
plugins.store-auth[].apply-tostring[][]Виды запросов: registry, metadata и/или artifact.
plugins.store-auth[].typestring""none, bearer, basic, header или github-token.
plugins.store-auth[].token-envstring""Переменная окружения с bearer, GitHub или другим токеном.
plugins.store-auth[].username-env / password-envstring""Переменные окружения для basic auth.
plugins.store-auth[].header-name / header-value-envstring""Имя заголовка и переменная окружения с его значением.
plugins.store-auth[].allow-insecurebooleanfalseРазрешить небезопасную конфигурацию аутентификации, если она поддерживается.
plugins.configs.<plugin-id>.enabledbooleanfalseВключить экземпляр плагина.
plugins.configs.<plugin-id>.priorityinteger0Приоритет запуска и маршрутизации плагина.

Остальные ключи экземпляра плагина сохраняются для этого плагина.

OAuth и файловые учетные данные ​

Параметры oauth.providers применяются к учетным данным OAuth и файлов. Они не применяются к группам api-keys. Материал токенов остается в хранилище учетных данных.

ПараметрТипПо умолчаниюОписание
oauth.auth-dirstring"~/.cli-proxy-api"Каталог учетных данных. Поддерживается ~.
oauth.auth-auto-refresh-workersinteger16Число workers обновления OAuth и file auth. Значение <= 0 сохраняет значение по умолчанию.
oauth.model-aliasobject{}Псевдонимы моделей по каналу: vertex, aistudio, antigravity, claude, codex, kimi, xai, meta или ключ OAuth plugin provider. Не применяется к группам api-keys.
oauth.model-alias.*.*.name / aliasstring""ID upstream-модели и видимый клиенту ID. Одно имя можно повторить с разными псевдонимами.
oauth.model-alias.*.*.forkbooleanfalseСохранить upstream-модель и дополнительно показать псевдоним.
oauth.model-alias.*.*.display-namestring""Метка каталога для псевдонима.
oauth.model-alias.*.*.force-mappingbooleanfalseВозвращать видимый клиенту псевдоним в поле модели upstream-ответа.
oauth.excluded-modelsobject{}Исключаемые модели по тем же каналам. Поддерживаются wildcards.
oauth.request-scoped-errorsobject{}Пользовательские правила ошибок upstream по каналу.
oauth.request-scoped-errors.*.[].statusinteger—Сопоставляемый HTTP-статус.
oauth.request-scoped-errors.*.[].matchstring[][]Подстроки тела. Сопоставление чувствительно к регистру.
oauth.request-scoped-errors.*.[].match-regexrstring[][]Регулярные выражения для тела.
oauth.request-scoped-errors.*.[].actionstring—stop, stop-and-cooldown, continue или continue-and-cooldown.

Правило request scope игнорируется, если у него нет статуса и хотя бы одного шаблона match или match-regexr.

Массив model_aliases в auth JSON действует только для этой учетной записи и заменяет глобальный псевдоним с тем же видимым клиенту именем. Устаревший model-aliases нормализуется при загрузке.

AI Studio ​

ПараметрТипПо умолчаниюОписание
oauth.providers.aistudio.ws-authbooleantrueТребовать аутентификацию для /v1/ws.

Codex ​

Эти поля не применяются к api-keys.codex. Маскировка API-ключа задается через keys[].disable-codex-cloaking.

ПараметрТипПо умолчаниюОписание
oauth.providers.codex.response-steeringbooleanfalseЭкспериментальное полнодуплексное Responses WebSocket steering. Один socket остается на одном аккаунте и модели, а принятый ввод не воспроизводится повторно.
oauth.providers.codex.disable-codex-cloakingbooleanfalseНе принуждать официальные заголовки Codex User-Agent и Originator в запросах HTTP, SSE или WebSocket.
oauth.providers.codex.stream-bootstrap-bufferingbooleanfalseУдерживать handshake, heartbeat и пустые кадры *.added до первого сгенерированного события, чтобы отказы перегрузки или rate limit внутри потока могли выполнить failover до фиксации заголовков ответа. Предел — 48 кадров и 1 MiB, а не время.
oauth.providers.codex.stream-bootstrap-timeoutstring"0"Необязательный предел времени, например "20s". 0, 0s, none, unlimited, disabled, off и never означают отсутствие предела. Это не прерывает upstream-соединение.
oauth.providers.codex.optimize-multi-agent-v2booleanfalseОптимизировать запросы multi-agent v2 для Codex Desktop, codex-tui и codex_cli_rs. Не применяется к учетным данным API-ключа.
oauth.providers.codex.orphan-delegation-compatibilitybooleanfalseПреобразовывать осиротевшие элементы function_call_output из codex_app/create_thread и codex_app/send_message_to_thread в сообщения пользователя, когда X-Openai-Subagent равен collab_spawn.
oauth.providers.codex.model-level-coolingbooleanfalseОграничивать cooldown Codex usage_limit_reached запрошенной моделью.
oauth.providers.codex.header-defaults.user-agentstring""Запасной User-Agent для HTTP и WebSocket OAuth-запросов, если клиент его не прислал.
oauth.providers.codex.header-defaults.beta-featuresstring""Запасные beta features только для WebSocket OAuth-запросов.
oauth.providers.codex.live-media-relay.enabledbooleanfalseРетранслировать аудио Codex Live WebRTC и трафик DataChannel в этом процессе. Требуется входящая доступность UDP.
oauth.providers.codex.live-media-relay.max-sessionsinteger32Максимум одновременных медиасессий. 0 означает 32.
oauth.providers.codex.live-media-relay.disable-private-remote-ipsbooleanfalseОтклонять downstream SDP candidates, указывающие на частные, loopback, link-local или неопределенные IP.
oauth.providers.codex.live-media-relay.public-ipstring""Публичный адрес, объявляемый за 1:1 NAT.
oauth.providers.codex.live-media-relay.udp-port-min / udp-port-maxinteger0Необязательный диапазон UDP. Задайте оба значения и не меньше двух портов на сессию.
oauth.providers.codex.live-media-relay.ice-servers[].urlsstring[][]URL STUN или TURN.
oauth.providers.codex.live-media-relay.ice-servers[].username / credentialstring""Учетные данные TURN. JSON config API их никогда не возвращает.

При прокси http, https, socks5 или socks5h медиаканал в сторону OpenAI принудительно идет через аутентифицированный ICE-TCP и не возвращается к UDP или прямому соединению. Канал в сторону Codex Desktop остается прямым. Старое имя allow-private-remote-ips является инверсией disable-private-remote-ips и переписывается только при миграции или сохранении v8.

Claude ​

disable-claude-cloak-mode влияет только на учетные данные OAuth. API-ключи используют api-keys.claude[].keys[].cloak.

ПараметрТипПо умолчаниюОписание
oauth.providers.claude.model-level-coolingbooleanfalseОграничивать cooldown квоты запрошенной моделью, а не всей учетной записью.
oauth.providers.claude.disable-claude-cloak-modebooleanfalseПередавать исходный system prompt без изменений. cloak_mode учетной записи может его заменить. false сохраняет поведение auto для каждого клиента.
oauth.providers.claude.claude-code.disable-cloaking-model-listbooleanfalseВозвращать исходные ID моделей в ответах списка моделей Anthropic вместо замаскированных ID.
oauth.providers.claude.header-defaults.user-agentstring""Измеренная базовая линия Claude Code CLI для неподтвержденного клиента или клиента вне настроенной линии major/minor.
oauth.providers.claude.header-defaults.package-version / runtime-versionstring""Версии пакета и runtime в этой базовой линии.
oauth.providers.claude.header-defaults.os / archstring""По умолчанию определяются средой выполнения, если стабилизация device profile их не фиксирует.
oauth.providers.claude.header-defaults.timeoutstring""Запасной заголовок timeout.
oauth.providers.claude.header-defaults.timezonestring""Запасной часовой пояс IANA для замаскированного currentDate. timezone в JSON учетной записи имеет приоритет.
oauth.providers.claude.header-defaults.stabilize-device-profilebooleanfalseЗафиксировать ОС и архитектуру на этой базовой линии для каждой auth.

Antigravity, xAI и Devin ​

ПараметрТипПо умолчаниюОписание
oauth.providers.antigravity.antigravity-creditsbooleantrueПоследний fallback Claude: после исчерпания free-tier auth (429/503) повторить запрос с auth, у которой есть Google One AI credits.
oauth.providers.antigravity.signature-cache-enabledbooleantrueПредпочитать и проверять кешированные подписи thinking blocks. false включает bypass mode.
oauth.providers.antigravity.signature-bypass-strictbooleanfalseВ bypass mode проверять полную protobuf-подпись Claude, а не только базовый формат.
oauth.providers.antigravity.sensitive-wordsstring[][]Слова для обфускации символами нулевой ширины в system instructions.
oauth.providers.antigravity.connection-pool.enabledbooleanfalseВключить пул upstream HTTP-соединений.
oauth.providers.antigravity.connection-pool.idle-conn-timeoutstring"30s"Тайм-аут простоя keep-alive, не более 210 секунд.
oauth.providers.antigravity.connection-pool.max-idle-conns-per-hostinteger2Максимум простаивающих соединений на хост для одной учетной записи.
oauth.providers.xai.inject-x-searchbooleanfalseВнедрять собственный инструмент x_search, если запрос его не объявляет, включая tool_choice.allowed_tools, когда это применимо.
oauth.providers.devin.sensitive-wordsstring[][]Слова для обфускации символами нулевой ширины в system instructions и prompts Devin.

Upstream API-ключи ​

api-keys.<provider> — список групп. У каждой группы есть name, один base-url, общие параметры и список keys. Для другого endpoint добавьте другую группу. base-url принадлежит группе, а не ключу.

Общие поля группы: priority, prefix, proxy-url, headers, models, excluded-models, disable-cooling, request-retry и request-scoped-errors. Отсутствующее или равное null поле ключа наследует значение группы, а затем runtime fallback. Явные false, 0, пустые строки и пустые коллекции заменяют наследование, если поле это поддерживает. Замена map или list заменяет унаследованное значение целиком. weight принадлежит каждому ключу. Пустой proxy-url ключа возвращается к requests.proxy-url.

priority по умолчанию равен 0; большее значение предпочтительнее. Пропущенный weight равен 1.

Общие поля ​

ПараметрТипПо умолчаниюОписание
api-keys.<provider>[].namestring—Имя группы.
api-keys.<provider>[].base-urlstringзависит от провайдераEndpoint, общий для всех ключей группы.
api-keys.<provider>[].priorityinteger0Приоритет выбора.
api-keys.<provider>[].prefixstring""Необязательный префикс модели. Клиенты вызывают prefix/model.
api-keys.<provider>[].disable-coolingbooleanнаследованиеПри наличии заменяет routing.cooldown.disable-cooling.
api-keys.<provider>[].request-retryintegerнаследованиеПереопределение повторов для группы. См. повторы маршрутизации выше.
api-keys.<provider>[].request-scoped-errors[]object[][]Те же поля status, match, match-regexr и action, что у oauth.request-scoped-errors. Правилу нужны статус и хотя бы один шаблон. Vertex это поле не поддерживает.
api-keys.<provider>[].headersobject{}Дополнительные заголовки запросов.
api-keys.<provider>[].proxy-urlstring""Переопределение прокси группы.
api-keys.<provider>[].excluded-modelsstring[][]Исключаемые модели. Поддерживаются *, префикс, суффикс и подстрока.
api-keys.<provider>[].keys[].api-keystring""API-ключ upstream.
api-keys.<provider>[].keys[].weightinteger1Доля weighted round-robin. Максимум 1,000,000. Неположительное значение исключает ключ, пока действует эта стратегия.
api-keys.<provider>[].models[].name / aliasstring""Имя upstream-модели и псевдоним клиента.
api-keys.<provider>[].models[].display-namestring""Метка каталога.
api-keys.<provider>[].models[].max-context-lengthinteger0Заменить окно контекста, объявляемое клиентам Codex. Vertex не использует.
api-keys.<provider>[].models[].force-mappingbooleanfalseПереписывать поле модели upstream-ответа на псевдоним.
api-keys.<provider>[].models[].is-compatbooleanfalseСохранять thinking blocks с пустыми подписями для совместимых upstream. Codex использует это для переносимого преобразования multi-agent agent_message, когда также включен optimize-multi-agent-v2. Vertex не использует.
api-keys.<provider>[].models[].thinking.levelsstring[]зависит от провайдераДискретные уровни reasoning.
api-keys.<provider>[].models[].thinking.min / maxinteger—Диапазон бюджета, если модель использует бюджет, а не уровни.
api-keys.<provider>[].models[].thinking.zero-allowed / dynamic-allowedbooleanfalseРазрешить бюджет 0 или динамический бюджет -1.

Те же поля ключа могут заменять общие поля группы. Ключ не должен повторять base-url.

Gemini и Interactions ​

api-keys.gemini и api-keys.interactions используют общие поля. Ключи Interactions используются только для прямого выполнения /v1beta/interactions. Ключи Gemini по-прежнему обслуживают generateContent, когда клиент входит через interactions API.

Базовый URL по умолчанию — https://generativelanguage.googleapis.com. Запись с пустыми API-ключом и базовым URL удаляется, повторяющиеся записи Gemini также удаляются.

Vertex ​

api-keys.vertex использует общие поля, кроме request-scoped-errors, max-context-length и is-compat. base-url необязателен и при пропуске возвращается к Google Vertex. API-ключ отправляется как x-goog-api-key. Записи без API-ключа удаляются. Сопоставлению модели нужны и name, и alias.

Codex ​

api-keys.codex использует общие поля. Группа без base-url отбрасывается. Параметры OAuth-провайдера Codex здесь не применяются.

ПараметрТипПо умолчаниюОписание
api-keys.codex[].keys[].websocketsbooleanfalseИспользовать upstream WebSocket transport Responses API.
api-keys.codex[].keys[].alpha-searchbooleanfalseРазрешить этому ключу обслуживать /v1/alpha/search по адресу base-url + /alpha/search.
api-keys.codex[].keys[].disable-codex-cloakingbooleanfalsetrue отключает маскировку этого ключа. Пропуск не наследует oauth.providers.codex.disable-codex-cloaking.
api-keys.codex[].models[].support-configuration-updatebooleanfalseВключить configuration_update для этой модели API-ключа.

Claude ​

api-keys.claude использует общие поля. base-url может быть пустым для официального Claude API. Маскировка OAuth и заголовки по умолчанию к этим ключам не применяются.

ПараметрТипПо умолчаниюОписание
api-keys.claude[].keys[].rebuild-mid-system-messagebooleanfalseПеремещать сообщения с ролью system в top-level поле Claude system.
api-keys.claude[].keys[].cloak.modestring"auto"auto маскирует неподтвержденных клиентов, always маскирует каждого неподтвержденного клиента, never отключает маскировку. Подтвержденный native Claude Code остается passthrough.
api-keys.claude[].keys[].cloak.strict-modebooleanfalsetrue удаляет prompts вызывающей стороны и оставляет только блоки биллинга и идентичности Claude Code.
api-keys.claude[].keys[].cloak.sensitive-wordsstring[][]Слова для обфускации символами нулевой ширины.
api-keys.claude[].keys[].cloak.cache-user-idbooleanfalseПовторно использовать кешированный user_id для этого API-ключа.
api-keys.claude[].keys[].fingerprint-profilestring""Пустое значение сохраняет отпечаток вызывающей стороны. claude-code-cli выбирает форму Messages Claude Code CLI. oauth-cli — устаревший псевдоним.
api-keys.claude[].keys[].experimental-cch-signingbooleanfalseУстаревшее поле совместимости. CCH создается автоматически для настоящего Claude OAuth, а для профилей claude-code-cli только на api.anthropic.com.

Делегированные файлы OAuth используют fingerprint_profile в auth JSON. Устаревший fingerprint-profile нормализуется при загрузке. count_tokens сохраняет собственную форму model, messages и tools. Подпись CCH следует собственному ограничению: только api.anthropic.com и Vertex.

xAI ​

api-keys.xai использует собственный executor xAI и общие поля. Группа без base-url отбрасывается. Обычный endpoint — https://api.x.ai/v1.

ПараметрТипПо умолчаниюОписание
api-keys.xai[].keys[].websocketsbooleanfalseИспользовать upstream WebSocket transport xAI для downstream WebSocket-запросов.

alpha-search для ключей xAI принудительно выключен.

Meta ​

api-keys.meta использует собственный executor Meta. Пустой base-url становится https://api.meta.ai/v1. Записи с пустым API-ключом или ключом, начинающимся с dca:, удаляются; токены DCA принадлежат хранилищу OAuth.

Совместимость с OpenAI ​

api-keys.openai-compatibility оставляет параметры провайдера в группе. Его записи keys являются только записями API-ключей и заменяют устаревшее поле api-key-entries. Группа без base-url отбрасывается.

ПараметрТипПо умолчаниюОписание
api-keys.openai-compatibility[].namestring""Идентификатор провайдера, в том числе для user agent.
api-keys.openai-compatibility[].disabledbooleanfalseОтключить провайдера, не удаляя его.
api-keys.openai-compatibility[].support-prompt-cache-keybooleanfalseВыводить prompt_cache_key для запросов из всех входных протоколов.
api-keys.openai-compatibility[].keys[].api-key / proxy-url / weightmixed—Ключ, необязательный прокси и вес weighted round-robin.
api-keys.openai-compatibility[].models[].imagebooleanfalseРазрешить модель для /v1/images/generations и /v1/images/edits. Это не объявляет вход изображений chat или responses.
api-keys.openai-compatibility[].models[].input-modalities / output-modalitiesstring[][]Заявленные возможности ввода или вывода, например text и image.
api-keys.openai-compatibility[].models[].use-max-completion-tokensbooleanfalseОтправлять max_completion_tokens вместо max_tokens.
api-keys.openai-compatibility[].models[].thinking.levelsstring[]["low", "medium", "high"]Используется, когда thinking пропущен. Необъявленные более высокие уровни, такие как max или xhigh, ограничиваются до high.

Повтор одного псевдонима создает внутренний пул upstream. Клиент видит один псевдоним. Запросы распределяются round-robin по этим именам upstream и продолжаются со следующим именем, если выбранный upstream завершился ошибкой до создания вывода.

Правила Payload ​

requests.payload.default, default-raw, override, override-raw и filter — массивы правил. default* записывает только отсутствующие значения, override* записывает всегда, а filter удаляет пути. Значения *-raw должны быть допустимым JSON и вставляются как raw JSON.

ПараметрТипПо умолчаниюОписание
requests.payload.<rule>[].models[].namestring""Имя модели или wildcard.
requests.payload.<rule>[].models[].protocolstring""Целевой протокол: openai, gemini, claude, codex или antigravity.
requests.payload.<rule>[].models[].from-protocolstring""Исходный протокол: openai, responses, gemini или claude. openai-response, openai-responses и response нормализуются в responses.
requests.payload.<rule>[].models[].headersobject{}Обязательные шаблоны заголовков запроса. Значения поддерживают *.
requests.payload.<rule>[].models[].match / not-matchobject[][]Условия JSON path, которые должны равняться или не равняться заданным значениям.
requests.payload.<rule>[].models[].exist / not-existstring[][]JSON paths, которые должны существовать и быть не null либо отсутствовать или быть null.
requests.payload.default[].params / override[].paramsobject{}JSON path к значению.
requests.payload.default-raw[].params / override-raw[].paramsobject{}JSON path к raw JSON.
requests.payload.filter[].paramsstring[][]JSON paths для удаления.

Старый макет ​

Старые файлы работают до успешной записи v8. Чтобы снова использовать старое поле в смешанном файле, сначала удалите соответствующее поле v8.

Старое полеv8
host, port, trusted-proxies, tls, commercial-mode, discoveryserver.*
remote-managementmanagement
список строк api-keysaccess.api-keys
credential-concurrency, credential-in-flightcredentials.concurrency, credentials.in-flight
force-model-prefixrouting.force-model-prefix
request-retry, max-retry-credentials, max-retry-intervalrouting.retry.*
disable-cooling, save-cooldown-status, transient-error-cooldown-secondsrouting.cooldown.*
proxy-url, passthrough-headers, nonstream-keepalive-interval, streaming, payloadrequests.*
auth-dir, auth-auto-refresh-workersoauth.auth-dir, oauth.auth-auto-refresh-workers
oauth-model-alias, oauth-excluded-models, oauth-request-scoped-errorsoauth.model-alias, oauth.excluded-models, oauth.request-scoped-errors
ws-authoauth.providers.aistudio.ws-auth
codex, codex-header-defaultsoauth.providers.codex, включая header-defaults
claude, claude-code, disable-claude-cloak-mode, claude-header-defaultsoauth.providers.claude
antigravity, antigravity-signature-cache-enabled, antigravity-signature-bypass-strictoauth.providers.antigravity
quota-exceeded.antigravity-creditsoauth.providers.antigravity.antigravity-credits
xai, devinoauth.providers.xai, oauth.providers.devin
disable-image-generation, gpt-image-2-base-model, video-result-auth-cache-ttlmultimedia.*
debug, logging-to-file, logs-max-total-size-mb, error-logs-max-files, request-logobservability.logs.*
usage-statistics-enabled, redis-usage-queue-retention-secondsobservability.usage.*
pprofobservability.pprof
gemini-api-key, interactions-api-key, vertex-api-key, codex-api-key, claude-api-key, xai-api-key, meta-api-keyгруппы api-keys.<provider> со списком keys
openai-compatibility и api-key-entriesapi-keys.openai-compatibility и keys

credentials.concurrency и credentials.in-flight — контракты, управляемые Home. В режиме Home побеждает синтезированная конфигурация Home, а локальные значения игнорируются.

У quota-exceeded.switch-project и quota-exceeded.switch-preview-model нет аналога v8. Они остаются доступными для чтения и изменения в старых файлах и через /v0/management, но исключены из шаблона v8.

Лицензия MIT.