Все агентские CLI
Crush в NeuroSquad

Crush,на собственном холсте

Запускайте Crush в скольких угодно карточках — в каждой настоящий TUI `crush` в своём терминале. Crush сам сообщает карточке своё состояние — работает, заблокирован, свободен, — стрелки дают ему браузеры, терминалы и заметки, а после перезапуска каждая карточка продолжает свою сессию.

Официальный сайтgithub.com/charmbracelet/crush
  • Настоящий TUI crush, ваши собственные провайдеры
  • Ваш конфиг Crush не переписывается
  • Бесплатно, для Windows 10 и 11
Канал статуса

Он знает, когда Crush закончил — и когда спрашивает

У хуков Crush всего одно событие — перед запуском инструмента. Но Crush ещё и сообщает состояние агента терминальному мультиплексору herdr, а NeuroSquad играет роль herdr для каждой карточки Crush.

workingсостояние
Работает

working на первом выводе прогона. Значок карточки крутится, карточка «Команда» считает агента работающим. Учитываются только прогоны координатора — суб-агенты статус не двигают.

blockedсостояние
Ждёт вас

blocked при запросе разрешения. Карточка читает ожидающий вызов из базы Crush, и уведомление говорит Crush needs your permission: bash — rm -rf dist.

idleсостояние
Закончил

idle, когда прогон завершился, отменён или упал. Уходит следующий промпт из очереди, ответ попадает в журнал, уведомление сообщает, что готово.

И его вопросы тоже

Инструмент question у Crush — не состояние herdr, поэтому пока идёт ход, карточка раз в секунду заглядывает в базу Crush: открытый вопрос выглядит как Crush is asking: Tabs or spaces?.

Подделать нельзя

Id панели каждой карточки несёт подпись этого запуска приложения; сообщение без неё отбрасывается.

И на Windows тоже

Crush шлёт отчёты через Unix-сокет, а Node под Windows слушать его не умеет — поэтому их принимает маленький слушатель на PowerShell. Без него карточка возвращается к наблюдению за терминалом.

Посмотрите в работе

Три вещи, которые Crush делает в NeuroSquad

Копии интерфейса приложения, шаг за шагом. Когда Crush просит разрешения, отвечаете вы.

Crush чинит падающий тест через подключённый терминал, останавливается на своём диалоге разрешения перед удалением папки и заканчивает — журнал заполняется сам.

Всё, что он получает

Всё, что Crush умеет в NeuroSquad

Crush получает почти всё, что и Claude Code. Вот всё целиком — включая то, где Crush работает иначе, и то, чего сделать нельзя.

  • 01

    Знает своё состояние

    О каждом ходе карточке сообщают отчёты самого Crush — ничего не угадывается.

  • «Закончил» и «ждёт» — разные вещи

    С заданным HERDR_ENV Crush сообщает working, blocked и idle, каждый раз с id сессии. NeuroSquad слушает каждую карточку — точное начало хода, ожидание разрешения и конец.

    Документация: «Закончил» и «ждёт» — разные вещи
  • Уведомление говорит, что нужно

    Уведомление называет ожидающий вызов — Crush needs your permission: bash — rm -rf dist — или вопрос, который задаёт Crush. Одно на агента; ждущее висит, пока вы не ответите.

    Документация: Уведомление говорит, что нужно
  • Отменённые и упавшие прогоны заканчиваются

    Двойной Escape отменяет прогон в Crush; следом приходит idle, и карточка отмечает ход законченным, а Crush продолжает работать. Упавший прогон заканчивается так же.

    Документация: Отменённые и упавшие прогоны заканчиваются
  • Продолжает с того же места

    Crush сам выдаёт id сессий — карточка выбрать свой не может. Каждый отчёт несёт id, поэтому следующий запуск — crush --session <id>.

    Документация: Продолжает с того же места
  • Карточка «Команда»

    Все ИИ-агенты воркспейса на одной карточке, с моделью — а до первого хода с большой моделью из вашего конфига Crush.

    Документация: Карточка «Команда»
  • 02

    Работает через холст

    Стрелка от карточки — это набор инструментов через MCP-сервер NeuroSquad.

  • Стрелки — это инструменты

    Стрелка к браузеру, терминалу, заметке или другому агенту даёт Crush mcp_neurosquad_browser_*, terminal_*, note_* или agent_* — заранее разрешённые хуком PreToolUse, так что собственные инструменты NeuroSquad никогда не спрашивают.

    Документация: Стрелки — это инструменты
  • Новые стрелки: список сразу

    Crush 0.92 не узнаёт, что список инструментов сервера изменился. Поэтому все встроенные инструменты перечислены с самого начала, а стрелки решают в момент вызова. Новые стрелки к скиллам и установленным серверам действуют со следующего запуска карточки.

    Документация: Новые стрелки: список сразу
  • Режим карточек

    bash, job_output, job_kill, download, fetch, agentic_fetch и sourcegraph вообще убираются из инструментов Crush — не запрещены, а отсутствуют, — так что --yolo их не вернёт.

    Документация: Режим карточек
  • MCP-серверы из реестра

    Установленные серверы приходят вторым сервером без предварительного разрешения: перед каждым вызовом Crush показывает свой диалог разрешения.

    Документация: MCP-серверы из реестра
  • Скиллы со skills.sh

    Стрелка к карточке скилла даёт Crush skill_load со списком скиллов и тем, когда их применять, — со следующего запуска карточки.

    Документация: Скиллы со skills.sh
  • 03

    Для долгих прогонов

    Контекст, Summarize Session, лимиты и живой журнал — всё на карточке.

  • Индикатор контекста

    Токены промпта последнего запроса — из базы Crush; размер окна — из конфига карточки, ваших конфигов или списка провайдеров Crush. С 80% кольцо становится жёлтым.

    Документация: Индикатор контекста
  • «Сжать» — это Summarize Session

    Кнопка «Сжать» открывает палитру команд Crush и запускает за вас Summarize Session.

    Документация: «Сжать» — это Summarize Session
  • Продолжает после лимита

    Ход, закончившийся ошибкой квоты или лимита запросов, показывает лимит на карточке; если провайдер называет время сброса, карточка отсчитывает его и отправляет «continue».

    Документация: Продолжает после лимита
  • Очередь промптов

    Выстройте следующие сообщения: каждое уходит, когда Crush сообщает idle, — а не в паузе посреди мысли.

    Документация: Очередь промптов
  • Журнал и передача

    Последний ответ Crush читается из crush.db карточки: заметка-журнал, передача новому агенту, agent_wait, свои карточки и Telegram получают настоящий ответ Crush.

    Документация: Журнал и передача
  • 04

    Работает в команде

    У каждой карточки своя папка данных Crush, так что сколько угодно карточек делят один проект.

  • Своя папка данных у каждой карточки

    Crush блокирует свою папку данных, поэтому две карточки в одном проекте не смогли бы обе работать на .crush/. У каждой карточки своя папка — с её слоем конфига и её сессиями; ни один ваш файл Crush не переписывается.

    Документация: Своя папка данных у каждой карточки
  • Изолированные worktree

    Дайте агенту свой git worktree — и параллельные агенты никогда не правят одни и те же файлы. Папка данных привязана к карточке, а не к папке проекта.

    Документация: Изолированные worktree
  • Добавить ревьюера

    Один клик запускает агента на другом CLI в том же worktree с промптом проверить, ничего не редактируя. Crush тоже может быть таким ревьюером.

    Документация: Добавить ревьюера
  • Опасный режим, по карточке

    Для прогона, которому вы доверяете, карточка запускает Crush с --yolo: без диалогов разрешения. По умолчанию выключен; режим карточек при этом сохраняется.

    Документация: Опасный режим, по карточке
  • Инструкции

    Crush сам читает AGENTS.md, CRUSH.md и CLAUDE.md, а инструкции сессии NeuroSquad приходят в его системный промпт от MCP-сервера.

    Документация: Инструкции
  • 05

    Расход, контроль и доступ

    Сколько он тратит, сколько ему можно, на какой модели работает и как до него дотянуться.

  • Стоимость и запросы — без токенов

    Стоимость карточки — собственный итог Crush, включая суб-агентов, и каждый запрос к модели учтён. Crush перезаписывает счётчики токенов на каждом запросе, поэтому токены по запросам узнать нельзя — в колонке прочерк, а не догадка.

    Документация: Стоимость и запросы — без токенов
  • Бюджет-тормоз

    Лимит на воркспейс. Сверх него каждый Crush получает двойной Escape — прогон отменён, Crush продолжает работать (Ctrl+C открыл бы его диалог выхода), — и автоматические промпты останавливаются.

    Документация: Бюджет-тормоз
  • Модели OpenRouter

    Встроенный провайдер openrouter Crush в собственном конфиге карточки — с ключом из переменной, которую видит только эта карточка, и заголовками атрибуции NeuroSquad.

    Документация: Модели OpenRouter
  • С телефона

    Отсканируйте QR-код, и весь холст откроется в браузере телефона: читайте TUI Crush, отвечайте в его диалоге, отправляйте следующий промпт.

    Документация: С телефона
  • Ставится мастером

    Мастер установки может поставить Crush за вас (npm install -g @charmland/crush). NeuroSquad запускает его crush.exe напрямую, а не через npm-шим.

    Документация: Ставится мастером
С одного взгляда

Кто ждёт и сколько это стоило

Две карточки, которые отвечают на самые частые вопросы, когда одновременно работают несколько агентов Crush.

Карточка «Команда»

Каждый агент воркспейса со статусом, моделью и временем хода. Ждущие вас — первыми, вместе с тем, о чём спрашивает Crush.

  • coupon-fixCrushclaude-sonnet-4.5Crush needs your permission: bash — rm -rf distЖдёт вас2:34
  • api-migrationCrushclaude-sonnet-4.5Перевести маршруты на новый клиентРаботает9:33
  • lint-setupCrushopenrouter/autoCrush is asking: Tabs or spaces?Ждёт вас1:17
  • docs-passCrushopenrouter/autoОбновить READMEЗакончил5 мин. назад

Расход и стоимость

Читается из собственного `crush.db` каждой карточки. Стоимость и запросы точны и складываются в итог — токенов нет, потому что Crush не хранит их по запросам.

АгентТокеныСтоимость
coupon-fix—2,33 $
api-migration—1,41 $
docs-pass—0,18 $
Итого—3,92 $
Точно до пикодоллара; округляется только на экране.В каждую строку входят суб-агенты, которых запускала её сессия.
Под капотом

Настоящий Crush и своя папка

NeuroSquad запускает тот же `crush`, что и вы сами, — в настоящем терминале внутри карточки. Вот всё, что он добавляет:

Что NeuroSquad добавляет к команде
❯ crush
--data-dir <this card’s folder>каждый запусксвоя папка данных карточки: её слой конфига и сессии
--session <its session id>следующие запускитот же разговор после перезапуска
HERDR_ENV=1 HERDR_SOCKET_PATH=… HERDR_PANE_ID=<card>.<signature>каждый запусксостояние Crush — только этой карточке
<data dir>/crush.json → mcp.neurosquad, mcp.ns-connectedкаждый запускMCP-серверы NeuroSquad, накладываются последними поверх ваших конфигов
hooks.PreToolUse ^mcp_neurosquad_ → {"decision":"allow"}каждый запусксобственные инструменты NeuroSquad разрешены заранее; установленные серверы по-прежнему спрашивают
CRUSH_CLIENT_SERVER=каждый запускникогда не через общий сервер Crush
options.disabled_tools: bash, job_output, job_kill, download, fetch, agentic_fetch, sourcegraphрежим карточекоболочка и веб убраны, вместо них — карточки холста
--yoloопасный режимбез диалогов разрешения

Никаких секретов на диске

Конфиг называет $NEUROSQUAD_MCP_TOKEN; Crush подставляет его из окружения карточки.

Сразу в поле ввода

Свежая папка данных открылась бы на экране Crush «инициализировать проект?» и проглотила бы первый промпт, поэтому ответ дан заранее. AGENTS.md читается в любом случае.

Найдёт, куда бы вы его ни поставили

Сначала релизный crush.exe (winget, scoop, go install), потом бинарник npm-пакета — запускается напрямую.

Вопросы

Crush в NeuroSquad: ответы

Дайте Crush холст

Бесплатно для Windows 10 и 11. Ваш код, ваши провайдеры и ваши расходы остаются на вашем компьютере.