Qwen Code
Агентный CLI QwenLM через AITUNNEL: Custom Provider, ключ в рублях, VPN и Alibaba Cloud не нужны.
Qwen Code — форк Gemini CLI. Говорит на OpenAI Chat Completions — отдельный прокси не ставится. Через AITUNNEL в терминал попадают модели из каталога, не только Qwen.
Зачем через AITUNNEL
- Из России без VPN. Запросы идут на
api.aitunnel.ru. Аккаунт Alibaba Cloud и Qwen OAuth не нужны. - Оплата в рублях, бюджет на ключе, расход в панели.
- Не только Qwen.
qwen3-coder-next— основная для агентного кода. Claude, GPT, Gemini, Kimi — те жеbaseUrlи ключ. Слаг со слешем уходит в OpenRouter. - Запасные модели и провайдер. Если апстрим не ответил — fallback и выбор провайдера.
Быстрый старт
Официальный «самый простой» способ для API-ключа — один файл ~/.qwen/settings.json. После него qwen стартует без меню /auth.
Установка
Рекомендуемый установщик — standalone-архив. После установки перезапустите терминал, если
qwenещё нет в PATH. npm — запасной путь, нужен Node.js 22+. Инструкция Qwen Code.curl -fsSL https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.sh | bashПроверкаqwen --versionКлюч в ~/.qwen/.env
Создайте ключ в панели ключей. Положите его в
~/.qwen/.env— Qwen Code подхватит файл сам. Ключ в JSON не кладите: runtime читаетprocess.env[envKey], полеenvвsettings.json— самый низкий приоритет.~/.qwen/.envOPENAI_API_KEY=sk-aitunnel-xxxИщется первый файл:
.qwen/.envв проекте и родителях →.env→~/.qwen/.env→~/.env. Проектный.qwen/.envкладите в.gitignore.Файл ~/.qwen/settings.json
baseUrlзадаётся здесь. Не правьтеmodel.baseUrlвручную — пикер может тихо увести ту же модель на чужой эндпоинт.settings.json{ "modelProviders": { "openai": [ { "id": "qwen3-coder-next", "name": "Qwen3 Coder Next (AITUNNEL)", "baseUrl": "https://api.aitunnel.ru/v1", "envKey": "OPENAI_API_KEY" } ] }, "security": { "auth": { "selectedType": "openai" } }, "model": { "name": "qwen3-coder-next" } }envKey— имя переменной с ключом. Здесь этоOPENAI_API_KEYиз.qwen/.env.Запуск
Терминалcd /path/to/your/project qwenПроверка работы:
/stats, любой запрос, затем панель.
Другие способы отдать ключ
Custom Provider в /auth
То же самое интерактивно: qwen → /auth → Custom Provider. Подходит, если не хотите править JSON руками. Результат тот же: OpenAI-compatible эндпоинт AITUNNEL.
Переменные окружения
# ~/.zshrc, ~/.bashrc или ~/.config/fish/config.fish
export OPENAI_API_KEY="sk-aitunnel-xxx"Для headless без settings.json добавьте ещё OPENAI_BASE_URL и OPENAI_MODEL — см. пример ниже.
Конфиг проекта
.qwen/settings.json в корне проекта перекрывает глобальный. Формат тот же. modelProviders лучше держать в ~/.qwen/settings.json, чтобы не сливать user- и project-настройки. Не коммитьте ключ.
Приоритет ключа
| Приоритет | Источник |
|---|---|
| 1 (высший) | --openai-api-key |
| 2 | Переменная в shell |
| 3 | Первый найденный .env |
| 4 (низший) | env в settings.json |
Настройки в целом: дефолты → ~/.qwen/settings.json → .qwen/settings.json в проекте → env → флаги CLI.
Несколько моделей
Один baseUrl и один ключ на все модели:
{
"modelProviders": {
"openai": [
{
"id": "qwen3-coder-next",
"name": "Qwen3 Coder Next (AITUNNEL)",
"baseUrl": "https://api.aitunnel.ru/v1",
"envKey": "OPENAI_API_KEY"
},
{
"id": "claude-sonnet-4.6",
"name": "Claude Sonnet 4.6 (AITUNNEL)",
"baseUrl": "https://api.aitunnel.ru/v1",
"envKey": "OPENAI_API_KEY"
},
{
"id": "gpt-5.6-sol",
"name": "GPT-5.6 Sol (AITUNNEL)",
"baseUrl": "https://api.aitunnel.ru/v1",
"envKey": "OPENAI_API_KEY"
},
{
"id": "kimi-k2.7-code",
"name": "Kimi K2.7 Code (AITUNNEL)",
"baseUrl": "https://api.aitunnel.ru/v1",
"envKey": "OPENAI_API_KEY"
}
]
},
"security": {
"auth": { "selectedType": "openai" }
},
"model": {
"name": "qwen3-coder-next"
}
}В сессии — /model.
fastModel
Отдельная дешёвая модель для follow-up подсказок и tool-use summaries. По умолчанию берётся основная.
{
"model": { "name": "qwen3-coder-next" },
"fastModel": "gemini-3.7-flash"
}На лету: /model --fast. Удобный кандидат — gemini-3.7-flash.
QWEN.md
Иерархическая память — аналог CLAUDE.md / AGENTS.md. Файл в корне проекта попадает в системный промпт. Есть и глобальный ~/.qwen/QWEN.md.
# Проект: Next.js Frontend
## Правила
- TypeScript 5.0+, Node.js 20+
- Все новые функции документируются JSDoc
- Строгое равенство (`===` / `!==`)
## Стиль
- 2 пробела для отступов
- Компоненты React в PascalCase, хуки — camelCase с `use`
## Запрещено
- Добавлять внешние зависимости без явной необходимости/memory show и /memory refresh — посмотреть и перезагрузить.
Флаги и headless
qwen --model qwen3-coder-next
qwen --openai-api-key sk-aitunnel-xxx
qwen -p "Сгенерируй README для проекта"
qwen --approval-mode auto-edit
qwen --approval-mode yolo
qwen --allowed-tools "Shell(git status)"
qwen --include-directories ../shared-lib
qwen -o json -p "..."--approval-mode | Поведение |
|---|---|
plan | Только анализ, без изменений |
default | Спрашивать перед записью и shell |
auto-edit | Правки сами, shell с подтверждением |
auto | Классификатор сам аппрувит безопасное |
yolo | Полный автомат по tool calls. Sandbox сам не включается — нужен --sandbox или tools.sandbox |
CI:
export OPENAI_API_KEY="sk-aitunnel-xxx"
export OPENAI_BASE_URL="https://api.aitunnel.ru/v1"
export OPENAI_MODEL="qwen3-coder-next"
qwen -p "Сгенерируй unit-тесты для src/utils.ts"-o json удобно парсить в скриптах. Подробнее — headless mode.
Команды
В сессии: /help, /auth, /doctor, /model, /stats, /clear, /compress, /memory show, /memory refresh, /permissions, /theme, /language, /quit.
В терминале: qwen --version, qwen --help. qwen auth больше нет.
Устранение неполадок
- 401 / 403. Ключ живой в панели ключей, баланс положительный,
baseUrl—https://api.aitunnel.ru/v1(с/v1, без слеша в конце). Без пробелов и переносов в ключе. - Меню Alibaba / Coding Plan / Third-party. Выбран не Custom Provider. В сессии
/auth→ Custom Provider, либо:Проверка —selectedType{ "security": { "auth": { "selectedType": "openai" } } }/doctor. - Qwen OAuth discontinued. Бесплатный OAuth закрыт 15 апреля 2026. Это не баг AITUNNEL — переключитесь на Custom Provider.
- Model not found / 404. Id как в каталоге:
qwen3-coder-next, неqwen/qwen3-coder-nextи неqwen-coder. Слаг со слешем уходит в OpenRouter. - Tool calling. Нужна модель с вызовом инструментов.
qwen3-coder-next, Claude, GPT и Gemini умеют. - Контекст.
claude-sonnet-4.6— 1M,gpt-5.6-sol— 1M./compressсжимает историю.kimi-k2.7-code— ещё один длинный контекст. qwenне в PATH. Перезапустите терминал после standalone-установщика. Если ставили через npm — глобальный bin npm должен быть в PATH.- Приватность. AITUNNEL не логирует исходный код промптов. Не коммитьте
.envиsettings.jsonс ключом.