Weave CLI

A Git merge driver and MCP server that compares functions and classes and removes false conflicts from parallel agent edits

  • 1,331 ★ on the repository
  • Last commit
  • Apache-2.0
CLI

Broad access

Why this level

  • Changes how merges work in every repository when `weave setup --global` is used: writes to `~/.gitconfig` and global Git attributes
  • The `weave_edit` and `weave_land` tools write code to disk and stage files on the agent's decision
  • `weave land --onto` publishes the result to a remote branch by fast-forward
All reasons and checks

ataraxy-labs/weave

Install

Works in

In your terminal, with SkillFoxx CLI

npx skillfoxx add cli/weave

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • Changes how merges work in every repository when `weave setup --global` is used: writes to `~/.gitconfig` and global Git attributes
  • The `weave_edit` and `weave_land` tools write code to disk and stage files on the agent's decision
  • `weave land --onto` publishes the result to a remote branch by fast-forward

This is third-party code. Review the repository files before installing.

What it does

Weave plugs into Git as a merge driver. The `weave setup` command registers the driver in git config and adds `merge=weave` lines to `.gitattributes` for every extension the tree-sitter grammars understand. After that you use Git as usual: `git merge`, `git rebase` and `git cherry-pick` all go through Weave. For each file Weave parses three versions (base, yours and theirs) into entities: functions, classes, JSON and YAML keys. Entities are matched by name, type and nesting, and renames are found too. If the sides changed different entities, the result is assembled with no conflict. If both edited the same one, Weave tries to merge inside it and leaves a conflict only for incompatible edits. Conflict markers name the entity and carry a `refused_by:` line with the reason. Weave understands 38 languages and formats. Other files, binaries and files over 1 MB get the ordinary line merge. Verification commands: `weave explain <file>` shows a conflict by entity, `weave check` compares your resolution with the three merge stages, and `weave preview <branch>` writes nothing. `weave land` labels each file PROVEN, VERIFIED or REFUSED and accepts only those that pass. With `--onto origin/main` it also publishes the result. The same set is available to an agent through `weave-mcp`.

Who it is for. For developers whose several agents (for example in Claude Code) edit one repository in parallel branches and Git stops a merge on independent changes in the same file. It also helps teams without agents where neighbouring functions often collide.

Good fit when

  • Two agents added different functions to one file and Git reports a conflict although the edits do not overlap
  • You merge many agent branches in a row and want to see why a merge refused to combine a given entity
  • After resolving a conflict by hand you need a check: `weave check` looks for lost lines, duplicates, leftover markers and references to vanished names
  • An agent has to change code by entity: `weave_edit` in MCP replaces a function, adds it before or after another and rejects an edit that breaks parsing
  • You want a safe look before merging: `weave preview <branch>` shows the result per file and writes nothing

Not a fit when

  • Your files are Vue, Svelte, ERB or Haskell: Weave parses them but does not claim their merges and leaves them to Git's line merge
  • You need guarantees that the program works: PROVEN and VERIFIED describe merge checks on single files, not code behaviour or links between files
  • The repository is mostly large binaries or unsupported formats: for those Weave behaves like plain Git
  • You need callers and blast radius of a change: the author points to the neighbouring sem project and its own MCP server

Example request

Set up Weave in this repository, merge the feature-auth and feature-dates branches and show which files diverged and why

Limitations

Weave is written in Rust and installs through Homebrew or a source build; it needs two binaries, `weave` and `weave-driver`, and `weave setup` fails when the second one is not on `PATH`. Version 0.5.3 deliberately refuses more often than 0.5.2: on a replay of real merges from five large repositories the cases where Git coped and Weave raised a conflict rose from 3 to 86, and the author asks you to read the per-repository breakdown before merging large changes.

The PROVEN and VERIFIED labels do not prove the program works. Entity claims in the multi-agent layer are advisory only, and a crashed agent does not release its claims on its own. `weave stats` counters stay empty until you set `WEAVE_STATS=1`. License: MIT or Apache-2.0 at your option.

How to disable. `weave setup --off` restores Git's ordinary merge. Entries added by `weave setup --global` live in `~/.gitconfig` and `~/.config/git/attributes` and are removed by hand. Remove the MCP server with `claude mcp remove weave -s user` and the binaries with `brew uninstall weave`.

FAQ

How do I remove false Git conflicts from parallel agents?

Run `weave setup` in the repository. Weave adds the merge driver and rules to `.gitattributes`, after which `git merge` combines edits to different functions in one file by itself. A conflict remains when both branches changed one entity incompatibly.

How do I connect Weave to Claude Code as an MCP server?

`claude mcp add --scope user weave -- weave-mcp` adds the server for every project. For another client use the block `{ "mcpServers": { "weave": { "command": "weave-mcp" } } }` in its settings. The server finds the repository from the path of the first call, the `WEAVE_REPO` variable or the working directory.

What do the weave-mcp tools do?

There are six: `weave_preview` previews a merge of two branches, `weave_edit` changes code by entity and writes to disk, `weave_explain` explains a conflict, `weave_check` verifies a resolution, `weave_land` labels the files of a stopped merge, `weave_patch` carries an edit into a file that drifted. Live-claim tools are listed only with `WEAVE_EXPERIMENTAL=1`.

What do PROVEN, VERIFIED and REFUSED mean in weave land?

PROVEN means the result satisfies the supported structural rules. VERIFIED means the file passed the merge check without a structural proof. REFUSED means the result was not accepted and the reported findings need work. Exit code 0 means accepted; 1 means refused; 2 means an execution error.

How do I publish a merge result and check it with a build?

Run `weave land --onto origin/main --verify-cmd 'go build ./... && go test ./...'`, or add `--check sem` instead of your own command. Weave merges the target branch, checks the files, runs the validation and publishes by fast-forward only. If the target moves, it retries on the new tip. `--dry-run` writes nothing.

Which languages does Weave support?

Parsing covers 38 languages and formats, among them TypeScript, JavaScript, Python, Go, Rust, Java, C and C++, Ruby, C#, PHP, Swift, Kotlin, SQL, JSON, YAML and TOML. Other files get Git's ordinary line merge.

Discussion

No questions or reviews yet.

CLI tools

A local gate in front of git push: the branch goes through review, tests, docs and lint in a separate worktree before it reaches the remote with a PR

CLIBroad access8.9KRepository stars

A git worktree CLI built for running Claude Code and Codex in parallel: the wt command, a plugin, and automation hooks

CLIExtended access9.4KRepository stars

A GitLab MCP with 86 tools: issues, merge requests, pipelines, wikis and files, a read-only mode and a launch both locally and remotely with OAuth

MCP serverBroad access65Repository stars

Lumen

lumen

Lumen shows git diffs and GitHub pull requests in the terminal and, if you want, writes commit messages and explains changes through the model you pick

CLIExtended access2.9KRepository stars
Editors’ pick

GitHub's official MCP server: code, issues, pull requests, Actions and security alerts straight from the agent

MCP serverBroad access33.9KRepository stars

A native macOS terminal built on Ghostty with vertical tabs and notifications when an agent needs your input

CLIBroad access28.4KRepository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialRepository starsMain difference
Weave (this entry)no1,331
Worktrunkno9,396manages git worktrees for parallel Claude Code and Codex sessions and does not change how edits inside a file are merged
Claude Squadno8,656runs several agents in separate tmux sessions and worktrees and does not resolve merge conflicts
Foremergeno521a CLI and MCP server where parallel coding agents declare what they

README in short

The front page opens with a five-command quick start and an account of the false-conflict problem. Next come comparison tables against Git and Mergiraf on 31 scenarios and a replay of real merges from five large repositories, then the language list, install steps, `setup` modes, commands and the MCP server description. The end lists the project crates, the algorithm steps and the limitations. A separate SKILL.md teaches an agent the conflict-resolution loop.

README badge

Report a problem

Foxx AIWeave
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.