Настройка Kimi Code CLI

Подключение QCode.cc к Kimi Code CLI в ~/.kimi-code/config.toml: type anthropic для Claude, type openai для GPT и китайских моделей

Обновлено 2026-10-14

Нужен API-ключ? Зарегистрироваться →Эндпоинты и Base URL →

Содержание

Последняя проверка: 2026-10-13 · 📄 По официальной документации (Kimi Code CLI 2.1.1)

Кратко

Параметр Значение
Доступные модели Claude ✅ (type = "anthropic") · GPT ✅ · Китайские модели ✅ (type = "openai") · Gemini ❌ (QCode не предоставляет семейство Gemini — используйте Claude, GPT или китайскую модель)
Протокол и Base URL Anthropic Messages: https://api.qcode.cc/api · OpenAI Chat Completions: https://api.qcode.cc/openai/v1
Где настраивать ~/.kimi-code/config.toml — по одной таблице [providers.<name>] на протокол и по записи [models.<alias>] на модель
Официальная документация moonshotai.github.io/kimi-code

Kimi Code CLI — это агент для программирования от Moonshot AI, работающий в терминале. Документация описывает три способа получить модель: вход в управляемый сервис Kimi Code в один клик, «connecting Claude with an Anthropic API key, or connecting third-party inference services via the OpenAI-compatible protocol». Последние два — ровно те две конечные точки, которые открывает QCode, поэтому одним ключом QCode закрываются Claude, GPT и китайские модели в одном и том же инструменте. Актуальный на момент подготовки страницы выпуск — 2.1.1 (2026-09-24).

Какой протокол выбрать

Поле type в таблице [providers.<name>] определяет, какая реализация протокола будет использована. Официальный справочник перечисляет шесть значений — kimi, anthropic, openai, openai_responses, google-genai, vertexai, — а вам нужны два.

Нужные модели type base_url
claude-sonnet-5, claude-opus-5, claude-haiku-5-5 anthropic https://api.qcode.cc/api
gpt-6.1-sol, gpt-6-sol и китайские семейства openai https://api.qcode.cc/openai/v1

🔴 Никогда не направляйте модели Claude на OpenAI-совместимую конечную точку. QCode отдаёт семейство Claude только через Anthropic Messages; идентификатор claude-*, отправленный на https://api.qcode.cc/openai/v1, будет отклонён. Две конечные точки не взаимозаменяемы — см. Конечные точки и пути API.

Base URL вводите ровно как в таблице: остановитесь на /api или /openai/v1, не дописывайте /v1/messages и /chat/completions и не оставляйте слэш в конце.

Установка

Официально доступны два пути: установочный скрипт (рекомендуется, не требует заранее установленного Node.js) и глобальная установка через npm.

# macOS / Linux
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash

# Windows (PowerShell)
irm https://code.kimi.com/kimi-code/install.ps1 | iex

# npm — сначала проверьте версию: node --version
npm install -g @moonshot-ai/kimi-code

Для пути через npm требуется Node.js 22.19.0 или новее. Скрипт сам загружает последний выпуск, проверяет контрольную сумму и ставит исполняемый файл kimi в PATH. Убедившись, что команда доступна, перейдите в каталог проекта и запустите kimi, чтобы открыть интерактивный интерфейс.

kimi --version
cd your-project
kimi

Настройка Claude (type = "anthropic")

Учётные данные читаются только из файла конфигурации. Документация говорит прямо: CLI «does not fall back to shell environment variables automatically: running export KIMI_API_KEY in the terminal does not give any provider its key». То есть ключ либо пишется в файл, либо указывается api_key_env с именем переменной, которую CLI перечитывает на каждый запрос.

# ~/.kimi-code/config.toml
default_model = "claude-sonnet-5"

[providers.qcode]
type = "anthropic"
base_url = "https://api.qcode.cc/api"
api_key_env = "QCODE_API_KEY"

[models."claude-sonnet-5"]
provider = "qcode"
model = "claude-sonnet-5"
max_context_size = 262144
export QCODE_API_KEY=cr_your_qcode_key

qcode — просто имя провайдера, которое вы придумали; каждая запись [models.<alias>] ссылается на него через обязательное поле provider. Если переменную окружения заводить не хочется, замените api_key_env на api_key = "cr_your_qcode_key". Документация отмечает, что это значение хранится в файле открытым текстом, а api_key и api_key_env взаимоисключающи — задавать нужно ровно одно.

Поле Таблица Что указывать
type providers anthropic — провайдер, описанный как «For connecting to the Claude API»
base_url providers https://api.qcode.cc/api; без значения следует умолчанию Anthropic SDK
api_key / api_key_env providers сам ключ или имя переменной, где он лежит
custom_headers providers необязательная таблица дополнительных HTTP-заголовков для каждого запроса
provider models обязательно — имя провайдера, определённое выше
model models обязательно — идентификатор, отправляемый на сервер, например claude-sonnet-5
max_context_size models обязательно, не менее 1 токена — 262144 в примере выше лишь заглушка; укажите длину контекста той модели, которую реально используете
max_output_size models необязательно, ограничение вывода, соответствует max_tokens; сейчас его читает только провайдер anthropic

Материковый Китай: Anthropic-точка отвечает также на https://asia.qcode.cc/api и https://us.qcode.cc/api — ключ тот же, меняется только хост в base_url. Флаги возможностей: для стандартных имён моделей Claude vision, tool use и Thinking включаются сами; модель, которую CLI не знает, требует явного capabilities в [models.<alias>] (thinking, image_in, tool_use и т. д.), и эти теги только добавляются, но не удаляются.

Настройка GPT и китайских моделей (type = "openai")

Тот же файл, другая конечная точка. Про тип openai в документации сказано: «For connecting to the OpenAI Chat Completions protocol, as well as any third-party service compatible with that protocol (override base_url as needed)». Встроенное значение — https://api.openai.com/v1, поэтому именно переопределение base_url превращает это соединение из OpenAI в QCode.

[providers.qcode-openai]
type = "openai"
base_url = "https://api.qcode.cc/openai/v1"
api_key_env = "QCODE_API_KEY"

[models."gpt-6.1-sol"]
provider = "qcode-openai"
model = "gpt-6.1-sol"
max_context_size = 262144

[models."deepseek-v4.1-flash"]
provider = "qcode-openai"
model = "deepseek-v4.1-flash"
max_context_size = 262144

[models."qwen3.8-max"]
provider = "qcode-openai"
model = "qwen3.8-max"
max_context_size = 262144
  • Алиасы с точкой берутся в кавычки. gpt-6.1-sol и qwen3.8-max нужно писать как [models."qwen3.8-max"]; иначе TOML прочитает точку как разделитель вложенных таблиц. Имена полей при этом всегда в snake_case (default_model, max_context_size).
  • Числа выше — условные значения для обязательного поля. Фактическую длину контекста берите из спецификации самой модели; оплата берётся за токены, цены по моделям — на qcode.cc/models.
  • Оба провайдера могут сосуществовать в одном конфиге. Модель на сессию задаётся флагом -m <алиас> (параметры запуска имеют приоритет над файлом, но только на время текущего запуска), а в TUI переключаются через /model. Значение default_model обязательно должно быть одним из определённых вами алиасов.
  • Вывод размышлений: для сторонних reasoning-моделей поле reasoning_content и подстановку reasoning_effort CLI обрабатывает сам; если ваш шлюз отдаёт это содержимое под нестандартным именем поля, задайте reasoning_key на алиасе модели.
  • Другие идентификаторы этой конечной точки — в разделе Китайские модели. Идентификаторы claude-* здесь не работают.

Проверка связи

Сначала проверьте файлы, не запуская TUI:

kimi doctor
kimi doctor config

kimi doctor выполняет «Validate config.toml and tui.toml without starting the TUI or modifying either file» и завершается кодом 0, когда все проверяемые файлы корректны или пропущены, и 1, если какой-то отсутствует или некорректен. Документированный охват проверки — только эти два файла; о том, что команда проверяет доступность конечной точки, в документации не сказано.

Посмотрите, что CLI действительно зарегистрировал:

kimi provider list

Затем введите /provider в TUI — откроется интерактивный provider manager, где настроенные провайдеры можно просматривать, добавлять и удалять. kimi provider — его неинтерактивный эквивалент для скриптов и CI.

В конце запросите конечную точку напрямую (подставьте свой ключ):

KEY="cr_your_qcode_key"
curl -X POST https://api.qcode.cc/api/v1/messages \
  -H "x-api-key: $KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":32,"messages":[{"role":"user","content":"ping"}]}'

Страница собрана по документации; запросы выше не выполнялись с настоящим ключом, поэтому никакой код состояния здесь не обещается. Читайте тело JSON-ошибки: по нему видно, ошибка ли это в пути, в ключе или в том, что модель недоступна на этой конечной точке.

У официально описанного пути через каталог сторонних сервисов есть короткая команда: kimi provider catalog add anthropic --api-key sk-ant-... --default-model claude-opus-4-7. Протокол, base URL и список моделей в ней берёт каталог, а --base-url позволяет переопределить адрес конечной точки (--default-model записывает default_model как <providerId>/<modelId>). Идентификатор в примере взят из публичного каталога, а не из QCode; числится ли там QCode, страница не проверяла, поэтому рекомендует вариант с TOML выше.

Диагностика и известные ограничения

Симптом Что говорит документация Что делать
Запуск падает с сообщением об отсутствии учётных данных Приоритет: api_key или api_key_env (ровно одно), затем ключ в таблице [providers.<name>.env], а если нет ничего — запуск завершается ошибкой Принятые имена ключей для этого типа — ANTHROPIC_API_KEY и ANTHROPIC_BASE_URL, их пишут в [providers.qcode.env]; это ключи файла конфигурации, а не поиск в shell. При обновлении /models провайдер с невыставленной или пустой переменной падает отдельно, не затрагивая остальные
export ANTHROPIC_API_KEY=… будто не срабатывает Переменные shell не являются общим запасным путём; в shell смотрят только api_key_env провайдера и семейство KIMI_MODEL_* Используйте api_key_env. KIMI_MODEL_PROVIDER_TYPE принимает kimi, anthropic, openai, а с выставленным KIMI_MODEL_NAME CLI собирает временный провайдер в памяти, который исчезает после перезапуска
Правки в файле не применяются Параметры запуска важнее файла и действуют только на текущую сессию, сам файл читается при старте Перезапустите kimi или выполните /reload, чтобы применить свежий config.toml
Ошибка конфигурации или неизвестный алиас, если алиас с точкой не взят в кавычки default_model обязан быть определён в models, а алиас с точкой без кавычек превращается во вложенную таблицу Возьмите алиас в кавычки: [models."qwen3.8-max"]
Ошибка 404 или неверный путь Документация не описывает, как именно сторонний шлюз собирает путь base_url заканчивается на /api (Claude) или /openai/v1 (GPT и китайские модели): без слэша на конце и без ручного пути API
Claude отвергается на провайдере openai — QCode не отдаёт семейство Claude на этой конечной точке; вернитесь к type = "anthropic"
Разным проектам нужны разные конечные точки Механизма проектной конфигурации нет — CLI читает единственный пользовательский файл, и куда бы вы его ни перенесли, файл называется config.toml Направьте KIMI_CODE_HOME на отдельный каталог данных для каждого проекта

Помимо самого инструмента:

  • Gemini: у Kimi Code есть тип google-genai для прямого доступа к API Google Gemini, но QCode не предоставляет семейство Gemini — используйте Claude, GPT или китайскую модель.
  • luna: QCode не предоставляет gpt-6-luna и gpt-5.6-luna; возьмите другой идентификатор GPT — gpt-6.1-sol, gpt-6-sol или gpt-5.6-terra.
  • max_output_size читает только провайдер anthropic, поэтому ограничение вывода на алиасе openai не действует.
  • Как подобрать модель под задачу — в разделе Выбор модели; если сбой не связан с этим инструментом, идите по шагам руководства по устранению неполадок.

Смежные документы

Начните с QCode

Один API-ключ для Claude Code, Codex и других инструментов; тарификация по токенам, цены каждой модели — на qcode.cc/models

Enterprise →