Назад до блогу

Інструменти та інтеграціїПосібник

Підключення Crush до CheapTokens: провайдер, модель і ключ у crushrc

Додайте CheapTokens до Crush двома командами crushrc: провайдер completions і модель із реальними лімітами; ключ надходить зі змінної середовища.

Автор: CheapTokens TeamОпубліковано 5 хв читання

Файл конфігурації Crush із рядками провайдера і моделі CheapTokens
На цій сторінці
  1. Встановлення Crush
  2. Додавання CheapTokens у crushrc
  3. Відкриття Crush і запуск першого завдання
  4. Скільки коштує сесія програмування
  5. Якщо не працює

Щоб підключити Crush до CheapTokens, додайте дві команди у свій crushrc: provider add з базовою URL-адресою https://api.cheaptokens.dev/v1 та --type completions, а також model add з повним ідентифікатором моделі. Потім відкрийте 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

bash
brew install charmbracelet/tap/crush

npm

bash
npm install -g @charmland/crush

winget

bash
winget install charmbracelet.crush

Go

bash
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. Crush шукає файл у такому порядку: ./.crushrc, ./crushrc, потім ~/.config/crush/crushrc.

Тож ви вибираєте, де він буде розташований. Локальний для проєкту .crushrc застосовується до одного репозиторію; той, що в ~/.config/crush/, застосовується всюди. Для першої спроби глобальний простіший.

Спочатку додайте ключ у свій shell. Створіть його в панелі керування CheapTokens і експортуйте (значення нижче — заповнювач):

bash
export CHEAPTOKENS_API_KEY="your-key-here"

Потім відкрийте ~/.config/crush/crushrc і напишіть:

bash
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

Кілька деталей варто розглянути уважніше:

  • --type completions — це назва Crush для провайдерів, сумісних з OpenAI, які не є самим OpenAI. responses — для проксіювання OpenAI, messages — для сумісних з Anthropic. Старий openai-compat досі працює і мігрується.
  • Базова URL-адреса закінчується на /v1. Це адреса CheapTokens для Chat Completions у стилі OpenAI; повний список кінцевих точок — у документації CheapTokens.
  • $CHEAPTOKENS_API_KEY розгортається shell, тому файл не містить секретів, і проєктний .crushrc можна безпечно додати в git.
  • Ідентифікатор моделі — повний, deepseek-ai/DeepSeek-V4-Flash-0731. Скорочений ідентифікатор, як-от deepseek-v4-flash, відхиляється API. Після назви провайдера йде другий слеш, бо сам ідентифікатор містить один.
  • --context-window 380000 — це округлені 380K від DeepSeek-V4-Flash, а --default-max-tokens 32768 — його ліміт на відповідь. Це реальні ліміти моделі в CheapTokens: 380K контексту і до 32 768 токенів на відповідь. Вкажіть їх у model add замість того, щоб залишати зразкові значення з README (64000 і 5000).
Файл crushrc із провайдером і моделлю CheapTokens
crushrc: один рядок провайдера і один рядок моделі; ключ надходить із середовища

У README model add показано лише з простим ідентифікатором (deepseek/deepseek-chat). Ваш ідентифікатор має додатковий слеш, тому справжня перевірка — це вибір моделі на наступному кроці: якщо модель з'являється в групі cheaptokens, рядок було прочитано як задумано.

Хочете іншу модель на тому самому балансі? Додайте ще один рядок model add з її власним ідентифікатором і лімітами. GLM-5.3-Flash — це zai-org/GLM-5.3-Flash (390K контексту, до 8 192 токенів на відповідь), а MiniMax-M2.7 — це MiniMaxAI/MiniMax-M2.7 (180K контексту, до 8 192 токенів на відповідь). Тримайте --default-max-tokens на рівні або нижче ліміту відповіді моделі, яку додаєте.

Відкриття Crush і запуск першого завдання#

Запустіть crush у теці проєкту. Натисніть Ctrl+l, щоб відкрити вибір моделі, і виберіть DeepSeek-V4-Flash із групи cheaptokens. У README не описано команди crushrc для моделі за замовчуванням, тому вибір моделі — це спосіб.

Від crushrc до першої відповіді: провайдер, модель, вибір, завдання
Шлях від конфігурації до першої відповіді

Тепер дайте їй щось маленьке й перевірне, скажімо: Read this repo and tell me which file starts the app, in two lines. Відповідь, яка називає реальний файл, означає, що весь ланцюжок працює: ключ, базова URL-адреса, ідентифікатор моделі.

Спробуйте саміСпробуйте: ви натискаєте Ctrl+l, а моделі немає в списку. Що перевіряєте першим?Показати відповідь

Розташування файлу і змінну. Crush шукає конфігурацію за пріоритетом: ./.crushrc, ./crushrc, ~/.config/crush/crushrc. Перевірте, що в проєкті немає іншого .crushrc або crushrc з іншим вмістом, і що провайдера додано у файл, який ви редагували. І echo $CHEAPTOKENS_API_KEY має виводити ключ у тому самому shell, де ви запускаєте 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.0272$0.816
DeepSeek-V4-Flash$0.026$0.78
MiniMax-M2.7$0.072$2.16

Вхідні дані на крок зростають у міру сесії, тому перевіряйте довгу сесію щодо вікна 380K, а не середнього значення. Поточні ціни за токен для кожної моделі — на сторінці цін.

Якщо не працює#

Crush пише журнал у вашому проєкті, ./.crush/logs/crush.log. Прочитайте його, перш ніж гадати:

bash
crush logs --tail 500
crush logs --follow
crush --debug

Також можна додати option debug true у crushrc, щоб постійно тримати вивід налагодження. Потім зіставте побачене з HTTP-статусом, який повернув API:

  • 401: ключ надіслано, але не розпізнано: друкарська помилка або замінений ключ. Створіть або скопіюйте його знову.
  • 402: баланс або ліміт ключа вичерпано. Запит без ключа взагалі виглядає так само, тому виконайте echo $CHEAPTOKENS_API_KEY у shell, де ви запускаєте crush. Якщо ключ там є, поповніть баланс.
  • 429: забагато запитів за короткий час. Зачекайте значення Retry-After і спробуйте знову.
  • 400 або "model not found": подивіться на ідентифікатор моделі. Він має бути повним, з документації, з префіксом постачальника.

Якщо ви перейшли з crush.json, зверніть увагу, що ~/.local/share/crush/crush.json — це стан Crush, а не конфігурація; не редагуйте його вручну.

Щоб налаштувати те саме в інших інструментах, дивіться Підключення Aider до CheapTokens і Підключення Kilo Code до CheapTokens. На сторінці моделі дешевого DeepSeek вказано ліміти моделі, використаної тут.