# Zit

> A git extension that lets many developers and coding agents change one repository at once using copy-on-write workspaces, claims, and checked accepts.

Zit is a git extension from Autohand AI for repositories that several people and coding agents change at the same time. Each session works in its own copy-on-write workspace instead of a git worktree, and changes are checked against what landed meanwhile before they are accepted. Branches, history and remotes stay plain git, so teammates who never install Zit are not affected. The docs list the latest release as 0.1.2.

## What It Is

Zit is a command-line git extension (`zit` and `git zit`) that coordinates parallel work on one repository. Sessions get copy-on-write clones of a cached checkout, can claim a file, symbol or Markdown section before editing, and land changes through `zit accept`. Its design is called the Causal Program State Graph (CPSG): states are git trees, changes are git commits, and the graph lives under `refs/zit/*` beside your branches.

## How Accepting Changes Works

`zit accept` composes a change onto the current state with `git merge-tree`. It refuses a change if the text does not merge, if the merged text no longer parses, if it touched the same function, type or section as a change that landed since it started, or if it uses a symbol whose interface changed in the meantime. The combined state must also pass the checks declared in `zit.toml` before `refs/zit/current` moves by compare-and-swap. Several changes can land as one batch checked once. Symbol awareness covers Rust, Python, JavaScript, TypeScript, Go, Java, Ruby and C#, plus Markdown sections and TOML and JSON manifest keys.

## Agents and Recorded Reasons

`zit run --agent <name> --intent "..."` starts an agent in a new workspace and records what it leaves as a change, including the agent's final message as the reason. Token and dollar costs reported by the agent are stored and summed by `zit log`. Documented agent paths include Autohand Code, Claude Code, Codex and Pi, any CLI via `zit run --agent <name> -- <command>`, and an MCP server mode via `zit mcp`.

## Setup Path and Observability

Zit requires git 2.38 or newer on macOS or Linux and installs with `cargo install zit --locked` (Rust 1.88+); prebuilt binaries are also published. `zit doctor` checks git version, copy-on-write support, free space and agents on PATH. Copy-on-write uses APFS on macOS or btrfs/XFS with reflink on Linux; other file systems get plain checkouts. `zit web` gives a live view of landed, waiting and colliding changes and open workspaces with their claims. The docs state that Zit does not review code, and the vendor's own benchmarks report it is slower than a plain merge loop when checks are cheap.

## Features
- Copy-on-write workspaces instead of git worktrees
- Claims on files, symbols or Markdown sections
- Accept checks for text merge, parsing, same-symbol overlap and changed interfaces
- Declared checks in zit.toml must pass before current moves
- Batch landing of changes checked once
- Recorded agent reasons, tokens and cost
- Shared installed dependencies via [prepare] in zit.toml
- Live web view (zit web)
- MCP server mode (zit mcp)
- Export to a branch or pull request
- Plain git compatibility via git zit

## Integrations
Autohand Code, Claude Code, Codex, Pi, Git, MCP

## Platforms
MACOS, LINUX, API, CLI

## Pricing
Open Source

## Version
0.1.2

## Links
- Website: https://getzit.org
- Documentation: https://getzit.org/tutorial
- Repository: https://github.com/autohandai/getzit
- EveryDev.ai: https://www.everydev.ai/tools/zit
