Инструменты и интеграцииИнструкция
Qwen Code и CheapTokens: переменные окружения и settings.json
Как подключить Qwen Code к OpenAI-совместимому API: три переменные или одна запись в settings.json, полный id модели и ключ вне git.

Содержание
Qwen Code умеет подключаться к собственному OpenAI-совместимому адресу, поэтому для CheapTokens нужны три значения: базовый URL https:/, ваш API-ключ и полный id модели, например deepseek-. Задайте их переменными OPENAI_API_KEY, OPENAI_BASE_URL и OPENAI_MODEL либо впишите в ~/. Оба способа взяты из документации Qwen Code по аутентификации (страница обновлена 22 октября 2026 года).
Представьте длинную сессию: агент читает дюжину файлов, правит три, гоняет тесты. На каждом шаге контекст отправляется заново, и вход оплачивается снова и снова. Поэтому дешёвая модель с оплатой за токены хорошо подходит терминальному агенту, а настройка ниже займёт минут десять.
Установка Qwen Code#
Нужен Node.js 22 или новее. В README проекта (github.com/QwenLM/qwen-code) перечислено несколько способов установки, вот два:
Установка Qwen Code
npm
npm install -g @qwen-code/qwen-code@latestHomebrew
brew install qwen-codeЗапускается командой qwen. В документации есть ещё /auth → Custom Provider для ручного подключения прокси или неподдерживаемого провайдера. Два способа ниже расписаны построчно, так что начните с любого из них.
Способ 1: три переменные окружения#
Самый быстрый путь. Откройте терминал в папке проекта и выполните:
export OPENAI_API_KEY="sk-your-api-key"
export OPENAI_BASE_URL="https://api.cheaptokens.dev/v1"
export OPENAI_MODEL="deepseek-ai/DeepSeek-V4-Flash-0731"
qwenКлюч здесь заглушка, подставьте свой из кабинета CheapTokens. Именно export OPENAI_ говорит Qwen Code, что нужна OpenAI-совместимая авторизация, если вы настраиваете всё переменными. У OPENAI_MODEL есть псевдоним QWEN_MODEL.
На чём чаще всего спотыкаются, так это на id модели. Берите полный id из документации CheapTokens. Короткое имя из таблиц цен, deepseek-, API не принимает, а у разных провайдеров id отличаются.
Кто за что отвечает? Сопоставьте:
Найдите пары
Сопоставьте переменную и её роль
Нажмите на элемент слева, затем на его пару
- OPENAI_API_KEYВаш ключ CheapTokens; его экспорт включает OpenAI-совместимую авторизацию
- OPENAI_BASE_URLАдрес, на который Qwen Code шлёт запросы
- OPENAI_MODELId модели, который уходит в API
- QWEN_MODELПсевдоним OPENAI_MODEL
Экспорт живёт, пока открыт терминал. Чтобы настройка осталась, используйте второй способ.
Способ 2: settings.json и ключ вне git#
Допустим, репозиторий общий и ключ в конфиге никому не нужен. Тогда модель описываем в ~/, а ключ держим в отдельном файле.
{
"modelProviders": {
"openai": [
{
"id": "deepseek-ai/DeepSeek-V4-Flash-0731",
"name": "DeepSeek-V4-Flash (CheapTokens)",
"baseUrl": "https://api.cheaptokens.dev/v1",
"description": "DeepSeek-V4-Flash через CheapTokens",
"envKey": "CHEAPTOKENS_API_KEY"
}
]
},
"security": { "auth": { "selectedType": "openai" } },
"model": { "name": "deepseek-ai/DeepSeek-V4-Flash-0731" }
}Четыре поля решают всё:
id— id модели, который уходит в API, поэтому он должен быть полным.model.nameобязан совпадать с одним изid, иначе Qwen Code нечего выбирать.security.со значениемauth. selectedType "openai"включает OpenAI-совместимый путь.envKey— имя переменной с ключом. Поле необязательное, по умолчаниюOPENAI_API_KEY.
Сам ключ кладём в .qwen/.env: документация рекомендует его для секретов, и в git этот файл не попадает:
CHEAPTOKENS_API_KEY=sk-your-api-keyПочему лучше так, а не через блок env в settings.json: значения из env имеют самый низкий приоритет, а файл с ключом легко закоммитить случайно. Подробнее о хранении ключей — в статье как безопасно хранить API-ключ.

После запуска команда /model показывает настроенные модели и переключает их. Чтобы стартовать с нужной, выполните qwen -.
Сколько стоит сессия с агентом#
Терминальные агенты тяжёлые по входу: на каждом шаге они несут всё, что успели собрать. Возьмём задачу на 40 шагов и допустим 30 000 токенов входа и 1 000 токенов выхода на шаг. Получается 40 × 30 000 = 1 200 000 токенов входа и 40 × 1 000 = 40 000 токенов выхода. Вся задача по живым ценам:
| Модель | Вход $/1M | Выход $/1M | За запрос | 40 запросов | OpenRouter, 40 запросов |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.00064 | $0.0256 | $0.0526 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.00055 | $0.022 | $0.0633 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.0017 | $0.066 | $0.408 |
30 000 входных и 1 000 выходных токенов на запрос. Цены за 1M токенов актуальны и меняются вместе с нашими тарифами; столбец OpenRouter показывает справочные цены для той же нагрузки.
В сумме, с учётом входа и выхода, CheapTokens дешевле OpenRouter по каждой модели из таблицы. Для такого цикла хорошо подходит DeepSeek-V4-Flash: контекст 380K, до 32 768 токенов в одном ответе, одна цена в любое время суток и один баланс на все модели. У вас цифры будут другие, так что подвигайте ползунки:
Калькулятор стоимости
Ваш день с терминальным агентом
Входные токены на запрос: 25 000 · Выходные токены на запрос: 800 · Запросов в день: 120
| Модель | В день | В месяц |
|---|---|---|
| GLM-5.3-Flash$0.02$0.04 | $0.0638 | $1.92 |
| DeepSeek-V4-Flash$0.015$0.10 | $0.0546 | $1.64 |
| MiniMax-M2.7$0.05$0.15 | $0.164 | $4.93 |
Цены собраны на странице тарифов. Если интересно, как считается другой агент, в статье сколько стоит Cline та же арифметика.
Другие модели#
Переключение — это замена id и ничего больше. Возьмите его на странице моделей или из GET /v1/models:
zai-: контекст 390K, до 8 192 токенов в ответе, итоговая цена ниже, чем у OpenRouter.org/ GLM- 5. 3- Flash MiniMaxAI/: контекст 180K, до 8 192 токенов в ответе, итоговая цена ниже, чем у OpenRouter.MiniMax- M2. 7
Смените OPENAI_MODEL или добавьте вторую запись в modelProviders. и переключайтесь через /model.
Если Qwen Code не подключается#
- Не выбран тип авторизации. При настройке переменными должен быть экспортирован
OPENAI_API_KEY. При settings.json проверьте, чтоselectedTypeравен"openai". - Модель не найдена.
model.nameдолжен совпадать сidдо символа, а сам id — быть полным. - 401. Ключ не передан или неверный. Если используете
envKey, убедитесь, что такая переменная есть в.qwen/.envили в оболочке. - 404. Проверьте, что адрес заканчивается на
/v1, а в id нет опечатки. Подробный разбор — в статье ошибка API 401 или 404: ключ, адрес или id модели. - Переменная будто игнорируется. Значения из
envв settings.json имеют самый низкий приоритет, поэтому заданная где-то ещё переменная победит.
Другие терминальные агенты настраиваются по той же схеме, например OpenCode и Aider. Всё остальное, от ключей до первого запроса, — в документации CheapTokens.



