# nsq: NeuroSquad в терминале, с открытым кодом

> nsq 0.1.0 (предварительная версия) — терминальная версия NeuroSquad с открытым кодом: несколько ИИ-агентов в одной панели, точный статус из хуков самих CLI и сигнал, когда агент ждёт вас. MIT.

- URL: https://neurosquad.ai/ru/blog/nsq-neurosquad-in-your-terminal/
- Published: 2026-10-09
- Publisher: NeuroSquad (https://neurosquad.ai/)

Сегодня мы выпускаем **nsq 0.1.0** — предварительную версию NeuroSquad для терминала. Она делает то, ради чего в первую очередь существует десктопное приложение, — запускает несколько ИИ-агентов для кода и показывает, кому из них нужны вы, — но без окна, холста и аккаунта. Код открыт под лицензией MIT, nsq работает на Windows, macOS и Linux и ставится из npm: `npm i -g neurosquad`, затем `nsq`.

```
npm i -g neurosquad          # или попробовать: npx neurosquad
nsq run claude "fix the flaky checkout test" --worktree
nsq run codex --name reviewer
nsq run -- npm run dev       # любая команда
nsq                          # панель
```

![Запись панели nsq: сначала она пуста, затем в воркспейсе demo-shop появляются три агента, Claude Code заканчивает, Codex спрашивает «Would you like to run the following command?», в шапке — 1 needs you, ответ y дан прямо из сетки, Codex выполняет команду и заканчивает](https://neurosquad.ai/blog/nsq-neurosquad-in-your-terminal/recording-ru.webp)

*nsq 0.1.0 на macOS, запись из нашего сквозного теста: Codex просит разрешения выполнить команду и получает ответ y, не открываясь на весь экран. Агенты работают с тестовой моделью по сценарию.*

## Зачем версия для терминала

Многие, кто работает с агентами, живут в терминале: на Linux, на сервере по SSH, внутри dev-контейнера или просто потому, что так удобнее. Туда десктопное приложение за ними не пойдёт. А нужно им то же самое: видеть, какой агент работает, какой ждёт вас и о чём спрашивает, а какой уже закончил, — там, где они и так находятся.

Поэтому nsq сознательно маленький. Это не холст в текстовом режиме, а та часть NeuroSquad, которая отвечает на вопрос «нужен ли я сейчас кому-то из агентов?», плюс несколько вещей, без которых неудобно держать много агентов сразу: демон, worktree, стоимость, уведомления.

## Что он умеет

- **Агентами владеет демон.** `nsq` запускает его при необходимости. Закройте панель или всё окно терминала — агенты продолжат работать; снова откройте `nsq`, и они там же, где вы их оставили. После `nsq down` или перезагрузки `nsq up` возвращает агентов, которые работали, и продолжает их сессии.
- **Панель живых терминалов.** Слева воркспейсы и их агенты, справа агенты выбранного воркспейса сеткой живых терминалов. Enter разворачивает агента на весь экран, и все клавиши идут ему; Ctrl+] возвращает к сетке.
- **Точный статус из хуков самих CLI.** Работает, **ждёт вас** — с вопросом самого CLI («Would you like to run the following command?»), закончил — об этом сообщают хуки Claude Code, хуки Codex и плагин OpenCode, а не догадка по экрану. У Claude Code то, о чём хуки молчат (прерывание, ошибка API), уточняется по транскрипту сессии.
- **Ответ без переключений.** `y`, `a` и `n` отвечают на запрос разрешения выбранного агента — да, всегда, нет — прямо из сетки; `i` прерывает той клавишей, которую на самом деле понимает этот CLI; `s` отправляет промпт, а `S` ставит его в очередь до конца текущего хода.
- **Уведомления и звук.** Системное уведомление, когда агент ждёт вас или закончил, — одно на агента, снимается, когда он снова работает. Если системное уведомление показать нельзя, например по SSH, панель подаёт сигнал в своём терминале.
- **Отдельный git worktree на агента.** С `--worktree` агент получает свою копию репозитория на своей ветке, и два агента никогда не правят одни и те же файлы; `nsq diff` показывает, что он изменил.
- **Стоимость по агентам.** `nsq cost` читает логи самих CLI: токены — целыми числами, а у модели, для которой у нас нет цены, будет «нет цены», никогда не $0.
- **OpenRouter встроен.** `nsq openrouter set-key` кладёт ключ в хранилище паролей ОС; `--provider openrouter --model <id>` запускает агента через него. Ключ попадает только в окружение этого агента, а запросы несут атрибуцию NeuroSquad в OpenRouter.
- **Локальная голосовая диктовка.** Нажмите `v` (или глобальную горячую клавишу) и говорите; распознавание идёт на вашем компьютере открытой моделью, которая скачивается один раз. Текст вставляется в поле ввода агента и никогда не отправляется сам — Enter нажимаете вы.

![Диалог «New agent» в nsq поверх сетки: вкладки Claude Code, Codex, OpenCode и Command, затем имя, промпт, папка и флажки для своего worktree, OpenRouter и опасного режима, кнопка Start](https://neurosquad.ai/blog/nsq-neurosquad-in-your-terminal/new-agent-ru.webp)

*Запуск агента из панели (клавиша c). Агенты на этих скриншотах работают с тестовой моделью по сценарию.*

Полный статус есть у **Claude Code**, **Codex** и **OpenCode** (и 1.x, и 2.x); кроме того, агентом может быть **любая команда**: dev-сервер, наблюдатель за тестами, другой CLI. У обычной команды нет хуков, поэтому nsq показывает её работающей, пока она печатает, и закончившей, когда она затихает, — и никогда не утверждает, что такая команда ждёт вас.

## Откуда он знает и чего никогда не трогает

Каждый агент получает свой слой флагов, переменных окружения и файлов в папке nsq. Ваши `~/.claude`, `~/.codex` и `opencode.json` не изменяются никогда. Хуки шлют события на loopback-адрес с токеном на агента, а факты проходят через тот же автомат состояний, что и в десктопном приложении: хук — это факт, ваше нажатие в ждущем агенте учитывается сразу, а тишина — только запасной вариант.

Этот автомат не новый. Вместе с настройкой хуков, чтением транскрипта Claude Code и разбором расхода он теперь живёт в **@neurosquad/core** — открытом пакете, на котором построен nsq. Десктопное приложение NeuroSquad использует то же ядро: модули, которые у них совпадали, теперь — одна копия кода, опубликованная под MIT. Когда мы исправляем то, как CLI сообщает свой статус, исправление получают оба.

## Панель, которая сама рисует клетки

Каждая плитка — настоящий эмулятор терминала, который кормит демон, а панель перерисовывает только изменившиеся клетки — не чаще примерно 30 раз в секунду и только когда что-то изменилось. Декоративная анимация — спиннер работы, пульс «ждёт вас» — замирает, пока агент открыт на весь экран и когда терминал теряет фокус, а `NSQ_NO_ANIMATION=1` выключает её совсем. Где терминал умеет показывать картинки (kitty, iTerm2, sixel), на плитках — логотипы CLI; в остальных — маленькие значки из символов.

> **Измерено** На Windows 10 через ConPTY, девять живых плиток с выводом, похожим на вывод агентов, 200 × 50 клеток, 30 кадров в секунду: отрисовка панели занимала в среднем 1,2 мс на кадр (1,9 мс на 95-м перцентиле) за 8 секунд прогона. Одна машина, один прогон — проверка, что рисовать клетки напрямую дёшево, а не бенчмарк.

## Телефон — экспериментально

`nsq phone on --lan` позволяет телефону в той же сети видеть агентов, читать их экраны, отправить промпт, ответить на запрос разрешения и прервать агента. `nsq phone pair` выводит ссылку и QR-код; в ссылке — токен сопряжения, так что обращайтесь с ней как с паролем, а `nsq phone rotate` отключает все телефоны. Сопряжённый телефон не может запускать агентов, менять настройки или набирать произвольные клавиши. Доступ с телефона вместе с его мобильной страницей по умолчанию выключен и в этой предварительной версии помечен как **экспериментальный**.

## nsq или десктопное приложение

Они решают одну и ту же первую задачу и используют одно ядро, так что выбирайте по тому, где вы работаете. **nsq** — для терминала, Linux, серверов и SSH-сессий: бесплатный, с открытым кодом, без аккаунта и без телеметрии. **Десктопное приложение** для Windows и macOS — это вся мастерская: агенты карточками на холсте, гораздо больше CLI-агентов, агенты, которые общаются друг с другом по стрелкам, плагин-карточки, шаблоны и записи. Ничего из этого списка в nsq нет и не планируется — nsq остаётся маленьким.

## Что значит «preview»

- Это версия 0.1.0: команды, флаги и файл настроек ещё могут измениться до 1.0.
- Нужен Node.js 22.13 или новее. Нативные части (терминал, хранилище паролей, диктовка) ставятся готовыми бинарниками — это проверяется в CI из упакованного npm-пакета на Windows, macOS и Linux; голосовой диктовки нет на Windows arm64.
- Полный статус сейчас есть у трёх CLI. Остальные — по запросу: в репозитории есть форма, чтобы попросить свой.
- Телеметрии нет, аккаунт не нужен. `nsq login` существует для необязательного аккаунта NeuroSquad, и ничто в nsq его не требует.

## Открытый код

Код лежит на GitHub — [glmn-ai/neurosquad-cli](https://github.com/glmn-ai/neurosquad-cli), под лицензией MIT: сам CLI, общее ядро и пакеты вокруг него (плитки терминалов, уведомления, диктовка, API для телефона). Мы рады баг-репортам, запросам на новые CLI и пулл-реквестам — как мы работаем, описано в руководстве для контрибьюторов. Всё об установке и использовании nsq — на [его странице](https://neurosquad.ai/ru/cli/).
