weave
An entity-level git merge driver that parses code into functions, classes, and keys with tree-sitter and merges those entities instead of lines, resolving conflicts that plain line-based git merging invents.
weave replaces git's line-based three-way merge with an entity-level merge for cases such as two branches each adding a different function to the same file, which git sees as an overlapping line range and flags as a conflict even though the changes are completely independent. It parses the base, ours, and theirs versions of a file into semantic entities, functions, classes, JSON keys, and so on, using tree-sitter, matches entities across versions by name, type, and scope including renames, and then merges at the entity level: different entities changed by each side resolve automatically, the same entity changed by both sides attempts an intra-entity merge and only conflicts if truly incompatible, and one side deleting an entity the other modified is flagged as a real conflict.
It ships as a CLI and an MCP server for agent-framework integration, installable with a global or local setup, and is part of a small stack of agent-native developer tools from the same team, alongside a semantic version-control tool and a semantic code-review tool.
It is written in Rust and Apache-2.0 licensed.