Crush — ИИ-агент для программирования в терминале от Charm

· 2 мин чтения
ai-agents cli terminal coding-assistant llm
📂 Исходный код на GitHub

Терминальный ИИ-агент для программирования. Поддержка множества LLM-провайдеров, LSP-контекст, MCP-серверы, скиллы, сессии и все популярные платформы. 26K+ звёзд на GitHub.

Crush — ИИ-агент для программирования в терминале от Charm

Crush — открытый терминальный ИИ-агент для программирования от команды Charm (известной по Bubble Tea, Huh, Glow, Gum). Написан на Go и набрал больше 26 тысяч звёзд на GitHub. Позиционируется как «ваш новый лучший друг по кодингу в любимом терминале» — инструменты, код и рабочие процессы подключаются к LLM на ваш выбор.

Возможности

Мультимодельность. Можно выбрать из широкого набора LLM или добавить свои через OpenAI- и Anthropic-совместимые API. Модель можно переключать прямо посреди сессии, сохраняя контекст.

Сессионная работа. Несколько рабочих сессий и контекстов на проект. Сессии можно шарить между клиентами через workspace-механизм: два клиента с одним --cwd получают общий список сессий, историю сообщений, очередь разрешений, LSP и MCP-состояние.

LSP-контекст. Crush использует Language Server Protocol для получения дополнительного контекста о коде — так же, как это делает разработчик в редакторе.

Расширяемость через MCP. Поддерживаются все три транспортных типа Model Context Protocol: stdio для CLI-серверов, http для HTTP-эндпоинтов и sse для Server-Sent Events. В параметрах работают shell-подстановки ($VAR, ${VAR:-default}, $(command)).

Скиллы по стандарту Agent Skills. Crush поддерживает открытый стандарт Agent Skills. Скиллы ищутся в глобальных директориях (~/.config/crush/skills/, ~/.claude/skills/ и других), а также в проектных (.agents/skills, .crush/skills, .claude/skills, .cursor/skills). Поддерживаются пользовательские скиллы, вызываемые через командную палитру (Ctrl+P).

Кроссплатформенность. Первоклассная поддержка macOS, Linux, Windows (PowerShell и WSL), Android, FreeBSD, OpenBSD и NetBSD.

Промышленный уровень. Построен на экосистеме Charm, на которой работают 25 000+ приложений — от ведущих опенсорс-проектов до критической бизнес-инфраструктуры.

Установка

# Homebrew
brew install charmbracelet/tap/crush

# NPM
npm install -g @charmland/crush

# Arch Linux
yay -S crush-bin

# Nix
nix run github:numtide/nix-ai-tools#crush

# FreeBSD
pkg install crush

# Go
go install github.com/charmbracelet/crush@latest

Windows: winget install charmbracelet.crush или через Scoop. Пакеты также доступны в DEB- и RPM-форматах, бинарники — для всех поддерживаемых платформ.

Провайдеры и модели

Быстрый старт — выбрать модель Hyper от Charm. Это официальный провайдер Crush с бесплатным тарифом, нулевым хранением данных (ZDR) и соответствием GDPR.

Crush поддерживает около 20 встроенных провайдеров через переменные окружения: Anthropic, OpenAI, Gemini, OpenRouter, Groq, Cerebras, Hugging Face, Alibaba, Moonshot, OpenCode, Azure, VertexAI, Amazon Bedrock и другие.

Список моделей управляется через Catwalk — опенсорсную базу Crush-совместимых моделей. Можно добавить кастомных провайдеров:

{
  "providers": {
    "deepseek": {
      "type": "openai-compat",
      "base_url": "https://api.deepseek.com/v1",
      "api_key": "$DEEPSEEK_API_KEY",
      "models": [
        {
          "id": "deepseek-chat",
          "name": "Deepseek V3",
          "context_window": 64000
        }
      ]
    }
  }
}

Поддерживаются локальные провайдеры: Ollama, llama.cpp, LM Studio, LiteLLM, OMLX — модели автообнаруживаются.

Конфигурация

Crush работает из коробки без конфигурации. При необходимости настройки загружаются с приоритетом: .crush.jsoncrush.json~/.config/crush/crush.json.

LSP. Подключаются вручную в конфиге. Пример для Go, TypeScript и Nix:

{
  "lsp": {
    "go": { "command": "gopls" },
    "typescript": { "command": "typescript-language-server", "args": ["--stdio"] },
    "nix": { "command": "nil" }
  }
}

Глобальные контекст-файлы. ~/.config/crush/CRUSH.md для Crush-специфичных инструкций и ~/.config/AGENTS.md для общих (если пользуетесь несколькими агентами). Пути настраиваются через global_context_paths.

Безопасность. crush.json — доверенный код. Любой $(...) в нём выполняется при загрузке с привилегиями shell. Не запускайте Crush в директории с непроверенным crush.json.

Игнорирование файлов. Поддерживаются .gitignore и .crushignore (тот же синтаксис).

Управление разрешениями. Можно предварительно разрешить запуск определённых инструментов без запроса подтверждения, или полностью отключить встроенные инструменты/скиллы через options.disabled_tools и options.disabled_skills. Флаг --yolo отключает все запросы разрешений.

Сессии и workspace

При запуске с общим бэкендом (crush serve) клиенты группируются в workspace по ключу --cwd. Клиенты с одинаковой рабочей директорией разделяют сессии, историю сообщений, очередь разрешений, LSP и MCP-состояние. Подключение неявное — второй клиент с тем же --cwd присоединяется к существующему workspace.

Флаги --yolo и --debug следуют правилу «первый побеждает»: последующие клиенты с другими значениями не меняют настройки workspace.

Логирование и метрики

Логи пишутся в .crush/logs/crush.log. Доступны CLI-команды: crush logs, crush logs --tail 500, crush logs --follow. Режим отладки включается флагом --debug или в конфиге.

Метрики использования псевдонимные (привязаны к хешу устройства), собирают только метаданные использования — промпты и ответы никогда не собираются. Отключить можно через CRUSH_DISABLE_METRICS=1 или настройку в конфиге. Crush также уважает конвенцию DO_NOT_TRACK.

Интеграции

Атрибуция в гите. По умолчанию Crush добавляет Assisted-by: Crush:[ModelID] в коммиты (настраивается: co-authored-by или none).

Настольные уведомления. Приходят, когда инструмент требует разрешения или агент завершил ход — только если терминал не в фокусе.

Инициализация проектов. Анализирует код и создаёт контекст-файл (AGENTS.md по умолчанию, путь настраивается через initialize_as).

Хуки. Предварительная поддержка хуков (детали в документации).

Лицензия

FSL-1.1-MIT. Проект — часть экосистемы Charm.

Источник: https://github.com/charmbracelet/crush