Интеграция Qwen Code
Подключите Qwen Code CLI к AITUNNEL и получите доступ к Qwen3-Coder и другим моделям прямо в терминале — без VPN и аккаунта Alibaba Cloud.
Qwen Code — open-source агентный CLI от команды QwenLM, форк Google Gemini CLI, адаптированный под модели Qwen3-Coder. Поддерживает интерактивный режим, headless-запуск для скриптов и интеграцию с VS Code, Zed и JetBrains.
AITUNNEL предоставляет OpenAI-совместимый API, поэтому Qwen Code работает через него без дополнительного прокси.
Рекомендуемая модель
Для лучшего опыта используйте qwen/qwen3-coder — она специально обучена под агентные задачи программирования. Через AITUNNEL также доступны другие модели, совместимые с OpenAI API (см. список моделей).
Быстрый старт
Шаг 1: Установка Qwen Code
Требования
Требуется Node.js 20 или новее.
npm install -g @qwen-code/qwen-code@latestbrew install qwen-codeПроверьте установку:
qwen --versionШаг 2: Подключение к AITUNNEL
Qwen Code поддерживает несколько способов настройки. Выберите удобный:
- Через переменные окружения — быстрый старт, подходит для одноразового запуска
- Через
.qwen/.env— чистый способ хранить ключ отдельно от конфига - Через
~/.qwen/settings.json— рекомендуемый способ для постоянного использования - Через
.qwen/settings.jsonв проекте — если нужно разные настройки для разных проектов
Порядок приоритета
Qwen Code применяет настройки в следующем порядке (каждый следующий пункт переопределяет предыдущий): значения по умолчанию → system defaults → ~/.qwen/settings.json → .qwen/settings.json в проекте → system settings → переменные окружения → аргументы командной строки.
Способ 1: Переменные окружения
Самый простой способ — экспортировать переменные в текущую сессию оболочки:
export OPENAI_API_KEY="sk-aitunnel-xxx"
export OPENAI_BASE_URL="https://api.aitunnel.ru/v1"
export OPENAI_MODEL="qwen/qwen3-coder"
qwenЗамените sk-aitunnel-xxx на ваш реальный API ключ AITUNNEL.
Постоянство
Чтобы переменные сохранялись между сессиями, добавьте эти строки в ваш профиль оболочки (~/.bashrc, ~/.zshrc, или ~/.config/fish/config.fish).
Безопасность
Не коммитьте API ключи в систему контроля версий. Храните их в переменных окружения, .env файле вне репозитория или в системном менеджере секретов.
Способ 2: Файл .qwen/.env
Qwen Code автоматически подгружает переменные из .env файлов. Порядок поиска:
.qwen/.envв текущей директории (и всех родительских до корня ФС).envв текущей директории (и всех родительских)~/.qwen/.envв домашней директории~/.env
Загружается только первый найденный файл — значения не объединяются. Переменные из .qwen/.env никогда не исключаются фильтром (в отличие от обычного .env, из которого отсекаются DEBUG и другие служебные), поэтому это рекомендованное место для API-ключей.
Создайте ~/.qwen/.env:
OPENAI_API_KEY=sk-aitunnel-xxx
OPENAI_BASE_URL=https://api.aitunnel.ru/v1
OPENAI_MODEL=qwen/qwen3-coderПосле этого достаточно просто запустить qwen — ключ подхватится автоматически, ничего экспортировать в shell не нужно.
Проектные ключи
Если вам нужны разные ключи для разных проектов (например, рабочий и личный), положите .qwen/.env в корень проекта и добавьте его в .gitignore. Проектный .qwen/.env имеет приоритет над глобальным ~/.qwen/.env.
Способ 3: Глобальный конфиг (рекомендуется)
Официальная документация Qwen Code рекомендует настраивать провайдеров через файл ~/.qwen/settings.json. Это позволяет держать несколько моделей одновременно и переключаться между ними командой /model прямо в интерактивной сессии.
Создайте (или отредактируйте) файл ~/.qwen/settings.json:
{
"modelProviders": {
"openai": [
{
"id": "qwen/qwen3-coder",
"name": "Qwen3-Coder (AITUNNEL)",
"baseUrl": "https://api.aitunnel.ru/v1",
"description": "Qwen3-Coder через AITUNNEL",
"envKey": "AITUNNEL_API_KEY"
}
]
},
"env": {
"AITUNNEL_API_KEY": "sk-aitunnel-xxx"
},
"security": {
"auth": {
"selectedType": "openai"
}
},
"model": {
"name": "qwen/qwen3-coder"
}
}Замените sk-aitunnel-xxx на ваш реальный ключ.
Что делает каждое поле:
| Поле | Описание |
|---|---|
modelProviders.openai[].id | ID модели, который отправляется в API (см. список моделей) |
modelProviders.openai[].baseUrl | Базовый URL AITUNNEL: https://api.aitunnel.ru/v1 |
modelProviders.openai[].envKey | Имя переменной окружения, в которой хранится ключ |
env | Fallback-хранилище ключей (низший приоритет; лучше использовать export или .env) |
security.auth.selectedType | Протокол при запуске — для AITUNNEL всегда openai |
model.name | Модель по умолчанию при старте Qwen Code |
Приоритет ключей
Ключ из export в оболочке или из .qwen/.env имеет более высокий приоритет, чем значение в env внутри settings.json. Рекомендуется задавать ключ через .qwen/.env или export AITUNNEL_API_KEY="sk-aitunnel-xxx" в ~/.bashrc / ~/.zshrc, а в settings.json хранить только структуру провайдеров.
Подстановка переменных в settings.json
Строковые значения в settings.json могут ссылаться на переменные окружения через синтаксис $VAR_NAME или ${VAR_NAME} — они автоматически раскрываются при загрузке. Это удобно, если вы хотите полностью вынести ключи за пределы JSON-конфига.
Полный порядок приоритета источников API-ключей
| Приоритет | Источник | Поведение |
|---|---|---|
| 1 (высший) | CLI-флаг --openai-api-key | Всегда перекрывает остальные |
| 2 | Shell-переменная (export, inline) | Перекрывает .env и settings.json → env |
| 3 | .env файл (первый найденный по порядку поиска) | Применяется, если переменная не задана в shell |
| 4 (низший) | env в settings.json | Применяется, если не задано нигде выше |
Способ 4: Конфиг на уровне проекта
Если вам нужны разные настройки для разных проектов, создайте .qwen/settings.json в корне проекта. Формат точно такой же, как у глобального конфига; настройки проекта переопределяют пользовательские.
Это удобно, чтобы делиться конфигурацией с командой через git (не забудьте добавить .qwen/settings.json или только секцию с ключом в .gitignore, если храните ключ в env).
Шаг 3: Запуск сессии
Перейдите в директорию проекта и запустите CLI:
cd /path/to/your/project
qwenПри первом запуске Qwen Code может спросить способ аутентификации. Введите /auth и выберите OpenAI — через этот меню AITUNNEL подключается корректно. Любой запрос дальше будет маршрутизироваться через AITUNNEL.
Команда qwen auth и API-ключи
Если вы запустите qwen auth (без слеша, как отдельную CLI-команду), откроется интерактивное меню, но в нём будут только Qwen OAuth и Alibaba Cloud Coding Plan. Для работы с API-ключом AITUNNEL используйте /auth внутри сессии или пропишите "security": { "auth": { "selectedType": "openai" } } в settings.json.
Шаг 4: Проверка
В интерактивной сессии выполните:
/statsБудут показаны текущая модель и провайдер. Отправьте любой запрос, например «Объясни структуру этого проекта», и проверьте панель активности AITUNNEL — запросы должны появляться в реальном времени.
Несколько моделей
Qwen Code позволяет держать несколько моделей в одном конфиге и переключаться между ними командой /model:
{
"modelProviders": {
"openai": [
{
"id": "qwen/qwen3-coder",
"name": "Qwen3-Coder (AITUNNEL)",
"baseUrl": "https://api.aitunnel.ru/v1",
"envKey": "AITUNNEL_API_KEY"
},
{
"id": "claude-sonnet-4-5",
"name": "Claude Sonnet 4.5 (AITUNNEL)",
"baseUrl": "https://api.aitunnel.ru/v1",
"envKey": "AITUNNEL_API_KEY"
},
{
"id": "gpt-5.2-pro",
"name": "GPT-5.2 Pro (AITUNNEL)",
"baseUrl": "https://api.aitunnel.ru/v1",
"envKey": "AITUNNEL_API_KEY"
},
{
"id": "moonshotai/kimi-k2",
"name": "Kimi K2 (AITUNNEL)",
"baseUrl": "https://api.aitunnel.ru/v1",
"envKey": "AITUNNEL_API_KEY"
}
]
},
"security": {
"auth": {
"selectedType": "openai"
}
},
"model": {
"name": "qwen/qwen3-coder"
}
}Затем в сессии:
/modelПоявится список моделей, между которыми можно переключаться на лету.
Один ключ на всё
AITUNNEL использует один baseUrl и один API ключ для всех моделей — не нужно настраивать отдельных провайдеров для Anthropic, OpenAI и Google.
Быстрая модель для подсказок (fastModel)
Qwen Code использует отдельную «быструю» модель для генерации follow-up suggestions и спекулятивных запросов. По умолчанию для этого используется основная модель, но можно задать более дешёвую, чтобы снизить задержки и расходы:
{
"model": {
"name": "qwen/qwen3-coder"
},
"fastModel": "gemini-2.5-flash"
}Выберите любую быструю модель из списка AITUNNEL — например, gemini-2.5-flash, gpt-5-mini или deepseek-chat. Переключить на лету можно командой /model --fast в сессии.
Файл контекста QWEN.md
Qwen Code поддерживает иерархическую «память» через файлы QWEN.md (аналог CLAUDE.md или AGENTS.md). Положите QWEN.md в корень проекта — его содержимое автоматически добавится в системный промпт при каждом запросе.
Пример QWEN.md:
# Проект: AITUNNEL Next.js Frontend
## Общие правила
- TypeScript 5.0+, Node.js 20+
- Все новые функции и классы должны иметь JSDoc комментарии
- Используй строгое равенство (`===` / `!==`)
## Стиль кода
- 2 пробела для отступов
- Компоненты React в PascalCase, хуки — в camelCase с префиксом `use`
## Запрещено
- Не добавлять внешние зависимости без явной необходимостиТакже работает глобальный ~/.qwen/QWEN.md — используйте его для личных предпочтений, которые применяются ко всем проектам. Управлять контекстом можно через /memory show и /memory refresh.
Полезные CLI-флаги
Основные параметры командной строки:
qwen --model qwen/qwen3-coder # модель для текущей сессии
qwen --openai-api-key sk-aitunnel-xxx # ключ прямо через флаг (высший приоритет)
qwen -p "Сгенерируй README для проекта" # headless (одноразовый) запрос
qwen --approval-mode auto-edit # авто-аппрув редактирования файлов
qwen --approval-mode yolo # авто-аппрув всех действий (осторожно!)
qwen --allowed-tools "Shell(git status)" # безопасный whitelist для Shell
qwen --include-directories ../shared-lib # подтянуть дополнительные директории
qwen -o json -p "..." # структурированный JSON-выводРежимы подтверждения (--approval-mode):
plan— только анализ, без измененийdefault— спрашивать перед каждой записью в файл или shell-командойauto-edit— авто-аппрув редактирования, но shell требует подтвержденияyolo— полный автомат (включает sandbox по умолчанию)
Headless-режим для скриптов
Qwen Code можно запускать без интерактивного UI — удобно для CI/CD и автоматизации:
export OPENAI_API_KEY="sk-aitunnel-xxx"
export OPENAI_BASE_URL="https://api.aitunnel.ru/v1"
export OPENAI_MODEL="qwen/qwen3-coder"
qwen -p "Сгенерируй unit-тесты для src/utils.ts"Подробнее — в официальной документации Headless mode.
Полезные команды
Внутри сессии:
/help— список команд/auth— сменить способ аутентификации (здесь доступен OpenAI для AITUNNEL)/model— переключить модель/stats— информация о текущей сессии/clear— очистить историю диалога/compress— сжать историю для экономии токенов/memory show//memory refresh— показать / перезагрузитьQWEN.md/permissions— управление разрешениями на инструменты/exit— выйти
В терминале (до запуска сессии):
qwen auth status— показать текущую конфигурацию аутентификацииqwen --version— версия CLIqwen --help— полный список CLI-флагов
Устранение неполадок
401/403 при запросе
- Проверьте, что ключ действителен в личном кабинете
- Убедитесь, что баланс на счету положительный
OPENAI_BASE_URLдолжен бытьhttps://api.aitunnel.ru/v1(с/v1, без слеша в конце)- Убедитесь, что в ключе нет лишних пробелов или переносов строк
Qwen Code пытается аутентифицироваться через Qwen OAuth
Если CLI открывает браузер для входа в qwen.ai или просит выбрать регион Alibaba Cloud, значит выбран не тот протокол. Решения:
Запустите
qwen auth status— проверьте, какойselectedTypeактивенВнутри сессии выполните
/authи выберите OpenAI (именно через/auth, а не через CLIqwen auth— там OpenAI не отображается)Или пропишите в
~/.qwen/settings.json:json{ "security": { "auth": { "selectedType": "openai" } } }
Модель не найдена / 404
Проверьте актуальный ID модели на странице моделей AITUNNEL. Например, должно быть именно qwen/qwen3-coder, а не qwen3-coder или qwen-coder.
Ошибки использования инструментов
Qwen Code активно использует tool calling для чтения файлов и выполнения команд. Убедитесь, что выбранная модель поддерживает вызов инструментов. Qwen3-Coder, Claude, GPT и Gemini поддерживают его из коробки.
Ошибки лимита контекста
Для больших проектов используйте модели с расширенным контекстным окном. Также помогает команда /compress — она сжимает историю диалога.