经 AI Skill Hub 精选评估,Weave 获评「强烈推荐」。已获得 1.1k 颗 GitHub Star,这款MCP工具在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 8.5 分,适合有一定技术背景的用户使用。
Weave 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
Weave 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/Ataraxy-Labs/weave
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"weave": {
"command": "npx",
"args": ["-y", "weave"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 Weave 执行以下任务... Claude: [自动调用 Weave MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"weave": {
"command": "npx",
"args": ["-y", "weave"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
Part of the Ataraxy Labs stack, agent-native infrastructure for software development. See also: sem (semantic version control) · inspect (semantic code review) · opensessions (tmux sidebar for coding agents). Read the manifesto: https://ataraxy-labs.com/#thesis · Essays: https://ataraxy-labs.com/blogs · LLMs: https://ataraxy-labs.com/llms.txt
<p align="center"> <img src="assets/banner.svg" alt="weave" width="600" /> </p>
<p align="center"> <strong>Entity-level semantic merge for Git.</strong><br> Resolves merge conflicts that Git can't by parsing code into functions, classes, and keys with tree-sitter, then merging those entities instead of lines. </p>
<p align="center"> <a href="#how-weave-land-works">How weave land works</a> · <a href="#install">Install</a> · <a href="#quickstart">Quickstart</a> · <a href="#how-weave-fixes-this">How It Works</a> · <a href="#mcp-server">MCP Server</a> · <a href="#cli-commands">CLI</a> · <a href="https://github.com/Ataraxy-Labs/weave/releases/latest">Releases</a> </p>
<p align="center"> <a href="https://github.com/Ataraxy-Labs/weave/releases/latest"><img src="https://img.shields.io/github/v/release/Ataraxy-Labs/weave?color=blue&label=release" alt="Release"></a> <a href="https://formulae.brew.sh/formula/weave"><img src="https://img.shields.io/badge/homebrew-weave-orange" alt="Homebrew"></a> <img src="https://img.shields.io/badge/rust-stable-orange" alt="Rust"> <img src="https://img.shields.io/badge/tests-441_passing-brightgreen" alt="Tests"> <a href="LICENSE-MIT"><img src="https://img.shields.io/badge/license-MIT_OR_Apache--2.0-yellow" alt="License"></a> <img src="https://img.shields.io/badge/languages-38-blue" alt="Languages"> </p>
<p align="center"> <img src="assets/merge-animation.gif" alt="Weave merge animation: two branches add different functions, git conflicts, weave merges cleanly" width="700" /> </p>
brew install weave
Or build from source (requires Rust). Two binaries, both required: weave (the CLI you run: setup/explain/check/...) and weave-driver (the one git itself invokes on every merge; weave setup fails without it on PATH):
git clone https://github.com/Ataraxy-Labs/weave
cd weave
cargo install --path crates/weave-cli # the `weave` binary
cargo install --path crates/weave-driver # the `weave-driver` binary git calls
Upgrading an existing source install? cargo install refuses to overwrite a binary it didn't put there itself, so add --force to either command above.
In any Git repo:
weave setup
This configures Git to use weave for all supported file types. Then use git merge as normal.
To revert back to normal git merging:
weave setup --off
To set up for just yourself (without modifying .gitattributes), write the same supported file type rules to .git/info/attributes instead:
weave setup --local
```bash weave setup # this repo now merges through weave; git merge/rebase/cherry-pick unchanged git merge <branch> # real conflicts land as markers with a refused_by: line stating why weave explain <file> # per-hunk detail for one conflicted file, read off the actual git stages
```
{ "mcpServers": { "weave": { "command": "weave-mcp" } } } ```
The server discovers the repo from each tool call's absolute file path, else the WEAVE_REPO env var, or its working directory. It lists six tools, one per weave command (each tool's own description states when to call it and what an empty result means):
- weave_preview: dry-run a merge of two branches, as per-file verdicts, a findings document, or the strategy weave used on each entity. - weave_edit: change code by entity, written straight to disk: replace an entity, edit text inside it, add one before or after it, delete it, or create a file. A batch is all or nothing, and an edit that breaks the parse or quietly renames an entity is refused. - weave_explain: why a file conflicted, from the merge's three stages. - weave_check: is the resolution right, plus the cross-file breakage a per-file merge driver can't see (a rename in a.py whose surviving caller lives in b.py). - weave_land: label every file of a stopped merge PROVEN, VERIFIED or REFUSED, and write the ones that pass. - weave_patch: carry an edit to a file that drifted, as a three-way entity merge.
For callers, dependencies and blast radius, use sem's MCP server. The live multi-agent CRDT tools (weave_claim_entity, weave_update_entity_content, ...) are listed only with WEAVE_EXPERIMENTAL=1. Every older tool name still answers when called, so existing clients keep working.
Seven commands. Each --help line says which question the command answers, and every flag has an example (weave <command> --help).
| Command | The question it answers |
|---|---|
weave setup [--global] [--local] [--off] | Make git merge use weave here (--global: every repo; --off: stop) |
weave land [--resolver <cmd>] [--onto <remote>/<branch>] [--verify-cmd <cmd>] [--check sem] [--queue] | Can this merge land? Merge, gate every file (PROVEN / VERIFIED / REFUSED), verify, publish; see [above](#landing-an-agents-merge-weave-land). --queue is experimental |
weave explain <file> [--summary] [--json] | Why did this file conflict? --summary: a structured summary of the weave markers in any file |
weave check [--json] | Is my conflict resolution right? Lost lines, duplicates, leftover markers, dangling names |
weave preview <branch> [--file <path>] | What would merging this branch look like? Nothing is written |
weave patch extract <base-file> <changed-file> / weave patch apply <ops-file> <target-file> | Apply an edit to a file that drifted: typed entity ops, merged three-way against the ops' base |
weave stats [--bench] [--repo <path> --limit N] | How has weave done? Lifetime counters if you opted in with WEAVE_STATS=1; --bench runs the 31-scenario synthetic benchmark; --repo replays real merge commits from a clone (see [Real-World Benchmarks](#real-world-benchmarks)) |
Every earlier command name still works, with the same output. At a terminal weave prints a one-line note on stderr with the new spelling; in --json mode or when output is piped it prints nothing extra.
| Old | New |
|---|---|
weave unsetup | weave setup --off |
weave summary <file> | weave explain <file> --summary |
weave bench | weave stats --bench |
weave bench-repo <path> | weave stats --repo <path> |
weave claim, release, status, apply | weave experimental claim, release, status, apply |
The weave experimental group (hidden from --help) is the live-editing prototype: it claims and releases entities and applies edits held in the .weave/state.automerge CRDT document, the same document the MCP coordination tools below use. Claims are advisory. That document lives in the repo's working tree but is never repo content: the first time weave writes it, it adds .weave/ to the repo's local .git/info/exclude (never your own .gitignore), so it never shows up in git status or gets swept into git add -A.
| Scenario | Git (line-based) | Weave (entity-level) |
|---|---|---|
| Two agents add different functions to same file | **CONFLICT** | Auto-resolved |
Agent A modifies foo(), Agent B adds bar() | **CONFLICT** (adjacent lines) | Auto-resolved |
| Both agents modify the same function differently | CONFLICT | CONFLICT (with entity-level context) |
| One agent modifies, other deletes same function | CONFLICT (cryptic diff) | CONFLICT: function 'validateToken' (modified in ours, deleted in theirs) |
| Both agents add identical function | **CONFLICT** | Auto-resolved (identical content detected) |
| Both agents add different properties to same object | **CONFLICT** | Auto-resolved |
| Different JSON keys modified | **CONFLICT** | Auto-resolved |
The key difference: Git produces false conflicts on independent changes because they happen to be in the same file. Weave only conflicts on actual semantic collisions when two branches change the same entity incompatibly.
31 hand-crafted merge scenarios across 7 languages, comparable to mergiraf's own test corpus. Run weave stats --bench to reproduce:
Two of the 31 must not merge. When both sides add different decorators to the same Python or TypeScript function, decorator application is function composition, so the stack order is a semantic decision neither side made — @cache outside @auth serves cached responses without ever running the auth check. Weave refuses rather than fabricate an order, and a tool that merges those cleanly is wrong, not better. Annotations in Java, C# and Kotlin are unordered metadata, so weave still set-unions those.
| Tool | Clean merges (of 29 mergeable) | Correct outcomes (of 31) |
|---|---|---|
| **Weave** | **29/29** (100%) | **31/31** (100%) |
| Mergiraf (v0.16.3) | 26/29 (90%) | 28/31 (90%) |
| Git | 15/29 (52%) | 17/31 (55%) |
All three tools correctly refuse the two decorator scenarios. Mergiraf fails on both-add-at-end-of-file and insert-between-existing; weave resolves those because it operates at entity granularity (functions, classes, methods) rather than AST node level. Full breakdown at ataraxy-labs.github.io/weave.
高质量的Git合并驱动工具
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ Apache 2.0 — 宽松开源协议,可商用,需保留版权声明和 NOTICE 文件,含专利授权条款。
AI Skill Hub 点评:Weave 的核心功能完整,质量优秀。对于Claude Desktop / Claude Code 用户来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | weave |
| 原始描述 | 开源MCP工具:Entity-level git merge driver. Resolves false conflicts git invents when indepen。⭐1.1k · Rust |
| Topics | gitmergeconflict-resolutiondeveloper-tools |
| GitHub | https://github.com/Ataraxy-Labs/weave |
| License | Apache-2.0 |
| 语言 | Rust |
收录时间:2026-06-07 · 更新时间:2026-06-08 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端