Все записи
БлогВыпускРасширенияИнтеграции

Смена CLI агента посреди задачи, шаблоны в готовый воркспейс и Graphify

Карточка агента раньше была привязана к CLI, с которым её создали. NeuroSquad 0.1.253 позволяет переключить её на другой прямо на месте, вместе с разговором, — а ещё вставлять шаблоны в готовый воркспейс и смотреть на Graphify, живую карту вашего кода.

8 мин чтенияЧто вошло в 0.1.253

Добавляя агента на холст, вы выбираете его CLI: Claude Code, Codex, OpenCode, Gemini CLI или другой. До сих пор этот выбор был окончательным. Если посреди задачи хотелось мнения другой модели или один CLI упёрся в лимит, приходилось заводить новую карточку и объяснять всё заново.

В NeuroSquad 0.1.253 появилась смена харнесса: та же карточка, тот же терминал, другой CLI — и разговор переходит вместе с ним. Ещё в этом релизе можно вставить шаблон в воркспейс, который у вас уже есть, и появился шестой плагин, Graphify: карта вашего кода, которую агенты спрашивают вместо grep, а каждый их вопрос рисуется на карточке в момент запроса. Это релиз для Windows; приложение для Mac пока остаётся на 0.1.230 и получит всё это со следующей сборкой.

Смена харнесса: одна карточка, другой CLI

Откройте меню карточки и выберите «Сменить харнесс…». В диалоге — ИИ-харнессы, установленные на этом компьютере. Выберите нужный, под ним — провайдер и модель для него, те же, что в меню провайдера на карточке. Два переключателя решают, что будет с разговором: «Перенести разговор» и «Отправить автоматически».

Диалог «Смена харнесса»: «Сейчас: Claude Code»; список установленных харнессов, выбран OpenCode; поля «Провайдер» и «Модель»; переключатели «Перенести разговор» и «Отправить автоматически»; пояснение, что не переносится; кнопки «Отмена» и «Переключить на OpenCode»
Карточка Claude Code переходит на OpenCode со своим провайдером. Пояснение внизу говорит, что не переносится.

Карточка остаётся на месте. Положение на холсте, стрелки, рамка, имя и заметки сохраняются, и сам терминал тоже: старый CLI останавливается, новый запускается в том же xterm, под приглушённой линией с указанием, какой харнесс пришёл на смену.

Модель разговор не пересказывает. NeuroSquad читает транскрипт текущей сессии — файл, который пишет сам CLI, — и превращает его в первое сообщение новому харнессу: ваши запросы, ответы, изменённые файлы и список задач, до 14 000 символов, а полная копия сохраняется в папке приложения. Это ничего не стоит. Внутренности вызовов инструментов, изображения и скрытые рассуждения не переносятся, и диалог об этом предупреждает. Если выключить «Отправить автоматически», сообщение только вставится в поле ввода, чтобы вы его прочитали и поправили.

Та же карточка, развёрнутая, теперь на OpenCode: первое сообщение с пометкой NeuroSquad harness switch говорит, что карточку переключили с Claude Code, и содержит задачу, разговор с планом Claude Code и просьбу коротко подытожить; OpenCode отвечает, что подхватил план и следующий шаг — потоковый эндпоинт
Что получает OpenCode: задачу, разговор с Claude Code и просьбу подытожить, где всё стоит, — это взято из транскрипта, а не написано моделью.

Обратное переключение — не вторая передача дел. Карточка помнит свои сессии, поэтому харнесс, который в ней уже работал, отмечен в диалоге «Продолжит свою сессию». Выберите его — и CLI продолжит свою исходную сессию, а получит только то, что произошло без него, в нашем случае ход в OpenCode.

Карточка, развёрнутая, снова на Claude Code: его прежний ход с планом на месте, дальше сообщение о том, что карточка какое-то время работала на OpenCode, с тем, что там произошло, — запрос «Write the tests for step 3» и ответ OpenCode, — и ответ Claude Code, что он вернулся и переходит к кнопке Download CSV
Снова Claude Code: продолжается его исходная сессия — первый ход виден выше, — и добавляется только ход из OpenCode.
  • Посреди хода диалог предлагает «Прервать и переключить» — прерывание тем способом, который ждёт этот CLI, а не вслепую Ctrl+C — или «Переключить после хода».
  • Режимы, которые новый харнесс не поддерживает, откладываются и возвращаются: CLI без опасного режима спрашивает подтверждения как обычно, без режима карточек — пользуется своими инструментами, без поддержки провайдера карточки — работает на своём логине, если не выбрать другой. При обратном переключении всё вернётся.
  • В воркспейсах WSL и SSH пока работает только Claude Code, так что переключаться там не на что — диалог так и скажет.

Чтобы это работало на месте, пришлось поменять одну вещь глубоко внутри карточки. Компонент терминала был привязан к харнессу ключом, так что другой харнесс означал новый компонент, а в NeuroSquad размонтирование терминала завершает его процесс. Теперь терминал читает харнесс на лету и сам запускает новый CLI, когда старый действительно завершился. А перед тем как новый начнёт рисовать, терминал убирает то, что оставляет полноэкранный CLI, — альтернативный экран, отслеживание мыши, скрытый курсор, — так что следующий CLI стартует на чистом экране, а прежний вывод остаётся в прокрутке.

Шаблоны в воркспейс, который у вас уже есть

Шаблоны появились в прошлом релизе, и каждый импорт создавал новый воркспейс. Часто нужно обратное: агенты уже настроены, не хватает одного куска — например, автора документации рядом с ними. Теперь в диалоге импорта есть «Новый воркспейс / В существующий», а «Инструменты холста → Вставить шаблон…» или «Шаблон…» в меню добавления карточек открывают его сразу для текущего воркспейса.

Диалог импорта шаблона Docs Writer with Live Library Docs в режиме «В существующий»: пояснение, что карточки добавятся рядом с вашими и ничего не перезапустится; раздел «Используются ваши карточки» с карточкой Context7 из воркспейса; «Всё, что нужно шаблону, уже есть на этом компьютере»; первый промпт; справа превью, воркспейс Reports app и кнопка «Добавить в воркспейс»
Шаблону нужна карточка Context7; в этом воркспейсе такая уже есть с теми же настройками, и шаблон подключается к ней, а не добавляет вторую.

Новое здесь — повторное использование. Некоторые карточки нужны по одной на воркспейс — статус команды, бюджет, Code Graph, RTK, — и если такая уже есть, шаблон берёт её. Память, Caveman и Context7 используются повторно, когда их настройки совпадают с шаблоном; карточка MCP или навыка — когда указывает на тот же сервер или навык. Иначе шаблон приносит свою копию: молча поменять поведение вашей карточки было бы хуже, чем вторая карточка. Стрелки шаблона соединяют только добавленные им и повторно использованные карточки; ваши прежние стрелки не меняются.

Новые карточки появляются вместе, справа от того, что уже есть на холсте, или под ним, в раскладке шаблона и в рамке с его именем. Камера перелетает к ним. Первые промпты вставляются только новым агентам, и ничего из уже запущенного не перезапускается. Если получилось не то, в уведомлении есть «Отменить»: эта кнопка убирает ровно те карточки, что добавила вставка, а установленное остаётся.

Холст Reports app после вставки: сверху прежние карточки статуса команды, Lead, Context7 и Plan; ниже рамка Docs Writer with Live Library Docs с агентом Writer, браузером Docs preview и заметкой Docs brief, стрелка от Writer к прежней карточке Context7 и уведомление «Docs Writer with Live Library Docs» добавлен, 3 новые карточки, с кнопкой «Отменить»
Три новые карточки в своей рамке; стрелка Writer идёт к карточке Context7, которая уже была. «Отменить» уберёт ровно эти три.

Graphify: живая карта вашего кода

Шестой плагин построен на graphify — открытом проекте (Apache-2.0), который превращает кодовую базу в граф знаний: файлы, функции, классы, вызовы и импорты, сгруппированные в подсистемы. Проведите стрелку от агента к карточке Graphify, и агент получит инструменты graphify_* для вопросов о структуре: кто вызывает эту функцию, что затронет изменение здесь, как связаны эти две части, из чего состоит подсистема. Ответ приходит из графа одним вызовом, а не циклом поисков и чтения файлов.

Развёрнутая карточка Graphify в воркспейсе Landing site: 2 987 символов в 487 файлах и 123 подсистемах; карта файлов проекта, раскрашенная по подсистемам, путь запроса подсвечен синим, кольца — там, где он начался; справа вопрос агента Lead «how does the blog feed build post links», пройдено 280 узлов, и найденные файлы с file:line; внизу лента с этим вопросом и более ранним запросом соседей blogHref
Выясняя, где используется blogHref, агент спросил граф, как лента блога строит ссылки на посты. Щелчок по этому запросу в ленте проигрывает его заново: стартовые узлы расходятся кругами, затем поиск распространяется шаг за шагом.

Главное в карточке — на её работу можно смотреть. Она рисует граф — размер файла зависит от того, сколько в нём всего, цвет — от подсистемы, — и на нём проигрывается каждый запрос агента: стартовые узлы расходятся кругами, поиск распространяется шаг за шагом, а результат остаётся подсвеченным, со ссылками file:line, которые открываются в редакторе. Лента хранит последние запросы; щёлкните по одному, чтобы повторить его.

graphify — программа на Python, поэтому карточка ставит его по запросу в папку приложения: свой Python, около 250 МБ, каждая загрузка сверяется с закреплённой контрольной суммой, каждый пакет — с хэшем. Ваш собственный Python не используется. При первом открытии карточка картирует весь проект, показывая прогресс и сколько осталось; дальше граф обновляется через несколько секунд после изменения файлов. В проект и в домашнюю папку ничего не пишется, языковая модель не участвует, API-ключи ему не передаются. Работает в локальных воркспейсах и в WSL; по SSH карточка честно говорит, что недоступна.

Агенты склонны возвращаться к grep, даже когда рядом есть инструмент получше, поэтому карточка им напоминает. Описания инструментов начинаются с того, когда их использовать вместо текстового поиска. В первом ходе со стрелкой агент получает короткую записку: граф есть, и вот на что он отвечает; позже — напоминание в одну строку, если запрос похож на вопрос о структуре. Claude Code ещё получает подсказку в одну строку, когда ищет grep-ом что-то похожее на имя функции или класса, — это констатация, а не запрет: поиск всё равно выполняется.

Чтобы встроить graphify в приложение, пришлось кое-что сделать на нашей стороне, не трогая его код. Его точка входа командной строки обновляет навыки ассистентов в домашней папке, поэтому карточка вызывает шаг сборки напрямую, а наши тесты проверяют, что домашняя папка остаётся нетронутой. Прогресс он печатает только раз в сто файлов, поэтому карточка сама считает обработанные файлы, чтобы показать настоящую полосу прогресса. А ещё он отказывается сохранять граф меньше предыдущего — это защита для его собственных многосессионных сборок, — и удалённые файлы так и оставались бы на карте, поэтому в процессе карточки эта проверка выключена.

Изменения поменьше

  • Шаблоны команды NeuroSquad помечены в маркетплейсе значком «Официальный», а счётчики лайков и загрузок скрыты, пока они нулевые.
  • Подсказка режима карточек на карточке теперь говорит, что происходит с этим CLI: его собственные шелл и веб отключаются со следующего запуска, а у Cursor CLI блокируются сразу.

Ещё на сайте

  • Новая страница «Режим карточек»: интерактивная история в интерфейсе самого приложения — от включения режима до агента, который работает через карточки. На главной теперь есть короткий блок о режиме карточек со ссылкой на неё.
  • Десять официальных шаблонов от команды NeuroSquad в маркетплейсе шаблонов.
  • Страница плагина Graphify с интерактивным демо живого запроса на карте кода и сравнением с Code Graph.
  • Для ИИ-ассистентов: сайт публикует файлы llms.txt и посты блога в Markdown, а каждая страница документации тоже доступна в виде Markdown.

В документации есть руководства по Graphify и по вставке шаблона. Полный список изменений — в журнале изменений 0.1.253. NeuroSquad обновляется сам; новую установку начните со страницы загрузки.