Qwen Code
CLI-агент (форк Gemini CLI). Кастомный шлюз задаётся массивом `modelProviders` в `~/.qwen/settings.json`: несколько моделей, у каждой свой `id` и `baseUrl`. Клю
Что нужно
Протокол
OpenAI-совместимый (authType / протокол openai). baseUrl: https://www.llmmart.ru/api/v1.
Конфиг
~/.qwen/settings.json:
{
"modelProviders": {
"openai": [
{
"id": "gpt-4o-mini",
"name": "GPT-4o mini (LLM Mart)",
"envKey": "LLM_MART_API_KEY",
"baseUrl": "https://www.llmmart.ru/api/v1"
},
{
"id": "anthropic/claude-sonnet-5",
"name": "Claude Sonnet 5 (LLM Mart)",
"envKey": "LLM_MART_API_KEY",
"baseUrl": "https://www.llmmart.ru/api/v1"
},
{
"id": "anthropic/claude-opus-4.6",
"name": "Claude Opus 4.6 (LLM Mart)",
"envKey": "LLM_MART_API_KEY",
"baseUrl": "https://www.llmmart.ru/api/v1"
}
]
}
}export LLM_MART_API_KEY="sk-…"Переключение: /model. Уникальность записи — пара id + baseUrl.
Альтернатива без массива: OPENAI_API_KEY, OPENAI_BASE_URL=https://www.llmmart.ru/api/v1, OPENAI_MODEL=<slug> — одна модель на сессию. Для нескольких id используйте modelProviders.
Если заводите свой ключ провайдера (не openai), добавьте providerProtocol: { "llmmart": "openai" }, иначе запись пропустится.
Диалог /auth → Third-party / Custom тоже умеет OpenAI-compatible; после первого входа всё равно проверьте, что в settings попал baseUrl со /v1.
Типичные ошибки
| Симптом | Что проверить |
|---|---|
Моделей нет в /model | массив, не обёртка { "models": [...] }; для кастомного id есть providerProtocol |
| 401 | export переменной из envKey |
| 404 | id = slug каталога; baseUrl со /v1 |
| Ключ «зашит» в JSON | Qwen Code ключи из settings не читает |
Проверено: 2026-09-01 по Model Providers Qwen Code.
Что дальше
Gemini CLI
Официальный Gemini CLI от Google говорит с Gemini API, не с OpenAI Chat Completions. Стабильного режима «подставь Base URL LLM Mart и Model ID» в нём нет: заявк
OpenCode
Терминальный AI-агент. Кастомный OpenAI-совместимый провайдер в `opencode.json` не работает без блока `models`: без перечисления id провайдер молча игнорируется