Tmux в 2026 году: как держать 4–8 параллельных ИИ-агентов в одной консоли
В 2026 году tmux внезапно стал стандартом для оркестрации параллельных ИИ-агентов. Разбираем три практичных шаблона с конфигами и граблями.
Если у вас на ноутбуке крутится Claude Code, Codex CLI или Gemini, и вы дошли до точки, где хочется запустить второй такой же агент на соседней задаче — а потом третий — а потом перестать терять, кто из них что делал, — у вас уже есть нужный инструмент. Это tmux (терминальный мультиплексор), ему почти 20 лет. В 2026 году он внезапно оказался ровно тем, что нужно для нового способа разработки: разработчики, работающие с ИИ-агентами, переоткрыли его как самый дешёвый способ оркестрировать четыре–восемь параллельных «коллег» из одной консоли. Разбираем три практичных шаблона, которые сейчас обсуждают на Hacker News: Feature Designs от Мануэля Шиппера, agent forking от Каушика Гопала и Worktree-x-tmux от Сё Ито.
Ключевые выводы
- Tmux в 2026 году — не «терминал поверх SSH», а workspace manager для параллельных ИИ-агентов. Один tmux-window = один агент с понятной ролью.
- Практический потолок параллельности — 4–8 агентов на одного разработчика. После 8 страдает качество решений, после 12 теряется ориентация.
- Главная проблема параллельности — не сам tmux, а git: несколько агентов в одном working directory дерутся за файлы. Решение —
git worktree+ один window на worktree. - Feature Designs (FD) от Шиппера — Markdown-спеки с шаблоном «проблема / решения / план / верификация», нумерация FD-001…FD-NNN, шесть слэш-команд для жизненного цикла. Автор сделал 300+ FD за месяцы.
- Подход «forking»: отделить от текущей сессии новый агент с тем же контекстом — для tangential thoughts, проверки гипотез, написания тестов параллельно с фичей. Минимальная реализация — Bash-скрипт + tmux.
Почему tmux именно сейчас
Tmux разработал Николас Маррьотт в 2007 году — как BSD-лицензированную альтернативу GNU Screen с более чистой архитектурой клиент-сервер. Долгие годы он жил в нише: SSH-сессии, длинные сборки, серверная отладка. ИИ-инструменты типа Claude Code, Codex CLI и Gemini CLI всё это поменяли — каждый из них работает в терминале, каждый «жрёт» одно интерактивное окно, и у каждого есть состояние, которое жалко потерять.
Tmux умеет ровно то, что для этого нужно: каждое окно — отдельная сессия процесса, окна можно переключать одной клавишей, сессии переживают отключение SSH и закрытие крышки ноутбука, layout настраивается под конкретный проект. И главное — нет UI, нет vendor lock-in, нет лимита по количеству агентов.
Я намеренно не строю поверх существующих агентов. Я каждый день пользуюсь Claude Code, Codex CLI и Gemini, и они меняются достаточно быстро, чтобы любая толстая прослойка — например, UI — отставала по фичам. Поэтому: bash-скрипт и tmux. Это всё. Доступно практически на любом компьютере.
Шаблон 1: Feature Designs (Шиппер)
Мануэль Шиппер, Staff AI Engineer в Snowflake, описал систему, в которой почти весь код за него пишут агенты — а его роль свелась к проектированию через Markdown-документы. Каждое окно tmux получает одну из трёх ролей:
- Planner — собирает Markdown-спеку для новой фичи или фикса. Здесь Шиппер проводит большую часть времени.
- Worker — реализует код по готовой спеке. Запускается с чистого контекста, чтобы compaction не мешал.
- PM — груминг бэклога и сброс новых идей в очередь.
Каждая спека — это Feature Design (FD) с фиксированной структурой: проблема, рассмотренные решения с плюсами и минусами, выбранное решение с планом имплементации (включая список файлов к изменению), шаги верификации. Пример настоящего FD из проекта Шиппера:
FD нумеруются последовательно (FD-001, FD-002…), хранятся в docs/features/ и проходят через 8 стадий жизненного цикла: Planned → Design → Open → In Progress → Pending Verification → Complete (плюс Deferred и Closed). Шесть слэш-команд автоматизируют переходы:
Главная фишка /fd-deep — параллельный исследовательский запуск четырёх агентов с разными «углами»: алгоритмический, структурный, инкрементальный, environmental. Шиппер вдохновлялся параллельным test-time compute из GPT Pro: вместо одного длинного раздумья — четыре независимых раздумья, потом синтез.
За месяцы работы Шиппер сделал в одном проекте больше 300 FD. Чтобы запускать ту же систему в новых репозиториях, он добавил команду /fd-init, которая создаёт всю инфраструктуру (директории, индекс, шаблон, шесть команд, секцию в CLAUDE.md) одной командой.
Шаблон 2: agent forking (Гопал)
Каушик Гопал из Instacart пошёл с другой стороны. Его мысль: параллельные агенты часто не нужны постоянно — нужны точечные форки. Запустил одну долгую сессию с агентом, наработал контекст, понял, что хочется отвлечься на гипотезу — отделил новый агент с тем же контекстом, поработал, скопировал нужные строки обратно в основную сессию.
Реализация — тонкий Bash-скрипт + tmux, никаких UI. Под капотом он берёт буфер текущей tmux-панели (`tmux capture-pane`), оборачивает его в теги <context>...</context> и запускает в новом окне выбранный CLI с этим текстом как первым промптом. Это не «форк процесса агента», а seed нового агента транскриптом предыдущего разговора. Скрипт лежит на GitHub Gist. Требования автора:
- Tool-agnostic forks: можно начать сессию с Codex CLI, форкнуть в Claude Code с тем же контекстом, потом ещё один форк в Gemini (например, для генерации диаграмм через MCP-сервер с Gemini Nano Banana — моделью генерации изображений Google).
- Interactive, not one-shot: форкнутая сессия — это полноценный диалог, а не headless-вызов с автоматическим возвратом результата. Копируете руками то, что нужно.
- Без слияния: не пытаемся «мерджить» результат форка обратно. Tmux позволяет выделить мышью и вставить в основное окно — этого достаточно.
Главный плюс такого подхода — низкий когнитивный оверхед: не нужно заранее спланировать «у меня будет четыре агента», просто форкаешь по мере необходимости. Минус — труднее держать долгую параллельную работу: если форк живёт час и накапливает свой контекст, вернуть его обратно в основной поток без потерь сложнее, чем у Шиппера с FD.
Шаблон 3: git worktree + tmux (Ито)
Сё Ито описал паттерн, который сейчас рекомендуют все, кто пробовал держать больше двух агентов параллельно: один worktree на агента, одно tmux-window на worktree.
Проблема, с которой он столкнулся: когда два агента работают в одном working directory, они конфликтуют по файлам. Один начал переименовывать функцию, второй параллельно правит тесты той же функции — git status показывает кашу, а имплементация теряется в неразрешимых merge-конфликтах. Возвращаешься к последовательному запуску, и весь смысл параллельности теряется.
Решение — git worktree, родная фича git с 2015 года, которая позволяет иметь несколько working directories из одного репозитория. Каждый worktree — отдельная директория, отдельная ветка, отдельный набор файлов. Агент в worktree A не видит изменений агента в worktree B, пока они оба не попадут в общую ветку.
Ито предупреждает про второй уровень — pane hell: если делать один tmux-window на проект и сплитить панелями каждый worktree, очень быстро теряется ориентация. Особенно при 2–3 параллельных проектах с 5 worktree в каждом. Его решение — наоборот, один tmux-window на worktree, переключение между ними клавишей, имя окна = имя worktree. Pane-сплиты остаются для технических нужд (Claude Code + shell для команд + Vim для просмотра diff).
Чтобы не настраивать всё это руками каждый раз, Ито написал утилиту kage («тень» по-японски): она создаёт worktree, открывает tmux-window с правильным именем, поднимает в нём Claude Code и preset из shell + Vim. Аналогичные обёртки уже появились у других — например, agent-deck от Ашеша Гоплани и vibe-switch от Брайана Чжана.
Минимальный конфиг tmux под параллельных агентов
Если вы пришли в tmux с нуля — вот точка входа, которая хорошо работает с агентами в 2026-м. Файл ~/.tmux.conf:
Сценарии запуска агентов удобнее держать отдельным shell-скриптом — три-четыре строчки, которые создают окно с правильным именем и запускают в нём агент с нужным флагом. Минимальный пример для запуска воркера в worktree:
Практические лимиты и грабли
Все три автора независимо упёрлись в один и тот же потолок — 4–8 параллельных агентов. После восьми падает качество принимаемых решений: разработчик перестаёт помнить, что какой агент делает, и начинает соглашаться на их предложения, не вникая. Шиппер пишет про это прямо: «после 8+ агентов мне трудно держать ритм, и качество моих решений страдает». Симптомы, по которым можно поймать свой потолок: вы начинаете подписывать diff-ы по диагонали, забываете, на какой задаче был агент B, и обнаруживаете, что один из агентов уже полчаса генерит мусор в пустоту, потому что вы переключились в другое окно.
Грабли, на которые стоит наступить заранее:
- Pane hell: не сплитьте панели по worktree, делайте window-per-worktree. Иначе через два часа вы не вспомните, где какой агент.
- Compaction теряет планы: когда планировщик-агент уходит в /compact, он часто роняет важные детали FD. Шиппер просит агентов писать checkpoint вручную в Markdown между сессиями.
- Без worktree — конфликты: даже два агента в одном working directory гарантированно сломают друг другу промежуточный коммит. Worktree обязателен с третьего агента.
- Inline-аннотации в спеках лучше чата: для сложных FD Шиппер рекомендует править Markdown в редакторе и оставлять
%% комментариив нужных местах, потом просить агента «check %% notes». Точнее, чем «давай обсудим». - Dev guide важнее разрастающегося CLAUDE.md: вместо одного бесконечного файла лучше держать
docs/dev_guide/с короткой сводкой при старте сессии и подробностями по запросу.
Часто задаваемые вопросы
Зачем мне tmux, если у меня есть терминал с вкладками?
Вкладки нативного терминала умирают вместе с приложением: закрыли терминал — потеряли все агенты с накопленным контекстом. Tmux-сессия живёт на стороне сервера (в т. ч. на удалённой машине): можно отключиться, перезагрузить ноутбук, продолжить с того же места. Плюс tmux умеет именованные окна, переключение по горячим клавишам, layout и сценарии — всё, чего у нативных вкладок нет.
Что лучше — git worktree или несколько клонов репо?
Worktree. Несколько клонов — это N×размер репо на диске, отдельные .git-каталоги (значит, отдельные удалённые ссылки, hooks, конфиги). Worktree разделяет один .git, занимает на диске только diff между ветками и автоматически синхронизирует remote/branches. Создаётся одной командой: git worktree add ../feat-x feat/x. Минус, общий с любым подходом изоляции рабочего дерева: node_modules или Python venv в каждом worktree свои; решается через pnpm-store или симлинк зависимостей между worktrees.
Сколько агентов реально можно держать параллельно?
Практический потолок одного разработчика — 4–8. Технически tmux выдержит сколько угодно, и API-лимит провайдера обычно тоже позволяет. Узкое место — внимание разработчика: после 8 агентов вы перестаёте отслеживать, что они делают, и начинаете подписывать их решения вслепую. Если задач больше — начинайте с двух-трёх и наращивайте по мере того, как привыкаете к ритму проверки.
Можно ли использовать что-то поверх tmux вместо Bash-скриптов?
Да, появились готовые обёртки: kage (Сё Ито), agent-deck (Ашеш Гоплани), vibe-switch (Брайан Чжан), dmux. Все они автоматизируют связку «worktree + window + агент». Минус готовых обёрток — отстают от изменений в самих агентах. Каушик Гопал, например, осознанно остался на Bash-скрипте именно по этой причине.
Tmux работает на Windows?
Нативно — нет. Через WSL2 (Windows Subsystem for Linux) работает вся связка целиком: ставите Ubuntu/Debian в WSL, в нём — sudo apt install tmux, в нём же — Claude Code, Codex CLI или Gemini CLI. Tmux-сессия будет жить внутри WSL2, агент тоже, доступ к коду — через общий с Windows файл-систему (/mnt/c/...). Альтернатива без WSL — Windows Terminal с табами + Zellij (terminal multiplexer с нативной поддержкой Windows), но Claude Code на Windows нативно ставится только через WSL2 или Docker.
Что попробовать на этой неделе
Если у вас уже стоит хотя бы один coding-агент, попробуйте такой план на три дня. День 1: создайте ~/.tmux.conf из приведённого минимума (префикс, mouse on, base-index 1) и поработайте день в одном tmux-окне с одним агентом — просто чтобы привыкнуть к навигации. День 2: добавьте второй worktree через git worktree add и второе окно с агентом на параллельной задаче. День 3: третий agent в третьем worktree. Если на четвёртом начали путаться, кто из агентов что делает — вы нашли свой персональный потолок. Если зашло — добавьте FD-шаблон Шиппера на одном проекте, потом — agent-fork по Гопалу для тангенциальных гипотез.
Главное наблюдение всех трёх авторов простое: tmux никуда не девался, просто внезапно оказался ровно тем инструментом, который нужен для нового способа разработки. Толстые UI вокруг агентов отстают от самих агентов; тонкая прослойка из tmux + Bash-скриптов остаётся гибкой ровно настолько, насколько вы готовы её менять под себя.
Источники: Manuel Schipper — How I run 4–8 parallel coding agents with tmux and Markdown specs, Kaushik Gopal — Forking subagents in an AI coding session with tmux, Sho Ito — Parallel Coding Agents with Git Worktree x tmux, обсуждение на Hacker News.