qvib.pro
EN

~9 мин чтения · всем · Обновлено: 28.07.2026

Herdr: tmux для ИИ-агентов — установка и настройка

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% проблем настройки:

  1. herdr --version — бинарь в PATH и запускается.
  2. Запустите herdr, разделите окно на две панели, в одной запустите агента. В сайдбаре должна появиться метка состояния. Если её нет — Herdr не опознал агента.
  3. Внутри панели выполните printf '%s\n' "$HERDR_PANE_ID" — должен вернуться идентификатор вида w1:p1. Пусто значит панель не управляется Herdr.
  4. herdr agent list — покажет живых агентов и их состояния в JSON.
  5. Тест detach: закройте окно терминала полностью и откройте заново, запустите herdr. Сессия и агенты должны быть на месте. Это ключевая функция — если она не работает, всё остальное смысла не имеет.
  6. Проверьте 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 для начинающих.

Читайте также

Базовый разбор темы — ИИ-агенты: с него удобно начать, если тема новая.