A git extension that coordinates many humans and coding agents editing one repository concurrently, Zit replaces heavyweight worktrees with copy-on-write workspaces, lets sessions claim files/symbols/markdown sections, and composes or rejects edits against a live canonical tree. Each session runs in a cheap COW clone so disk and dependency duplication drop dramatically; claims prevent late collisions by refusing edits someone else has reserved; zit accept composes a change onto refs/zit/current with git merge-tree and rejects it if text won’t merge, the merged text fails to parse, it touches a symbol changed since the session began, or the combined state fails user-declared checks. Changes are ordinary git commits but include recorded reasons and agent cost/token metadata. Symbol-aware checks cover Rust, Python, JS/TS, Go, Java, Ruby, C#, markdown sections and manifest keys, and multiple accepted changes can land as a single batch. The design is a Causal Program State Graph where states are git trees and changes are commits alongside normal branches.
Measured runs show practical benefits: using claims, 10/10 changes landed vs 4/10 without, and reported landed-change cost fell from $2.54 to $1.01 by one experiment; automated checks stopped 119 merges that would have broken validations while falsely refusing about 21-23% of good changes in one benchmark. A five-workspace test with npm deps used 327 MB with Zit vs 1,619 MB for full worktrees. Zit runs on macOS/Linux with git ≥2.38, installs via cargo or prebuilt binaries, integrates with Claude, Codex, Autohand and Pi or any CLI, exposes a web view of live claims and landed changes, and leaves regular git branches and history untouched so non-adopting teammates are unaffected.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.