Herdr: обзор терминального мультиплексора для нескольких ИИ-агентов
Обзор Herdr: терминальный мультиплексор для ИИ-агентов. Как устроены сессии и статусы Claude Code и Codex, что умеет командная строка и где ограничения.
Что такое Herdr
Вы открываете Herdr в терминале и видите окно с панелями. В каждой работает привычный агент: Claude Code, Codex, Cursor, любой другой из установленных. Сбоку список агентов и панелей со статусами: агент работает, ждёт ответа, закончил. Агентов Herdr не заменяет: он даёт им общее окно и показывает, кто чем занят.
Польза появляется, когда агентов больше одного. Один пишет код, второй проверяет изменения, третий гоняет тесты. Вместо переключения между окнами терминала вы смотрите на одно окно и сразу видите, кто ждёт вашего ответа. Запускаются те же агенты, что и без Herdr, поэтому модели, лимиты и привычные команды остаются прежними. Готовых CLI в списке поддержки больше десятка, а незнакомый агент просто останется панелью без статуса.
Как устроена сессия: сервер, пространства, вкладки, панели
Устроено всё в три уровня. Пространство (workspace) соответствует проекту или задаче, вкладка (tab) задаёт раскладку, панель (pane) это настоящий терминал с живым процессом. Панели делятся вправо и вниз, перетаскиваются мышью, разворачиваются на весь экран. Боковая панель собирает состояние всех пространств и поднимает наверх то, где агент просит внимания.
По умолчанию Herdr работает как фоновый сервер плюс подключённый клиент. Отключение клиента по ctrl+b q не останавливает работу: панели, тесты, dev-серверы и агенты продолжают жить в сервере. Чтобы вернуться к работе, достаточно запустить herdr в терминале, в том числе по SSH с другого устройства. С версии 0.9.4 сервер на Linux и macOS игнорирует SIGHUP, поэтому закрытие оболочки, из которой его запустили, больше не убивает сессию2.
Если сервер или машина всё-таки остановились, Herdr восстановит раскладку сессии: пространства, вкладки, панели, рабочие каталоги, фокус. Процессы при этом не сохранятся, панели вернутся свежими оболочками в тех же каталогах. Продолжить разговоры с агентом можно только через интеграции: herdr integration install claude или herdr integration install codex учат Herdr продолжать сессию агента. Herdr отвечает за терминалы, а не за перезапуск работы после падения питания.
Пространство удобно привязать к репозиторию и ветке: отдельная команда herdr worktree create --branch feature-x поднимает рабочую копию под задачу, не трогая текущую ветку. Уведомления тоже управляются из терминала: herdr notification show "Сборка готова" --sound done покажет всплывающее сообщение в углу экрана, если вы как раз смотрите в другую панель.
Для разделения контекстов есть именованные сессии: herdr session attach work поднимает независимый сервер со своими панелями, сокетами и состоянием, но с общим файлом настроек.
Статусы агентов: working, blocked, done, idle
| Состояние | Что означает |
|---|---|
| working | Агент активно работает |
| blocked | Агент ждёт ввода, подтверждения или решения |
| done | Агент закончил, вы ещё не смотрели результат |
| idle | Агент свободен или завершил работу, которую вы уже видели |
| unknown | Процесс есть, но Herdr не может уверенно классифицировать состояние |
Herdr ищет процесс агента в панели и читает нижнюю часть текущего экрана (не тот участок, куда вы прокрутили), а правила в манифесте распознавания определяют состояние. Если установлена интеграция агента и она сама сообщает статус, показания интеграции важнее чтения экрана. Список поддержки включает Claude Code, Codex, Cursor Agent CLI, OpenCode, Copilot CLI, Gemini CLI, Grok CLI, Pi и ещё несколько инструментов.
done и idle различаются только тем, смотрели вы на результат или нет. Каждый клиент считает просмотренное сам, поэтому бейдж в одном окне может отличаться от бейджа в другом, а командная строка ориентируется на состояние сервера. Для автоматизации оба состояния означают «готов принимать ввод», на что и опираются команды ожидания.
Если запустить агента внутри tmux, который сам работает внутри панели Herdr, статус до него не дойдёт, потому что tmux перехватывает управляющие последовательности. Агента надо запускать в панели напрямую. То же ограничение касается десктопного продукта Herdr App: там статусы показываются только для агентов, которые умеют сообщать о себе по открытому протоколу OSC 7501.
Установка и первый запуск
Установка занимает одну строку: curl -fsSL https://herdr.dev/install.sh | sh1. Есть Homebrew, mise и Nix flake, для Windows отдельный установщик PowerShell. Бинарник один, без Electron и без графических зависимостей: Herdr ставится на ноутбук и на сервер, работает поверх обычного терминала и не требует графической сессии. Отличия Windows описаны ниже.
Дальше herdr в каталоге проекта поднимает сервер и открывает интерфейс. Раскладка и навигация работают через префикс: нажимаете ctrl+b, отпускаете и добавляете клавишу. Для большинства повседневных задач хватает пяти действий: c новая вкладка, v разделить панель вправо, h/j/k/l переход между панелями, w навигация по пространствам, q отключиться с сохранением всего. Полную карту можно вызвать по ctrl+b ?.
Мышью можно выбирать панели и вкладки, перетаскивать границы, открывать контекстное меню правой кнопкой, выделять и копировать без ctrl+c. Если перехват мешает, [ui] mouse_capture = false в ~/.config/herdr/config.toml возвращает управление терминалу, но вместе с ним отключает и мышиные жесты Herdr.
Настройки читаются из ~/.config/herdr/config.toml, и без файла Herdr работает на значениях по умолчанию. Команда herdr --default-config печатает полный набор параметров: при первом запуске её вывод можно сохранить в config.toml как основу. Если файл уже есть, сначала сделайте копию, иначе рабочая настройка будет затёрта. Перечитать настройки без остановки панелей позволяет herdr server reload-config.
Командная строка и сокет-API
Все ответы командной строки Herdr в JSON, идентификаторы предсказуемые: w1 пространство, w1:t1 вкладка, w1:p1 панель. Агенты получают в переменных окружения собственный контекст, поэтому команды с --current работают из той панели, где вы находитесь.
Типичная цепочка «агент запускает помощника» выглядит так:
herdr pane split --current --direction right --cwd "$PWD" --no-focusсоздаёт панель и возвращает её идентификатор.herdr agent start reviewer --kind codex --pane w1:p2поднимает Codex и ждёт, пока тот будет готов принимать ввод.herdr agent prompt reviewer "Проверь диф и перечисли только проблемы" --wait --timeout 120000отправляет задачу и ждёт первого устойчивого состояния.herdr pane read w1:p2 --source recent-unwrapped --lines 120читает ответ,herdr pane close w1:p2убирает панель.
Для обычных процессов есть отдельные команды, удобные для тестов и сборок: herdr pane run отправляет команду, herdr pane wait-output --match "test result" ждёт нужную строку, herdr pane read --format ansi сохраняет цвета, когда они служат доказательством. Можно ждать и конкретного состояния: herdr agent wait reviewer --until blocked вернётся ровно тогда, когда агент просит решения, а не по таймеру.
Управляющие команды требуют переменную HERDR_ENV=1, то есть вне панели Herdr случайно ничего не переключится. Если агент уже висит на диалоге подтверждения, agent prompt вернёт ошибку agent_blocked и не станет отправлять текст, который всё равно ушёл бы не туда. Состояние done ещё не доказывает, что агент закончил разговор с вами: у некоторых агентов фоновые задачи живут дольше основного ответа.
Удалённые машины: один клиент, сколько угодно серверов
Команда herdr machine add vps один раз описывает доступ к SSH-машине, после чего пространства и агенты удалённого сервера появляются в том же окне и в той же боковой панели, что и локальные. Переключение между машинами не открывает второй клиент, у каждой машины собственный набор панелей и собственный сервер, поэтому потеря связи с одной не тянет за собой остальные.
Есть и второй режим: herdr --remote ssh://user@host рисует интерфейс локально, а панелями управляет удалённый сервер. Тогда работают локальные шрифты, буфер обмена и уведомления, а процессы остаются на сервере. Для слабых каналов Herdr просит у SSH сжатие, чтобы не гонять экран целиком.
Так можно работать и с телефона: агент живёт на арендованном сервере, а вы подключаетесь к нему с ноутбука или из мобильного SSH-клиента, и сессия не прерывается, когда крышка закрыта.
Herdr App и Herdr TUI: два разных продукта
Herdr TUI и Herdr App не делят состояние.
Herdr TUI это исходный Herdr, терминальное приложение со своим сервером. Всё, что описано выше, относится к нему. Herdr App это отдельная десктопная программа на ядре herdr-core с графическим окном, раскладками и модами на JavaScript, которые лежат в ~/.config/herdr-app. У App свой командный интерфейс hc, свои раскладки и своя галерея сообщества.
Агенты, запущенные в App, не видны в TUI, и наоборот3. Статусы в App приходят только по OSC 7501, поэтому агент без поддержки протокола работает как обычный терминал без бейджа. Выбор зависит от того, как вы работаете: в терминале и по SSH или в графическом окне с мышью.
Ограничения, о которых лучше знать заранее
После перезагрузки вернётся раскладка, но не процессы. Если задача должна переживать падение машины, нужен внешний планировщик, а не мультиплексор.
Статусы зависят от агента. Незнакомый инструмент останется просто терминалом, а агент внутри tmux потеряет статус вовсе.
Диалоги подтверждения требуют человека. При статусе blocked команда не станет отвечать за вас на вопрос агента.
Маркетплейс плагинов не модерируется: каталог собирается из публичных репозиториев GitHub по тегу herdr-plugin. Плагин это обычный код с полным доступом к CLI Herdr, поэтому устанавливать его стоит только при доверии к автору.
Клиент и сервер могут разойтись по версиям после обновления. Проверить версии можно через herdr status, а останавливать сервер из живой сессии не нужно.
Windows поддерживается, но с оговорками: подсистема ConPTY ведёт себя иначе, часть возможностей зависит от платформы.
Результат работы агента всё равно нужно проверять. Herdr показывает, кто ждёт ответа, но не гарантирует, что агент сделал именно то, о чём вы просили.
Три сценария, где Herdr реально экономит время
Смысл в том, чтобы вести параллельные задачи и видеть, кто из агентов на каком этапе.
Первый: один проект и два агента с разными ролями. В одной панели Claude Code пишет код, во второй Codex проверяет диф, в третьей крутятся тесты, в четвёртой висит лог. Пространство привязано к репозиторию, вкладки разделяют «работу» и «проверку», а боковая панель подсказывает, кто именно ждёт вашего слова. Об оркестрации ИИ-агентов у нас есть отдельная статья.
Второй: длинная задача на арендованном сервере. Агент запускается на VPS, вы закрываете ноутбук, возвращаетесь вечером и видите либо готовый результат, либо вопрос. Ничего не нужно держать открытым, а канал рвётся сколько угодно раз.
Третий: несколько машин в одной панели. Ноутбук, домашний сервер и облачная песочница добавляются по SSH и живут рядом. Удобно, когда один агент собирает релиз локально, второй гоняет тяжёлые тесты на сервере, а третий копается в чужом репозитории в песочнице.
Чем заменить, если не подходит
Если нужны только терминалы без слоя статусов агентов, подойдут tmux и zellij: они решают ту же задачу с сессиями и переживают разрыв соединения. Herdr стоит брать тогда, когда агентов больше одного и вы устали вручную искать, кто из них завис на вопросе.
Если нужен графический интерфейс и раскладки мышью, смотрите Herdr App, но помните, что это другой продукт с другим состоянием. Если нужен запуск агентов из кода без терминала, Herdr может оказаться лишним слоем: его CLI рассчитан на то, что панели и оболочки уже есть.
Попробовать Herdr можно на одном проекте. В карточке Herdr в каталоге ailibri есть краткое описание и оценки, а сам Herdr ставится и обновляется одной командой.
Да, если сессия живёт на сервере. Отключение клиента по ctrl+b q не останавливает панели, а на Linux и macOS сервер игнорирует SIGHUP. Если же машина или сам сервер Herdr перезапустились, вернутся только раскладка и каталоги, процессы придётся запускать заново.
Да, через SSH обычным терминальным клиентом: herdr запускается на сервере и подключается к уже работающей сессии. Интерфейс адаптируется под узкий экран, но клавиатурные сокращения всё равно понадобятся.
Аккаунт не нужен, сам Herdr бесплатен и открыт по лицензии Apache 2.0. Модели оплачиваются по условиям поставщика агента: если у вас подписка Claude Code или Codex, платите только за неё.
Три частые причины: версия агента не умеет сообщать состояние, агент запущен внутри tmux в панели Herdr, либо это Herdr App, где статусы приходят только по протоколу OSC 7501. Обновление агента или запуск напрямую в панели обычно лечит проблему.
Это разные программы. TUI работает в терминале со своим сервером, App это десктопное окно на ядре herdr-core с раскладками и модами на JavaScript. Они не делят агентов: запущенное в одном не видно в другом.
Примечания
1. Страница Herdr TUI: описание, установка, лицензия Apache 2.0 и заявленные возможности. Сайт проверен 9 ноября 2026 года. ↑
2. Исходный код Herdr TUI: лицензия, журнал изменений версий 0.9.4 и 0.9.5. ↑
3. Сайт проекта: документация, различия Herdr TUI и Herdr App, интеграции и ключи. ↑
Смотрите также
-
Инструменты разработчика·bb: агентная IDE, где несколько ИИ-агентов работают в одном окне
-
Инструменты разработчика·Claude + Obsidian: как собрать второй мозг на своих заметках
-
Инструменты разработчика·MCP в Claude Code: как подключить серверы и зачем нужны агенты
-
Новости·Водяной знак Claude в тексте: что он на самом деле доказывает
-
Инструменты разработчика·Что такое MCP (Model Context Protocol): открытый протокол для подключения ИИ к внешнему миру
-
Инструменты разработчика·Claude Skills: что это, как работают и как создать свой навык
-
Инструменты разработчика·Optima: собственный бенчмарк для моделей на своих же данных
-
Инструменты разработчика·Claude Code vs Cursor vs Codex: сравнение и что выбрать в 2026
-
Инструменты разработчика·YOLO-режим в Codex: как отключить подтверждения и не потерять при этом проект