gwm CLI

Менеджер git worktree на Rust с TUI: создает ветку, копирует файлы, запускает setup и показывает, где работает ИИ-агент

  • 150 ★ репозитория
  • Последний коммит
  • Apache-2.0
CLI

Расширенный доступ

Почему такой уровень

  • Хуки из `.gwm.toml` выполняют команды оболочки; в версиях до 1.6.0 имя ветки с символами `;` или `$` исполнялось как команда (GHSA-fffq-vg6f-gxqm).
  • Инструмент создает и удаляет рабочие копии на диске и ходит в GitHub или GitLab через `gh` и `glab`.
Все причины и проверки

kbrdn1/gwm-cli

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/gwm

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Хуки из `.gwm.toml` выполняют команды оболочки; в версиях до 1.6.0 имя ветки с символами `;` или `$` исполнялось как команда (GHSA-fffq-vg6f-gxqm).
  • Инструмент создает и удаляет рабочие копии на диске и ходит в GitHub или GitLab через `gh` и `glab`.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

gwm — один бинарник на Rust (CLI и TUI) для работы с git worktree во всех репозиториях сразу. Команда `gwm create feat 42 user-auth` создает ветку, кладет рабочую копию на диск, копирует нужные файлы, выполняет настроенные команды подготовки и связывает рабочую копию с задачей GitHub под номером 42. Без аргументов `gwm` открывает TUI со списком всех worktree, боковой панелью (состояние CI, файлы рабочей копии), встроенными Lazygit и оболочкой. Подготовка описывается в `.gwm.toml`: копирование файлов с запрещающими регулярными выражениями (защита от случайного переноса секретов из `.env`), шесть фаз хуков и готовые пресеты для Laravel, Symfony, Node, Rust, Go и Python. Команды `gwm undo` и `gwm history` возвращают удаленную по ошибке копию без `git reflog`. Для работы с агентами gwm находит сессии Claude Code, Codex, OpenCode и Mistral Vibe по их файлам на диске и показывает в колонке AGENT, в команде `gwm agents` и в строке статуса. Для скриптов есть `--format=json` и демон JSON-RPC с потоком событий, а в репозитории лежит готовый скилл `skills/SKILL.md` для Claude Code.

Для кого. Разработчикам, которые держат по несколько веток параллельно и запускают в них ИИ-агентов, а подготовку каждой копии (зависимости, `.env`, база) делают вручную.

Подходит, если

  • Claude Code ведет одну задачу, Codex другую, и нужно видеть, какая сессия в какой ветке.
  • Для каждой ветки приходится ставить зависимости и копировать `.env`, а стек типовой: Laravel, Symfony, Node, Rust, Go или Python.
  • Просмотр чужого запроса на слияние удобнее в отдельной рабочей копии: `gwm review <номер>`.
  • Одну команду, например тесты, требуется прогнать во всех worktree: `gwm exec -- <команда>`.
  • Рабочая копия удалена по ошибке, и ее хочется вернуть.

Не подходит, если

  • Работа идет в одной ветке без параллельных задач: обычного `git switch` хватает.
  • Репозиторий хранится не на GitHub и не на GitLab: привязка задач и запросов на слияние работает через `gh` или `glab`.
  • Агент не из списка Claude Code, Codex, OpenCode, Mistral Vibe: другие сессии gwm не определит, их можно только закрепить вручную.

Пример запроса к агенту

Создай worktree для задачи 42 командой gwm, подожди окончания подготовки и покажи отчет о том, какие файлы скопированы и какие команды выполнены.

Ограничения

Команда `git` должна быть в `PATH`, привязка задач и запросов на слияние использует `gh` для GitHub или `glab` для GitLab. Пакет на crates.io называется `gwm-cli`, а команда после установки `gwm`. Пакет Nix собирается для x86_64-linux, aarch64-linux и aarch64-darwin; на Intel Mac ставят готовый архив или `cargo install`. Пакет AUR ведет сообщество, и его версия может отставать от релиза. Для быстрого перехода `gcd` нужен вызов `gwm shell-init`.

Как отключить. Удалите бинарник (`cargo uninstall gwm-cli` или `brew uninstall gwm`) и строку `gwm shell-init` из профиля оболочки; файлы `.gwm.toml` в репозиториях можно оставить, git их не читает.

Частые вопросы

Как установить gwm?

Командой `cargo install gwm-cli` или готовым бинарником через `cargo binstall gwm-cli`. Есть Homebrew (`brew tap kbrdn1/tap && brew install gwm`), Scoop, Nix, `aqua`, пакеты `.deb` и `.rpm`.

Откуда gwm знает, какой агент в какой ветке?

Читает файлы сессий на диске, процессы не перебирает. Находит Claude Code, Codex, OpenCode и Mistral Vibe, остальных можно закрепить вручную командой `gwm agents attach`.

Что за хуки в .gwm.toml и безопасны ли они?

Это команды оболочки в шести фазах жизни рабочей копии. Для хуков репозитория действует подтверждение доверия при первом запуске (`gwm trust`), а значения подставляются с экранированием. До версии 1.6.0 имя ветки со спецсимволами выполнялось как команда, поэтому берите свежую версию.

Можно ли получить данные gwm в скрипте?

Да. `gwm list --format=json` и `gwm doctor --format=json` отдают схемы, зафиксированные в `docs/schema/`, а `gwm daemon` слушает JSON-RPC на сокете и рассылает события подписчикам.

Как вернуть удаленный worktree?

Командой `gwm undo`; список удалений показывает `gwm history`. Заметки к worktree хранятся в основной копии и после удаления сохраняются.

Обсуждение

Вопросов и отзывов пока нет.

CLI для git worktree с нечетким поиском: отдельная папка на каждую ветку, чтобы несколько агентов работали параллельно без конфликтов

CLIШирокий доступ480Звезды репозитория
Официальный

MCP-сервер разбирает конфликты слияния в Git: простые случаи решает сам, а сложные куски оставляет агенту

MCP-серверРасширенный доступ194Звезды репозитория

Окно для Claude Code, Codex, Gemini CLI и OpenCode: терминалы, пул-реквесты, изменения и подтверждения вызовов в одном месте

CLIШирокий доступ347Звезды репозитория

Рецензирование правок агента до коммита на своей машине: комментарии к строкам читает и отвечает на них сам агент через MCP.

ПлагинМинимальный доступ131Звезды репозитория

CLI-прокси на Rust, который сжимает вывод git, тестов и других команд, чтобы агент тратил меньше токенов на чтение терминала

CLIРасширенный доступ85,6 тыс.Звезды репозитория

Коротко о README

README открывается обещанием «один бинарник, подготовка уже выполнена», затем дает таблицу каналов установки, тридцатисекундный разбор и список возможностей. Подробная документация вынесена в каталог `docs/`, а для контрактов JSON и демона автор заморозил схемы по SemVer.

Бейдж для README

Сообщить о проблеме

Foxx AIgwm
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.