Как перестать переключать ветки и начать жить с workmux

23 фев 2026
2,440
314
39
5 дней

Представьте: вы глубоко погружены в рефакторинг сложного модуля. Вдруг прилетает критический баг-репорт. Знакомая ситуация? Обычно мы либо делаем git stash, надеясь потом не забыть, что там за гора изменений, либо создаем временный коммит с заголовком «asdf». Но есть способ лучше — работать в параллельных мирах.

Речь пойдет о workmux — инструменте на Rust, который превращает связку git worktree и tmux в мощную среду для параллельной разработки.

Что за зверь этот workmux?

Если коротко: это персональный менеджер контекстов. Вместо того чтобы переключать ветки в одной папке, вы создаете для каждой задачи отдельную директорию (worktree) и автоматически открываемое окно в tmux (или WezTerm/Kitty).

Проект идеально подходит тем, кто:

  1. Часто переключается между фичами и фиксами.
  2. Использует CLI-агентов (вроде Claude Code или Gemini CLI) и хочет запускать их параллельно, не боясь, что они перезатрут файлы друг друга.
  3. Обожает автоматизацию рутины в терминале.

workmux demo

Реклама

Почему обычного Git недостаточно?

Git worktrees — крутая фича, но «голой» ей пользоваться неудобно. Нужно вручную создавать папки, копировать .env, прокидывать node_modules, настраивать панели в терминале.

Workmux берет всю эту «грязную» работу на себя. Одной командой вы получаете готовую рабочую среду, где уже подтянуты зависимости, запущен dev-server и открыт ваш любимый ИИ-помощник.

Три кита автоматизации workmux

1. Изолированные окружения за секунду

Команда workmux add feature-login делает магию:

  • Создает отдельную папку для ветки feature-login.
  • Копирует или симлинкает важные файлы (например, .env или .pnpm-store).
  • Открывает новое окно в tmux с нужной раскладкой панелей.
  • Запускает хуки вроде npm install или миграций БД.

2. Умный Dashboard для агентов

Если вы делегируете задачи нейросетям, через десять минут у вас может быть пять открытых окон, где что-то происходит. Dashboard в workmux позволяет следить за статусом каждого агента в реальном времени. Вы видите: работает он прямо сейчас, ждет вашего ввода или уже закончил править баг.

workmux dashboard

3. Бесшовное слияние (Merge & Clean)

Когда задача готова, не нужно вручную удалять папку и чистить ветки. workmux merge заберет изменения, вольет их в основную ветку, закроет окно в терминале и удалит теперь уже ненужный worktree. Конвейер в чистом виде.

Параллельный рабочий процесс с ИИ

Сегодня многие разработчики используют Claude Code или другие CLI-инструменты. Workmux выводит это на новый уровень. Вы можете буквально «натравить» несколько агентов на разные задачи одновременно:

# Одному агенту отдаем авторизацию
workmux add auth-fix -p "Исправь утечку памяти в auth-middleware.ts"

# Второму — верстку
workmux add ui-update -p "Добавь темную тему для страницы настроек"

Каждый агент работает в своей песочнице. Вы переключаетесь между ними через prefix + Tab в tmux, как между вкладками браузера. Кстати, в заголовках окон tmux отображаются иконки статуса: 🤖 (работает), 💬 (ждет ответа), ✅ (готово).

tmux status showing agent icons

Техническая начинка и конфиги

Инструмент написан на Rust, что гарантирует скорость и минимальное потребление ресурсов. Конфигурация очень гибкая и хранится в YAML. Можно задать глобальные настройки в ~/.config/workmux/config.yaml и переопределять их для конкретного проекта в .workmux.yaml.

Пример настройки панелей:

panes:
  - command: <agent> # Запускает Claud/Gemini
    focus: true
  - command: npm run dev
    split: horizontal
    size: 30

Для параноиков (в хорошем смысле слова) есть поддержка песочниц (Sandbox). Можно запускать агентов внутри контейнеров Docker или виртуальных машин Lima. Это гарантирует, что ИИ-агент не вылезет за пределы вашего проекта и не прочитает ваши SSH-ключи или AWS-креды.

Практические советы по внедрению

Если вы решите попробовать workmux, вот пара лайфхаков из личного опыта:

  1. Решаем конфликты портов. Если вы запускаете три копии одного проекта, они все захотят занять порт 3000. В README проекта есть отличный пример Bash-скрипта для post_create, который генерирует уникальные порты на основе имени ворктри. Пользуйтесь!
  2. Симлинки вместо копирования. Для огромных node_modules лучше использовать pnpm и симлинки, чтобы не забивать диск дубликатами зависимостей.
  3. Rust и Cargo. Если вы пишете на Rust, не симлинкайте папку target/. Cargo блокирует её при сборке. Используйте sccache для общего кеша — это спасет ваши нервы.

Стоит ли пробовать?

workmux — это не просто утилита, а смена парадигмы. Если вы чувствуете, что переключение веток и ожидание npm install съедают ваше время, этот инструмент станет глотком свежего воздуха. Он превращает терминал в полноценную IDE для параллельной работы, где контекст никогда не теряется.

Особенно проект «зайдет» любителям кастомизировать свой воркфлоу — здесь можно настроить всё: от иконок NerdFont до сложных матриц генерации веток через stdin.

Попробовать просто:

brew install raine/workmux/workmux
# или через cargo
cargo install workmux

Пожалуй, это лучший способ приручить Git worktrees и заставить их работать на вас, а не против вас.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.