Herdr: tmux для ИИ-агентов — установка и настройка
Коротко
Herdr — терминальный мультиплексор, заточенный под ИИ-агентов: один бинарь на Rust, который держит несколько Claude Code, Codex или Cursor Agent в одном окне и показывает состояние каждого — working, blocked, done, idle. Это и есть отличие от tmux: tmux покажет панели, но не скажет, какой агент час назад завис на вопросе «разрешить запись в файл?», а какой давно закончил.
Установка на macOS и Linux — одна команда: curl -fsSL https://herdr.dev/install.sh | sh, либо brew install herdr. Дальше запускаете herdr, делите окно на панели и стартуете агентов. Конфиг лежит в ~/.config/herdr/config.toml, prefix по умолчанию ctrl+b — как в tmux, привыкать заново не надо.
Состояние репозитория ogulcancelik/herdr на 28 июля 2026 по данным GitHub API: 21 920 звёзд, 1476 форков, 130 открытых issue, лицензия Apache-2.0, последний релиз v0.7.5 от 21 июля. Linux и macOS — стабильно, Windows — бета.
Кому не нужно: если вы гоняете одного агента за раз, tmux или обычные вкладки терминала закроют задачу без нового инструмента.
В чём задача
Проблема появляется на третьем агенте. Один агент — вы просто смотрите в терминал. Два — переключаетесь между вкладками. Три-четыре — и вы уже не помните, кто из них работает, кто ждёт вашего «да», а кто десять минут назад дописал и простаивает.
Больнее всего именно blocked. Агент упирается в запрос разрешения — «применить патч?», «выполнить команду?» — и молча стоит. Вы в это время смотрите в другую вкладку и считаете, что работа идёт. Реально она стоит, и стоят токены вашего внимания, а не модели.
tmux эту задачу не решает принципиально: он ничего не знает про содержимое панелей. Для него все процессы одинаковые. Herdr знает — он опознаёт запущенного в панели агента и классифицирует его состояние, показывая цветную метку в сайдбаре.
| tmux / вкладки терминала | Herdr | |
|---|---|---|
| Разделение экрана, detach/attach | да | да |
| Понимает, что в панели агент | нет | да, 20+ агентов |
Состояние working / blocked / done |
нет | да |
| Агент может управлять соседними панелями | только руками | socket API + CLI |
| Мышь: клик, drag, right-click меню | частично, настраивается | из коробки |
| Зрелость | 15+ лет | репозиторий создан 27 марта 2026 |
Последняя строка важна: Herdr моложе полугода. Он быстро вырос (был №1 в GitHub Trending по Rust) и так же быстро меняется.
Пошагово
1. Поставить бинарь. macOS и Linux:
curl -fsSL https://herdr.dev/install.sh | sh
Альтернативы из документации по установке: brew install herdr, mise use -g herdr, nix run github:ogulcancelik/herdr/v0.x.y. Для Windows есть preview-скрипт на PowerShell, но это бета. Если не хотите гонять скрипт из сети через shell — скачайте бинарь с релизов вручную, дайте chmod +x и положите в ~/.local/bin/herdr.
2. Запустить. Просто herdr — поднимется TUI и создастся сессия. Первый запуск проведёт через онбординг; отключается в конфиге строкой onboarding = false.
3. Сохранить конфиг. Дефолтный конфиг печатается командой и его удобно сразу положить на место:
herdr --default-config > ~/.config/herdr/config.toml
После правок — herdr server reload-config, перезапускать сессию не нужно.
4. Поменять prefix, если ctrl+b занят. Секция [keys] в TOML:
[keys]
prefix = "ctrl+a"
new_tab = "prefix+c"
next_tab = ["prefix+n", "ctrl+alt+]"]
split_horizontal = "prefix+minus"
5. Разделить панель и запустить агента. Мышью — right-click по панели и «split», клавиатурой — через prefix. Дальше в новой панели запускаете claude (или codex, cursor-agent) как обычно. Herdr сам опознает агента и повесит на панель метку состояния.
Если управляете из скрипта или из другого агента, работает CLI:
herdr pane split --current --direction right --cwd "$PWD" --no-focus
herdr agent start reviewer --kind codex --pane <pane-id>
herdr agent prompt reviewer "Просмотри текущий diff" --wait --timeout 120000
6. Подключить агентов к самому Herdr. В репозитории лежит SKILL.md — готовый скилл, который учит агента пользоваться CLI Herdr: создавать панели, запускать соседних агентов, читать их вывод и ждать смены состояния. Работает только внутри управляемой панели, проверка — переменная HERDR_ENV=1. Если вы уже раскладываете работу на роли, как в субагентах Claude Code, это тот же принцип, но с настоящими отдельными терминалами вместо внутренних потоков.
Проверка результата
Что проверить сразу после установки, по порядку — так вы поймаете 90% проблем настройки:
herdr --version— бинарь в PATH и запускается.- Запустите
herdr, разделите окно на две панели, в одной запустите агента. В сайдбаре должна появиться метка состояния. Если её нет — Herdr не опознал агента. - Внутри панели выполните
printf '%s\n' "$HERDR_PANE_ID"— должен вернуться идентификатор видаw1:p1. Пусто значит панель не управляется Herdr. herdr agent list— покажет живых агентов и их состояния в JSON.- Тест detach: закройте окно терминала полностью и откройте заново, запустите
herdr. Сессия и агенты должны быть на месте. Это ключевая функция — если она не работает, всё остальное смысла не имеет. - Проверьте
blocked: дайте агенту команду, которая потребует подтверждения. Панель должна окраситься в состояние ожидания ввода.
Состояния, которые вы увидите, и что они на самом деле значат:
| Состояние | Что означает |
|---|---|
working |
агент выполняет запрос |
blocked |
распознан экран запроса разрешения или вопроса |
idle |
готов к вводу, и вкладку вы уже видели |
done |
то же самое, но фоновая работа закончилась, а вы ещё не смотрели |
unknown |
агент есть, но классифицировать его не удалось — это НЕ «закончил» |
Разница между idle и done тонкая и полезная: done гаснет в idle, как только вы открыли вкладку. CLI-чтение вкладку «просмотренной» не помечает.
Подводные камни
Лицензия — Apache-2.0, а не AGPL. В части обзоров (включая нашу новость про Herdr) проскакивает AGPL-3.0. Файл LICENSE в репозитории на 28 июля 2026 — Apache License 2.0. Если лицензия для вас критична, смотрите файл в репозитории, а не обзоры.
Определение состояний — эвристика, а не контракт. По документации об агентах есть два механизма: lifecycle-хуки (авторитетный источник, но их поддерживают единицы агентов — Pi, OMP, Kimi Code CLI, Hermes, MastraCode) и screen-манифесты — TOML-правила, которые сопоставляются со снимком нижней части экрана. Claude Code, Codex, Cursor Agent, Copilot CLI и большинство остальных работают через второй путь. Практический вывод: когда агент обновит свой TUI, распознавание может временно сломаться, и вы получите unknown вместо blocked. Gemini CLI и Cline в документации прямо помечены как менее протестированные.
tmux внутри Herdr ломает распознавание. Если вы по привычке запустите tmux в панели Herdr, агенты внутри него перестанут определяться. Выбирайте один мультиплексор.
Не весь вывод агента можно вычитать. Многие агенты рисуют интерфейс на alternate screen. Строки, ушедшие оттуда, в скроллбек Herdr не попадают, и увеличение --lines их не вернёт. Обходной путь из SKILL.md — попросить агента записать полный ответ в файл и прочитать файл.
Открытых issue — 130, и часть из них про мелочи, которые вы заметите сразу. Самый популярный тикет — ограничение частоты отрисовки 60 Гц. Есть жалобы на нечитаемую тему в светлом Ghostty, на ESC в WezTerm при enable_kitty_keyboard = true, на F1–F4 в mc и на то, что удалённые сессии не показываются в разделе агентов. Ничего смертельного, но «поставил и всё идеально» не будет.
Windows — бета. На проде под Windows я бы это не запускал; вариант с WSL надёжнее.
Российский контекст. Сам Herdr — локальный бинарь, ставится и работает без обращений к чужим API, herdr.dev на момент проверки открывается напрямую. Но мультиплексор бесполезен без агентов, а большинство из них — Claude Code, Codex, Cursor — требуют рабочего доступа и оплаты зарубежных подписок. Вопрос доступа разбирали отдельно: тарифы и оплата Claude Code. Herdr эту проблему не решает и не обязан.
Токены множатся линейно. Четыре агента в четырёх панелях — это четыре независимых контекста и четыре счёта. Видимость состояний соблазняет запускать больше агентов, чем нужно; за расход придётся следить самому. Та же логика, что и у роёв в Ruflo, только без встроенного учёта стоимости.
Частые вопросы
Чем Herdr отличается от tmux, если оба делят экран?
Знанием о содержимом панелей. tmux — универсальный мультиплексор: он держит процессы, но не различает, шелл там или агент. Herdr опознаёт больше двадцати кодинг-агентов и классифицирует их состояние, а ещё даёт socket API, через который агенты сами создают панели и ждут друг друга. Если вы не работаете с агентами, ставить Herdr вместо tmux незачем — выигрыша не будет.
Нужно ли переучиваться после tmux?
Минимально. Prefix по умолчанию тот же ctrl+b, привязки настраиваются в [keys] в ~/.config/herdr/config.toml, в документации есть отдельный путь миграции для тех, кто идёт с tmux или zellij. Плюс полноценная работа мышью: клик по панели, перетаскивание границ, меню по правой кнопке — тем, кто мультиплексорами раньше не пользовался, входить проще, чем в tmux.
Работает ли Claude Code с Herdr «полноценно»?
Частично. Claude Code распознаётся, состояния показываются, для восстановления сессии используется его нативный идентификатор. Но полноценных lifecycle-хуков у этой связки нет: состояние определяется по снимку экрана. На практике это значит, что в 95% случаев всё корректно, а в оставшихся вы увидите unknown и полезете смотреть панель глазами.
Сколько это стоит?
Сам Herdr бесплатен и открыт под Apache-2.0. Платите вы за агентов — подписками или API-ключами. Никакой отдельной коммерческой лицензии для использования внутри компании покупать не нужно; если сомневаетесь, читайте LICENSE в репозитории на текущий момент, потому что проект молодой и лицензирование в таких проектах иногда меняется между версиями.
Стоит ли ставить прямо сейчас на рабочую машину?
Если вы регулярно гоняете 3+ агентов параллельно — да, окупается в первый же день, а откат тривиален: удалить бинарь и каталог конфига. Если агент у вас один или запускаете их эпизодически — подождите. Проекту меньше полугода, релизы идут часто, а ради красивого сайдбара менять привычный рабочий терминал смысла нет. Тем, кто вообще только начинает с агентами, полезнее сперва разобраться с базой — гайд по Claude Code для начинающих.