Инструменты и интеграцииИнструкция
Подключение Crush к CheapTokens: провайдер, модель, ключ в crushrc
Добавьте CheapTokens в Crush двумя командами crushrc: провайдер completions и модель с настоящими лимитами; ключ берётся из переменной окружения.

Содержание
Чтобы подключить Crush к CheapTokens, добавьте в crushrc две команды: provider add с адресом https:/ и -, а затем model add с полным id модели. После этого откройте Crush, нажмите Ctrl+l, выберите модель и дайте ей задачу. Ключ лежит в переменной окружения, а не в файле.
Если вы шли по старой инструкции, она, скорее всего, правит crush.json. Crush его ещё читает, но в README файл назван устаревшим: актуальный конфиг — crushrc, а с версии v0.99.0 (29 октября 2026) --type у провайдера описывает формат API, а не вендора. Источники — README Crush и заметки о релизах, проверено 10 ноября 2026; последний стабильный релиз на эту дату — v0.100.0.
Установка Crush#
Берите тот менеджер пакетов, что уже стоит. Crush — один бинарник, так что путь неважен.
Установка Crush
Homebrew
brew install charmbracelet/tap/crushnpm
npm install -g @charmland/crushwinget
winget install charmbracelet.crushGo
go install github.com/charmbracelet/crush@latestВ README есть ещё репозитории apt и yum, Scoop, Nix, Arch и FreeBSD. Запустите crush один раз, убедитесь, что он стартует, и выйдите.
Добавляем CheapTokens в crushrc#
README описывает crushrc как «просто Bash с несколькими встроенными командами Crush». В этом и весь фокус: вы пишете обычный shell, а provider add и model add — команды, которые понимает Crush. Файл ищется в таком порядке: ./.crushrc, ./crushrc, затем ~/.
То есть место выбираете вы. .crushrc в проекте действует для одного репозитория, файл в ~/.config/crush/ — везде. Для первой попытки проще глобальный.
Сначала положите ключ в оболочку. Создайте его в личном кабинете CheapTokens и экспортируйте (значение ниже — заглушка):
export CHEAPTOKENS_API_KEY="your-key-here"Потом откройте ~/ и напишите:
provider add cheaptokens --type completions \
--base-url "https://api.cheaptokens.dev/v1" \
--api-key "$CHEAPTOKENS_API_KEY"
model add cheaptokens/deepseek-ai/DeepSeek-V4-Flash-0731 \
--name "DeepSeek-V4-Flash" \
--context-window 380000 \
--default-max-tokens 32768На несколько деталей стоит взглянуть повнимательнее:
-— так Crush называет OpenAI-совместимые провайдеры, которые не сам OpenAI.- type completions responses— для проксирования OpenAI,messages— для Anthropic-совместимых. Старыйopenai-compatещё работает и мигрирует.- Базовый адрес заканчивается на
/v1. Это адрес CheapTokens для запросов в стиле OpenAI Chat Completions; все адреса — в документации CheapTokens. $CHEAPTOKENS_раскрывает оболочка, поэтому в файле нет секрета, а проектныйAPI_ KEY .crushrcможно спокойно коммитить.- id модели — полный:
deepseek-. Короткий вродеai/ DeepSeek- V4- Flash- 0731 deepseek-API отклонит. После имени провайдера идёт второй слеш, потому что он есть в самом id.v4- flash -— округлённые 380K у DeepSeek-V4-Flash, а- context- window 380000 -— его лимит на один ответ. Это настоящие лимиты модели в CheapTokens: контекст 380K и до 32 768 токенов в ответе. Указывайте их в- default- max- tokens 32768 model add, а не оставляйте значения из примера README (64000 и 5000).

В README model add показан только с простым id (deepseek/). У вашего id лишний слеш, поэтому настоящая проверка — выбор модели на следующем шаге: если модель появилась в группе cheaptokens, строка прочитана как задумано.
Нужна ещё одна модель на том же балансе? Добавьте ещё одну строку model add со своим id и лимитами. GLM-5.3-Flash — zai- (контекст 390K, до 8 192 токенов в ответе), MiniMax-M2.7 — MiniMaxAI/ (контекст 180K, до 8 192 токенов в ответе). - держите не выше лимита ответа добавляемой модели.
Открываем Crush и даём первую задачу#
Запустите crush в папке проекта. Нажмите Ctrl+l, чтобы открыть выбор модели, и найдите DeepSeek-V4-Flash в группе cheaptokens. Команды crushrc для модели по умолчанию в README нет, так что работает именно выбор из списка.

Дайте что-нибудь небольшое и проверяемое, например: Read this repo and tell me which file starts the app, in two lines. Если в ответе назван настоящий файл, вся цепочка работает: ключ, адрес, id модели.
Попробуйте самиПопробуйте сами: вы нажали Ctrl+l, а модели в списке нет. Что проверить первым?Показать ответ
Расположение файла и переменную. Crush ищет конфиг по приоритету: ./.crushrc, ./crushrc, ~/. Проверьте, нет ли в проекте другого .crushrc или crushrc с другим содержимым, и что провайдер добавлен в том файле, который вы правили. А echo $CHEAPTOKENS_ должен печатать ключ в той же оболочке, где вы запускаете crush.
Запросы разрешений существуют не зря. permissions allow <tools> в crushrc позволяет названным инструментам работать без вопросов; --yolo отключает все запросы, и сам README просит обращаться с ним очень осторожно.
Сколько стоит сессия кодинга#
Шаг агента в терминале тяжёлый по входу: Crush каждый раз отправляет историю, содержимое файлов и вывод инструментов, а в ответ получает скромный текст. Допустим, средний шаг отправляет 30 000 токенов и получает 2 000. На DeepSeek-V4-Flash такой шаг стоит $0.00065, причём цена одна в любое время суток, без пиковых часов. В сумме, с учётом входа и выхода, это дешевле референсной цены OpenRouter.
Подставьте свои числа: сессия из 40 таких шагов — один ползунок.
Калькулятор стоимости
Один день работы агента в Crush
Входные токены на запрос: 30 000 · Выходные токены на запрос: 2 000 · Запросов в день: 40
| Модель | В день | В месяц |
|---|---|---|
| GLM-5.3-Flash$0.02$0.04 | $0.0272 | $0.816 |
| DeepSeek-V4-Flash$0.015$0.10 | $0.026 | $0.78 |
| MiniMax-M2.7$0.05$0.15 | $0.072 | $2.16 |
Вход на шаг по ходу сессии растёт, поэтому длинную сессию сверяйте с окном 380K, а не со средним. Актуальные цены за токены по всем моделям — на странице цен.
Если не работает#
Crush пишет лог в проекте: .. Прочитайте его, прежде чем гадать:
crush logs --tail 500
crush logs --follow
crush --debugМожно также добавить в crushrc строку option debug true, чтобы отладочный вывод был включён постоянно. Затем сопоставьте увиденное с HTTP-статусом ответа API:
- 401 — ключ передан, но не узнан: опечатка или ключ заменён. Создайте или скопируйте его заново.
- 402 — баланс или лимит ключа исчерпан. Так же выглядит запрос совсем без ключа, поэтому выполните
echo $CHEAPTOKENS_в той же оболочке, где запускаетеAPI_ KEY crush. Если ключ на месте, пополните баланс. - 429 — слишком много запросов за короткое время. Подождите значение
Retry-Afterи повторите. - 400 или «model not found» — смотрите id модели. Он должен быть полным, как в документации, с префиксом вендора.
Если вы переезжаете с crush.json, учтите: ~/ — это состояние Crush, а не конфиг, руками его не правьте.
Ту же настройку для других инструментов смотрите в статьях Aider и CheapTokens и Kilo Code и CheapTokens. На странице дешёвого DeepSeek — лимиты модели из этого примера.



