
Quilt
io.github.wkoverfield由 GitHub 账号 wkoverfield 发布v0.6.3更新于 Oct 25, 2026
Track which AI agent wrote which lines in a shared Git checkout; each commits only its own lines.
概览
Quilt 跟踪共享 Git 检出中哪些行由哪个 AI 代理编写,使每个代理只提交自己的改动。
- 可以做什么
- 记录同一共享仓库检出中每个代理会话所做编辑的逐行归属,会话自动命名,也可通过 QUILT_ACTOR 指定固定标识。仅提交当前代理的行,预览确切的补丁,并查看状态与来源信息。声明文件或符号,使其他代理写入已声明代码时被拒绝,并附上持有者的意图与租约到期时间。当声明的符号依赖其他参与者正在修改的代码时发出警告,并在发生覆盖时快照受害者的版本。在终端或只读浏览器界面中实时查看各参与者、行数、声明与受阻工作。
- 适用场景
- 当多个 AI 编码代理同时在同一 Git 检出中工作,且你希望获得干净的按代理提交、冲突预防以及谁在编辑什么的可见性,而不是为每个代理使用独立工作树时使用。
- 运行要求
- 需要本地 Node.js 运行时以全局安装该 npm 包、一个 Git 仓库,并运行 quilt setup 以接入捕获钩子和可选的 MCP 服务器。无需账户或 API 密钥;状态保存在本地 .quilt 目录中。
安装
在 SourceWeft 中
- 打开 控制台中的 Quilt,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Quilt
[CI] [npm] [downloads] [license]
Quilt is a command-line tool that tracks which agent wrote which lines in a shared Git checkout, so multiple AI coding agents can work in one repo at once and each commits only its own changes.
It captures every edit at the tool boundary, keeps a per-line record of who wrote
what, and reconstructs each agent's own changes at commit time. Git stays the
source of truth. Quilt never calls an LLM or spawns agents, and its state lives in
a .quilt/ sidecar you can delete without touching your repo.
The problem
You want your agents in ONE checkout: one node_modules, one build, one dev
server, one environment to keep working, not a worktree per agent, each with
its own install and its own drift. But on a shared checkout, plain git bites
even when agents work on completely different things: the first git commit -am
sweeps everyone else's uncommitted files into one blob, codegen and lockfile
churn get credited to whoever committed last, and two agents occasionally do
land on the same line, where one silently overwrites the other. None of that
requires agents to be working on the same task. It's just what a shared
checkout does by default.
Quilt makes the shared checkout safe. Every agent commits exactly its own lines and nothing else: disjoint work stays disjoint all the way into history, with no ceremony. And when two agents genuinely want the same code, that becomes a coordinated handoff instead of a silent loss. It holds as you add agents.
./examples/fleet.sh runs seven agents against one checkout. The two endings:
When two agents want the same file
Fanning out on disjoint files is the easy case. The real test is contention. A denied claim isn't a dead end. It carries the holder's stated intent and when their lease lapses:
So the blocked agent builds its granted files while it waits, re-claims after
the holder's commit auto-releases, and layers its change on top of the landed
one. Two clean commits, both changes in the file, nothing lost.
./examples/contention.sh runs the whole sequence on the real machinery.
What it does
- One shared checkout. Model humans, agents, and bots as actors editing one working tree, no worktree per agent.
- Line-level attribution.
commit --minecommits only your lines, even when they share a hunk with another actor's. - Symbol-level claims. Reserve
utils.js#formatPrice, not the whole file, so agents editing different functions never contend. Ten languages via tree-sitter; whole-file claims for the rest. - Collision prevention. A write into code another agent has claimed is denied, with the holder's stated intent, before any bytes change.
- Push-awareness. Claim a symbol that depends on a function another actor is changing, and Quilt warns you at claim time.
- Detect and preserve. If one actor overwrites another's uncommitted lines, Quilt snapshots the victim's version so nothing is silently lost.
Every commit Quilt produces is an ordinary Git commit. It trusts Git and never
rewrites it, and all state lives locally under .quilt/. No account, no daemon.
Quickstart
That's it. Agents are named automatically: each Claude Code session or MCP connection gets its own id, so parallel agents are told apart with no setup.
4 terminals, one repo
The whole flow, from a git repo to four agents working at once:
Start sessions from a directory that holds several repos? Run quilt setup
there instead: it wires the workspace root and every repo inside, and each
edit is captured into the repo its file belongs to.
Nothing else. No QUILT_ACTOR, no per-terminal ceremony, nothing to approve:
the capture hooks attribute every edit to its session automatically. Watch it
live with quilt fleet, and when a session's work is ready, ask it to run
quilt commit --mine -m "...". Each commit contains exactly that session's
lines, even where two sessions touched the same file. (Claude Code will also
offer to enable the optional quilt MCP server for the project; approving it
adds the claim/prevention tools, but the hooks protect you either way.)
Watch the fleet
quilt ui opens the same picture in your browser, live: who wrote what
(per-actor line counts per file), active claims, who's blocked on whom, and
anything that needs a human. Local-only (127.0.0.1), read-only, one command.
Prefer the terminal? quilt fleet --watch is the same view as text.
Set an explicit id when you want one that is stable across sessions:
Then each agent commits only its own lines:
Quilt writes that provenance into the Git commit itself, so it survives normal
pushes and fresh clones. Prompt correlation stays local in quilt ui; it is not
published into Git history.
In a shared shell, make the committer explicit (quilt --as auth-agent commit --mine ...). Quilt refuses a checkout-global session identity when the dirty
tree shows another actor. If a deploy provider requires a recognized Git email,
set one once while keeping actor names distinct:
quilt fleet shows the whole picture: every actor, their claims, and anything
that needs a human. See docs/reference.md for the full
command list.
Why not worktrees?
A worktree per agent is the usual answer, and for fully independent tasks it works. But every worktree is another environment to build (another install, another build cache, another dev server) and isolation just moves the collision to merge time. Those costs grow with the number of agents; the whole point of a shared checkout is paying for the environment once.
Worktrees isolate; they don't coordinate. When agents work the same code at the same time, you usually want them to see each other and account for each other as they go. That is what Quilt does. The two aren't mutually exclusive: worktrees for independent, long-running work, Quilt for agents in the same code at once.
Using it with agents
quilt setup wires the capture hooks and a shared MCP server. On Claude Code the
hooks let agents use the built-in Edit and Write tools normally while Quilt
records each change's author and blocks a write into code another agent holds,
with no protocol for the agent to follow and no setup: each session is named
automatically, or carries its own QUILT_ACTOR for a stable id. For other
runtimes, the same capture and prevention is available as MCP tools, with each
connection named automatically the same way.
See docs/orchestrators.md for Codex, Cursor, Aider, and the difference between process-per-agent and many-agents-in-one-process setups.
Docs
- docs/orchestrators.md: running a fleet of agents.
- docs/reference.md: the full command list, how attribution
works, and the
.quilt/state layout. - bench/: the scenario ladder Quilt is tested against, run with and without Quilt on the same metrics.
Telemetry
One anonymous heartbeat per day: quilt version, OS, Node major, random
local id. Nothing else unless you opt in at quilt setup, and never code,
paths, repo or actor names. quilt telemetry off, QUILT_TELEMETRY=0, or
DO_NOT_TRACK=1 silences everything. Details: docs/reference.md.
Contributing
Contributions are welcome. See CONTRIBUTING.md.
License
MIT
来源:README.md,提交 709111d
工具
0版本历史
2- v0.6.3最新Oct 14, 2026
- v0.6.2Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分