Коротко
Статья разбирает архитектуру BB — открытого приложения, которое сводит несколько coding-агентов в общий интерфейс и позволяет менять плагины без перезапуска. Главная ценность — не само окно, а мосты для нормализации разных агентов и цикл, в котором агент может создавать и сразу проверять расширения.
Контекст
Автор описывает репозиторий get-bb/bb по состоянию на конец сентября 2026 года; его компания или должность не указаны. BB распространяется под лицензией MIT, за семь месяцев набрал около 4 тысяч звёзд. Отправная задача — дать разным агентам единый интерфейс и возможность расширять его, не переписывая ядро.
Главное
- Репозиторий get-bb/bb опубликован под MIT и набрал около 4 тысяч звёзд за семь месяцев; описание проверено автором на конец сентября 2026 года.
- npx bb-app запускает server и host-daemon; сервер использует Hono, SQLite в ~/.bb/bb.db и адрес 127.0.0.1:38886.
- Демон подключается к серверу исходящим WebSocket-соединением; версия протокола хоста указана как HOST_DAEMON_PROTOCOL_VERSION = 220.
- Веб, Electron, CLI bb, SDK и приложение Expo работают через общий /api/v1; обновления тредов используют уведомление changed, затем загрузку таймлайна по HTTP.
- BB использует собственный provider bridge protocol поверх JSON-RPC 2.0; ACP — один из поддерживаемых диалектов, а не основа всей архитектуры.
- Claude Code работает через Claude Agent SDK и query, Codex — через codex app-server, Pi — через pi —mode rpc, ACP-агенты — через session/new, session/prompt и session/update.
- Навыки распространяются через общий каталог и команду skills/configure, после чего мост адаптирует их к конкретному агенту.
- Плагины описываются в package.json в блоке bb; для пользовательского агента пример настройки — provider-acp и customAgents с DeepSeek Harness.
- bb plugin dev пересобирает компоненты через 300 мс после изменения; загрузка нового поколения модулей опирается на registerHooks и параметр bbPluginLoad.
- bb-guide добавляет агентам инструкции по BB и навык bb-plugin-authoring с примерно 19 справочниками; автор сообщает о плагине для созвонов, созданном за 20 минут и два промпта.
Как сделано
Запуск npx bb-app поднимает Node-процессы server и host-daemon. Сервер на Hono по умолчанию слушает 127.0.0.1:38886 и хранит состояние в SQLite (~/.bb/bb.db); демон выполняет операции с файлами, git, терминалами и агентами. Демон сам подключается к серверу по WebSocket, а версии их протокола сверяются через HOST_DAEMON_PROTOCOL_VERSION = 220. Клиенты — веб-интерфейс на React 19, Electron, CLI bb, SDK и приложение на Expo — используют общий /api/v1. События тредов добавляются в журнал с sequence; WebSocket сообщает changed, после чего клиент дочитывает данные по HTTP.
Для каждого агента демон запускает отдельный плагин-мост, общающийся по JSON-RPC 2.0 через stdin/stdout. Мост переводит родные события в компактную общую грамматику, а runtime назначает идентификаторы и собирает таймлайн. Claude Code подключается через Claude Agent SDK и query; Codex — через отдельный codex app-server на тред; Pi — через pi —mode rpc; ACP-агенты используют session/new, session/prompt и session/update. ACP здесь лишь один из диалектов собственного протокола BB. Навыки также преобразуются под формат каждого агента, а решения о подтверждении операций могут приниматься либо самим агентом, либо runtime BB.
Плагин — папка с package.json и блоком bb; в нём могут быть серверная часть, интерфейс и, для провайдеров, машинный мост. Горячая перезагрузка использует registerHooks из node:module и метку bbPluginLoad с номером поколения, чтобы Node загружал новый граф модулей. bb plugin dev пересобирает части плагина через 300 мс после изменения. Новая версия сначала запускается рядом со старой; при ошибке остаётся прежняя. После успешного запуска старое поколение останавливается, а интерфейс обновляет бандл с хэшем содержимого. Встроенный bb-guide снабжает агента инструкциями и навыком bb-plugin-authoring примерно с 19 справочниками.
В демонстрации агент за 20 минут и два промпта создал плагин, который расшифровывает запись созвона, выделяет договорённости со сроками и составляет письмо клиенту. Автор также подключал DeepSeek Harness через customAgents плагина provider-acp.
Результаты
BB объединяет Claude Code, Codex, Pi и ACP-агентов в одном приложении, поддерживает общие навыки и расширяемый интерфейс. Плагины можно перезагружать без остановки всего приложения, с сохранением предыдущей версии при неудачном обновлении. В описанной демонстрации агент создал плагин для обработки записи созвона за 20 минут и два промпта. Количественных сравнений скорости, качества расшифровки или надёжности автор не приводит.
Ограничения
Публичный /api/v1 не требует аутентификации и допускает выполнение команд и чтение файлов; сервер по умолчанию привязан к localhost, поэтому нельзя открывать его порт в интернет. Для внешнего доступа описаны BB Connect с входом через GitHub и Tailscale. Плагины не изолированы песочницей и требуют доверия на уровне npm-пакета. Проект молодой: часть API помечена experimental_, нет ролей и совместной работы, стабильное десктопное приложение доступно только для Mac на Apple Silicon. В статье не приводятся независимые тесты демонстрационного плагина или оценка затрат.
Что взять себе
- Общий слой событий позволяет подключать разные агенты, не привязывая интерфейс к названиям и форматам инструментов конкретного поставщика.
- Модель «уведомить об изменении, затем запросить актуальное состояние» снижает риск рассинхронизации между сервером и клиентами.
- При горячей перезагрузке безопаснее сначала запустить новое поколение рядом со старым и сохранить старое при ошибке запуска.
- Не выставляйте неаутентифицированный API в интернет и устанавливайте сторонние плагины только после проверки их кода.
- Документация и навыки, доступные самому агенту, помогают использовать ИИ не только в продукте, но и для разработки его расширений.
Читать оригинал, если…
Откройте оригинал, если нужны детали реализации, кодовые фрагменты, таблица запуска агентов или инструкции по подключению собственного ACP-агента.