Skip to Content
aicentos

Crush

Использование aicentos в Crush — добавление кастомного провайдера через crush.json

Обновлено:

Crush — терминальный кодинг-агент от Charmbracelet, написанный на Go, который позволяет объявить в crush.json любой OpenAI-совместимый кастомный провайдер. Достаточно направить base_url на aicentos — и модели, подключённые к aicentos, станут доступны в TUI.

Подготовка

Сначала создайте на странице «API Key» в консоли отдельный ключ для Crush (рекомендуемое имя crush — так проще отслеживать расход):

Убедитесь, что Crush установлен:

crush --version

Конфигурация для заполнения

ПолеЗначение
Файл конфигурации~/.config/crush/crush.json
typeopenai-compat
base_urlhttps://aicentos.com/v1
api_key$AICENTOS_API_KEY
Модельимя модели из «витрины моделей» в консоли

Шаги настройки

1. Задайте переменную окружения для API Key

export AICENTOS_API_KEY="sk-ваш-API-ключ"

Для постоянного действия добавьте её в ~/.zshrc или ~/.bashrc, затем выполните source.

2. Отредактируйте crush.json

Глобальный файл конфигурации находится в ~/.config/crush/crush.json (в Windows — %USERPROFILE%\AppData\Local\crush\crush.json); файл .crush.json или crush.json в корне проекта переопределяет глобальную конфигурацию.

Запишите:

{
  "$schema": "https://charm.land/crush.json",
  "providers": {
    "aicentos": {
      "type": "openai-compat",
      "base_url": "https://aicentos.com/v1",
      "api_key": "$AICENTOS_API_KEY",
      "models": [
        {
          "id": "gpt-4o",
          "name": "GPT-4o",
          "context_window": 128000,
          "default_max_tokens": 8192,
          "can_reason": true
        }
      ]
    }
  }
}

models[].id должен полностью совпадать с ID модели на стороне эндпоинта; ориентируйтесь на «витрину моделей» в консоли, см. Поддерживаемые модели.

3. Выбор модели

После запуска crush нажмите в TUI Ctrl+L (или введите /model) и убедитесь, что видны aicentos и его модели.

Проверка

Быстрая проверка в неинтерактивном режиме:

crush run "Ответь одним предложением: сколько будет 1+1"

Чтобы видеть логи запросов, добавьте --debug. При ошибке 404 проверьте, есть ли /v1 в base_url.

Примечания

  • В type не пишите openai. Значение openai — для прокси, которые действительно идут в OpenAI (или Azure OpenAI); при указании на сторонний совместимый эндпоинт обязательно openai-compat, иначе возможны ошибки распознавания модели или ошибки API.
  • В base_url указывайте адрес до /v1, без слэша на конце.
  • api_key поддерживает раскрытие $VAR и $(command); рекомендуется держать ключ в переменной окружения или файле секретов, а не записывать в открытом виде.
  • Если подключается эндпоинт с протоколом Anthropic (type = anthropic), base_url должен заканчиваться на /api — Crush сам добавит /v1/messages, и дополнительно потребуется объявить anthropic-version в extra_headers.
  • Известная проблема: при использовании кастомного провайдера счётчик токенов и статистика затрат в TUI могут показывать 0 — на сами запросы и тарификацию это не влияет.
  • Чтобы включить вывод рассуждений: у моделей в стиле OpenAI — "can_reason": true вместе с "reasoning_effort"; у моделей в стиле Anthropic — "think": true.

Полезные ссылки