Weave CLI
Драйвер слияния Git и MCP-сервер: сравнивает функции и классы и снимает ложные конфликты от параллельных правок агентов
- 1 331 ★ репозитория
- Последний коммит
- Apache-2.0
Широкий доступ
Почему такой уровень
- Меняет способ слияния во всех репозиториях, если включить `weave setup --global`: пишет в `~/.gitconfig` и глобальные атрибуты Git
- Инструменты `weave_edit` и `weave_land` пишут код на диск и добавляют файлы в индекс по решению агента
- Команда `weave land --onto` публикует результат в удаленную ветку перемоткой вперед
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add cli/weaveОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Меняет способ слияния во всех репозиториях, если включить `weave setup --global`: пишет в `~/.gitconfig` и глобальные атрибуты Git
- Инструменты `weave_edit` и `weave_land` пишут код на диск и добавляют файлы в индекс по решению агента
- Команда `weave land --onto` публикует результат в удаленную ветку перемоткой вперед
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Weave подключается к Git как драйвер слияния. Команда `weave setup` прописывает драйвер в конфигурацию и добавляет в `.gitattributes` строки `merge=weave` для каждого расширения, которое понимают грамматики tree-sitter. Дальше вы пользуетесь Git как обычно: `git merge`, `git rebase` и `git cherry-pick` проходят через Weave. Для каждого файла Weave разбирает три версии (общую, вашу и чужую) на сущности: функции, классы, ключи JSON и YAML. Сущности сопоставляются по имени, типу и вложенности, переименования тоже находятся. Если стороны изменили разные сущности, результат собирается без конфликта. Если обе правили одну и ту же, Weave пробует слить внутри нее и оставляет конфликт только при несовместимых правках. Метки конфликта называют сущность и строку `refused_by:` с причиной отказа. Weave понимает 38 языков и форматов. Остальные файлы, бинарники и файлы больше 1 МБ получают обычное построчное слияние. Команды проверки: `weave explain <файл>` показывает конфликт по сущностям, `weave check` сверяет вашу правку с тремя версиями слияния, `weave preview <ветка>` ничего не записывает. Команда `weave land` помечает каждый файл как PROVEN, VERIFIED или REFUSED и принимает только прошедшие проверку. С флагом `--onto origin/main` она еще и публикует результат. Тот же набор доступен агенту через `weave-mcp`.
Для кого. Для разработчиков, у которых несколько агентов (например, в Claude Code) правят один репозиторий в параллельных ветках и Git останавливает слияние на независимых изменениях в одном файле. Полезен и командам без агентов, где часто конфликтуют соседние функции.
Подходит, если
- Два агента добавили разные функции в один файл, и Git показывает конфликт, хотя правки не пересекаются
- Вы сливаете много веток агентов подряд и хотите видеть, почему слияние отказалось объединять эту сущность
- После ручного разбора конфликта нужна проверка: `weave check` ищет потерянные строки, дубликаты, оставшиеся метки и ссылки на исчезнувшие имена
- Агенту нужно менять код по сущностям: `weave_edit` в MCP заменяет функцию, добавляет ее до или после другой и отклоняет правку, ломающую разбор файла
- Перед слиянием нужен безопасный просмотр: `weave preview <ветка>` показывает результат по файлам и ничего не записывает
Не подходит, если
- Файлы на Vue, Svelte, ERB или Haskell: Weave разбирает их, но не берет на себя слияние и оставляет им построчное слияние Git
- Вам нужны гарантии работы программы: метки PROVEN и VERIFIED описывают проверки слияния отдельных файлов, а не поведение кода и связи между файлами
- Репозиторий состоит из больших бинарных или не поддержанных форматов: для них Weave ничем не отличается от обычного Git
- Нужен просмотр вызовов и охвата изменения: для этого автор отсылает к соседнему проекту sem с отдельным MCP-сервером
Пример запроса к агенту
Подключи Weave в этом репозитории, слей ветки feature-auth и feature-dates и покажи, какие файлы разошлись и по какой причинеОграничения
Weave написан на Rust и ставится через Homebrew или сборкой из исходников; нужны два исполняемых файла, `weave` и `weave-driver`, и без второго в `PATH` `weave setup` завершается ошибкой. Версия 0.5.3 намеренно чаще отказывается, чем 0.5.2: на проверке по реальным слияниям пяти больших репозиториев число случаев, где Git справился, а Weave дал конфликт, выросло с 3 до 86, и автор просит смотреть разбор по репозиториям перед слиянием крупных изменений.
Метки PROVEN и VERIFIED не доказывают работоспособность программы. Блокировки сущностей в слое для нескольких агентов только рекомендательные, а упавший агент не освобождает свои блокировки сам. Счетчики `weave stats` пусты, пока вы не включите `WEAVE_STATS=1`. Лицензия: MIT или Apache-2.0 на выбор.
Как отключить. Команда `weave setup --off` возвращает обычное слияние Git. Записи, добавленные командой `weave setup --global`, лежат в `~/.gitconfig` и `~/.config/git/attributes`, их убирают вручную. MCP-сервер снимается командой `claude mcp remove weave -s user`, исполняемые файлы удаляются через `brew uninstall weave`.
Частые вопросы
Как убрать ложные конфликты Git от параллельных агентов?
Выполните `weave setup` в репозитории. Weave добавит драйвер слияния и правила в `.gitattributes`, после чего `git merge` сам объединит правки в разных функциях одного файла. Конфликт остается, если обе ветки изменили одну сущность несовместимо.
Как подключить Weave к Claude Code как MCP-сервер?
Команда `claude mcp add --scope user weave -- weave-mcp` добавляет сервер для всех проектов. Для другого клиента подойдет блок `{ "mcpServers": { "weave": { "command": "weave-mcp" } } }` в его настройках. Репозиторий сервер определяет по пути первого вызова, по переменной `WEAVE_REPO` или по рабочей папке.
Что делают инструменты weave-mcp?
Их шесть: `weave_preview` просматривает слияние двух веток, `weave_edit` меняет код по сущностям и пишет на диск, `weave_explain` объясняет конфликт, `weave_check` проверяет разрешение, `weave_land` размечает файлы остановленного слияния, `weave_patch` переносит правку в файл, который ушел вперед. Инструменты для живых блокировок включаются переменной `WEAVE_EXPERIMENTAL=1`.
Что значат PROVEN, VERIFIED и REFUSED в weave land?
PROVEN означает, что результат соответствует поддержанным структурным правилам. VERIFIED означает, что файл прошел проверку слияния без структурного доказательства. REFUSED означает, что результат не принят и нужно разобрать найденные замечания. Код выхода 0 означает, что все принято; 1 означает отказ; 2 означает ошибку выполнения.
Как опубликовать результат слияния и проверить его сборкой?
Запустите `weave land --onto origin/main --verify-cmd 'go build ./... && go test ./...'` или вместо своей команды добавьте `--check sem`. Weave сольет целевую ветку, проверит файлы, выполнит проверку и опубликует только перемоткой вперед. Если целевая ветка ушла вперед, он повторит попытку на новой вершине. Флаг `--dry-run` ничего не записывает.
Какие языки поддерживает Weave?
Разбор идет для 38 языков и форматов, среди них TypeScript, JavaScript, Python, Go, Rust, Java, C и C++, Ruby, C#, PHP, Swift, Kotlin, SQL, JSON, YAML и TOML. Остальные файлы получают обычное построчное слияние Git.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыЛокальный шлюз перед git push: ревью, тесты, документация и линтер проходят в отдельной копии, и только после этого ветка уходит в удаленный репозиторий
CLI для git worktree, заточенный под параллельные сессии Claude Code и Codex: команда wt, плагин и хуки автоматизации
GitLab MCP на 86 инструментов: задачи, запросы на слияние, пайплайны, вики и файлы, режим только для чтения, локальный и удаленный запуск
Lumen
lumen
Lumen показывает git diff и пулл-реквесты GitHub в терминале, а по желанию пишет сообщения коммитов и объясняет правки через выбранную модель
Официальный MCP-сервер GitHub: код, issues, пул-реквесты, Actions и алерты безопасности прямо из агента
Нативный терминал для macOS на базе Ghostty с вертикальными вкладками и уведомлениями, когда агенту нужен ответ
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| Weave (эта запись) | нет | 1 331 | |
| Worktrunk | нет | 9 396 | управляет git worktree для параллельных сессий Claude Code и Codex, а слияние правок внутри файла не меняет |
| Claude Squad | нет | 8 656 | запускает несколько агентов в отдельных сессиях tmux и worktree, конфликты слияния не разбирает |
| Foremerge | нет | 521 | CLI и MCP-сервер |
Коротко о README
Главная страница начинается с быстрого старта из пяти команд и разбора проблемы ложных конфликтов. Дальше идут таблицы сравнения с Git и Mergiraf на 31 сценарии и повтор реальных слияний пяти больших репозиториев, затем список языков, установка, режимы `setup`, команды и описание MCP-сервера. В конце перечислены состав проекта по крейтам, шаги алгоритма и ограничения. Отдельный файл SKILL.md учит агента циклу разбора конфликта.