# Настройка Qwen Code

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

## Кратко

| Параметр | Значение |
|---|---|
| Доступные модели | Claude ✅ (описывайте его на стороне Anthropic) · GPT ✅ · китайские модели ✅ (описывайте их на стороне OpenAI-совместимой) · Gemini ❌ — QCode не предлагает семейство Gemini, используйте Claude, GPT или китайскую модель |
| Протокол и базовый URL | Anthropic: `https://api.qcode.cc/api` · OpenAI-совместимый: `https://api.qcode.cc/openai/v1` |
| Где настраивать | Параметр `modelProviders` в файле `~/.qwen/settings.json`; в самой сессии — `/auth`, `/model`, `/doctor` |
| Официальная документация | [Аутентификация](https://qwenlm.github.io/qwen-code-docs/en/users/configuration/auth/) · [Справочник настроек](https://qwenlm.github.io/qwen-code-docs/en/users/configuration/settings/) |

Qwen Code — это консольный ассистент для работы с кодом с открытым исходным кодом, он публикуется в npm под именем `@qwen-code/qwen-code`; страница проверена на версии `0.25.1`. В документации подключение «сторонних провайдеров, таких как OpenAI, Anthropic, Google, Azure OpenAI, OpenRouter, Requesty, ModelScope, или собственного конечного узла» отнесено к аутентификации по API-ключу — именно этот путь использует QCode. Через `modelProviders` объявляется, какие модели доступны и как к ним подключаться, а переключение между ними во время работы выполняется командой `/model`.

## Какой протокол

| Какие модели нужны | Ключ `modelProviders` (auth type) | Вводимый базовый URL |
|---|---|---|
| Claude | `anthropic` | `https://api.qcode.cc/api` |
| GPT и китайские модели | `openai` | `https://api.qcode.cc/openai/v1` |

В Qwen Code протокол задаётся ключом провайдера: для встроенных провайдеров ключ должен быть допустимым auth type (`openai`, `anthropic`, `gemini`, `vertex-ai`). Каждая модель однозначно определяется своим протоколом, `id` и настроенным `baseUrl`.

🔴 **Никогда не вызывайте Claude через OpenAI-совместимый базовый URL.** Конечная точка OpenAI у QCode отклоняет идентификаторы моделей Claude; в ответе читается `Model '<id>' is not available on this endpoint`. Claude настраивается на стороне `anthropic` с базовым URL `https://api.qcode.cc/api`. Идентификаторы GPT на стороне Anthropic тоже не работают.

Вводите базовый URL ровно как в таблице: **без слэша на конце** и не помещайте в поле путь запроса — указывается база, а не `.../v1/messages` или `.../chat/completions`. Если вы используете региональный узел, базовый URL Anthropic становится `https://asia.qcode.cc/api` или `https://us.qcode.cc/api`; ключ остаётся тот же.

## Установка

Для установки через npm требуется Node.js 22 или новее:

```bash
npm install -g @qwen-code/qwen-code@latest
```

На macOS и Linux можно вместо этого использовать Homebrew:

```bash
brew install qwen-code
```

Затем откройте терминал в каталоге проекта и запустите CLI:

```bash
cd /path/to/your-project
qwen
```

На стартовом экране введите `/help`, чтобы увидеть список команд.

## Настройка Claude (сторона Anthropic)

Рекомендуемый документацией путь — один файл `~/.qwen/settings.json`. Все имена полей ниже взяты из документации дословно: `modelProviders` содержит по одному массиву на auth type, каждой модели нужен `id`, а `name`, `baseUrl` и `generationConfig` необязательны; `envKey` указывает имя переменной окружения, в которой лежит ключ доступа.

```json
{
  "modelProviders": {
    "anthropic": [
      {
        "id": "claude-sonnet-5",
        "name": "claude-sonnet-5",
        "envKey": "ANTHROPIC_API_KEY",
        "baseUrl": "https://api.qcode.cc/api"
      }
    ]
  },
  "env": {
    "ANTHROPIC_API_KEY": "cr_your_qcode_key"
  },
  "security": {
    "auth": {
      "selectedType": "anthropic"
    }
  },
  "model": {
    "name": "claude-sonnet-5"
  }
}
```

Назначение четырёх блоков — в формулировках официальной таблицы: `modelProviders` объявляет, какие модели доступны и как к ним подключаться; `env` хранит API-ключи прямо в `settings.json` как запасной вариант, при этом `export` в оболочке и файлы `.env` имеют приоритет; `security.auth.selectedType` указывает Qwen Code, какой протокол использовать при запуске; `model.name` — модель, активируемая по умолчанию, и она должна совпадать с одним из ваших значений `id`.

Для протокола Anthropic есть и вариант с переменными окружения — Qwen Code перечисляет для него `ANTHROPIC_API_KEY`, `ANTHROPIC_BASE_URL` и `ANTHROPIC_MODEL`:

```bash
export ANTHROPIC_API_KEY="cr_your_qcode_key"
export ANTHROPIC_BASE_URL="https://api.qcode.cc/api"
export ANTHROPIC_MODEL="claude-sonnet-5"
qwen
```

Можно также выполнить `/auth` внутри CLI: третий пункт верхнего меню, **Custom Provider**, в документации описан как способ вручную подключиться «к локальному серверу, прокси или неподдерживаемому провайдеру» и поддерживает совместимые конечные точки OpenAI, Anthropic, Gemini и другие.

> **О пути на стороне Anthropic.** В официальных примерах Anthropic `baseUrl` дописан до суффикса `/v1` (`"baseUrl": "https://api.anthropic.com/v1"`), а то, как конечная точка Anthropic строит путь запроса из базы, в документации не указано. Поэтому страница приводит только значение, задокументированное для QCode: в поле базы пишите `https://api.qcode.cc/api` и ничего больше. Каких-либо проверенных выводов об ином написании мы не утверждаем.

## Настройка GPT и китайских моделей (OpenAI-совместимая сторона)

В документации auth type `openai` описан как покрывающий не только собственный API OpenAI, но и любой OpenAI-совместимый конечный узел, включая агрегированных провайдеров, — это и есть конечная точка, на которой QCode отдаёт GPT и китайские модели. Официальное правило для размещённого шлюза гласит: в `baseUrl` указывайте корень `/v1`, а не полный путь chat, поскольку сам путь запроса добавляет SDK. `https://api.qcode.cc/openai/v1` — это и есть такой корень.

```json
{
  "modelProviders": {
    "openai": [
      {
        "id": "gpt-6.1-sol",
        "name": "gpt-6.1-sol",
        "envKey": "OPENAI_API_KEY",
        "baseUrl": "https://api.qcode.cc/openai/v1"
      },
      {
        "id": "deepseek-v4.1-flash",
        "name": "deepseek-v4.1-flash",
        "envKey": "OPENAI_API_KEY",
        "baseUrl": "https://api.qcode.cc/openai/v1"
      }
    ]
  },
  "env": {
    "OPENAI_API_KEY": "cr_your_qcode_key"
  },
  "security": {
    "auth": {
      "selectedType": "openai"
    }
  },
  "model": {
    "name": "gpt-6.1-sol"
  }
}
```

Значения auth type, отличные от дефолтного, показывает только `/model`, поэтому добавляйте нужные модели в массив и выбирайте их там. Идентификаторы моделей берите из каталога QCode: `gpt-6.1-sol`, `gpt-6-sol`, `gpt-5.6-terra` или китайский идентификатор вроде [`glm-5.3`](/docs/usage/cn-models), [`deepseek-v4.1-flash`](/docs/usage/cn-models), `qwen3.8-max`.

Вариант с переменными окружения использует три переменные, которые Qwen Code указывает для этого протокола:

```bash
export OPENAI_API_KEY="cr_your_qcode_key"
export OPENAI_BASE_URL="https://api.qcode.cc/openai/v1"
export OPENAI_MODEL="gpt-6.1-sol"
qwen
```

## Проверка

Спросите у самого CLI, что он видит:

```text
/doctor
/model
```

`/doctor` — задокументированный способ в любой момент проверить текущую конфигурацию; в таблице команд быстрого старта его строка описана как «Check current authentication and environment». `/model` открывает список объявленных вами элементов, и перезапуск не требуется: правки `modelProviders` в `settings.json` подхватываются запущенной интерактивной сессией, но новые элементы появятся после повторного открытия `/model`.

Затем проверьте саму конечную точку независимо от CLI. В запросе Anthropic Messages ключ передаётся в `x-api-key`, а версия — в `anthropic-version`:

```bash
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"}]}'
```

Страница собрана по документации, тестового ключа у нас нет, поэтому никакого ответа на этот запрос здесь не утверждается. Если curl работает, а CLI — нет, проблема в вашем `~/.qwen/settings.json`; если не работает curl, проверьте базовый URL и ключ, а затем действуйте по [руководству по устранению неполадок](/docs/reference/troubleshooting).

## Известные ограничения и неполадки

| Симптом | Что это значит | Что делать |
|---|---|---|
| Идентификатор Claude не работает на OpenAI-совместимом базовом URL | QCode отдаёт Claude только по протоколу Anthropic | Перенесите модель в массив `anthropic` и поставьте `baseUrl` равным `https://api.qcode.cc/api` |
| В конфиге остались `security.auth.apiKey` или `security.auth.baseUrl` | Обе настройки помечены в документации как Deprecated, с указанием мигрировать на `modelProviders` (для первой — через `envKey`) | Удалите их и объявите модель в `modelProviders` |
| В элементе Anthropic указан `wireApi` | Документация относит это к ошибкам конфигурации: `wireApi` — поле стороны OpenAI | Уберите его из элементов Anthropic |
| `extra_body` ни на что не влияет | Он поддерживается только для OpenAI-совместимых провайдеров `openai` и `qwen-oauth`; для Anthropic и Gemini, по тексту документации, игнорируется | для моделей provider документация определяет его в `modelProviders[].generationConfig.extra_body` |
| `model.name` не применяется | Значение должно совпадать с одним из `id` в ваших `modelProviders` | Используйте объявленный `id` или выберите модель через `/model` |
| Нужной модели нет в списке | Auth type, отличные от значения по умолчанию, показывает только `/model`, а модели Anthropic обязаны быть объявлены в `modelProviders` | Добавьте элемент в `~/.qwen/settings.json`, затем снова откройте `/model` |

Дополнительно:

- **Gemini**: сам Qwen Code позволяет настроить auth type `gemini`, но QCode не предлагает семейство Gemini — используйте [Claude, GPT или китайскую модель](/docs/usage/cn-models).
- **Недоступные модели**: QCode не предлагает `gpt-6-luna` и `gpt-5.6-luna`; выберите другую модель GPT, например `gpt-6.1-sol`, `gpt-6-sol` или `gpt-5.6-terra`. Какую модель для какой задачи брать — см. [Выбор модели](/docs/usage/model-selection).
- **Нужен ли перезапуск**: изменения `modelProviders` подхватывает запущенная сессия, а `providerProtocol` читается один раз при запуске и требует перезапуска.
- **Ключ через флаги CLI на этой странице не задаётся**: две официальные страницы пишут флаг базового URL OpenAI по-разному, поэтому задавайте учётные данные только через `~/.qwen/settings.json` или переменные окружения.
- **Аккуратность базового URL**: без слэша на конце и без пути запроса в поле `baseUrl`.
- **Стоимость**: оплата по токенам; цены для каждой модели перечислены на [qcode.cc/models](https://qcode.cc/models). Суммы на этой странице не приводятся.

## Ссылки по теме

- [Конечные точки и пути API](/docs/getting-started/endpoints-and-api-paths) — какой протокол обслуживает какое семейство моделей
- [Совместимость инструментов](/docs/ide/tool-compatibility) — другие инструменты, говорящие по Anthropic или OpenAI-совместимому протоколу
- [Настройка OpenCode](/docs/ide/opencode) — ещё один консольный CLI на тех же двух конечных точках
- [Китайские модели](/docs/usage/cn-models)
- [Выбор модели](/docs/usage/model-selection)
- [Устранение неполадок](/docs/reference/troubleshooting)