Overview
W0rkTree has been rebuilt, and the v2 alpha is on GitHub. It’s an independent version control system with its own object model, sync protocol, multi-tenant server, access control, license enforcement and real-time visibility of work in progress. It speaks Git only to import and export.
This post walks through what changed and what’s still ahead.
Three pieces with hard boundaries
The wt command line is a thin layer over a Rust SDK that other programs can embed. An optional per-user daemon, worktree-bg, watches your worktrees, takes snapshots when you go idle and uploads them as staged work. The server, written in Go, is the source of truth for shared history and serves gRPC, REST, server-sent events, metrics and the admin panel from a single port.
The boundaries are strict. The daemon never enforces access control; the server does. The server never touches a working directory or creates snapshots on its own. And objects are byte-identical on disk, on the wire and on the server, so a push or a pull is a byte copy.
History you can't rewrite
History is append-only. Snapshots are immutable and content is addressed by BLAKE3. There is no rebase and no force-push; branches are archived instead of deleted, and wt revert adds a new snapshot rather than removing an old one.
Merges are three-way only. Conflicts get the familiar diff3 markers plus a machine-readable file in .wt/conflicts/, so an agent can resolve them without parsing markers out of source code. Every command also takes --json and returns documented exit codes, which helps scripts and agents alike.
Built for teams, not just repositories
Staged snapshots make work in progress visible to the team without entering branch history: wt stage uploads it, and wt status --team shows what everyone is working on, with live updates from the server.
The server knows about people, not only files. Accounts, a role matrix from viewer to owner, public, internal and private trees, branch protection and merge requests are built in. Per-path SPDX license rules are enforced on push, secret scanning runs before every snapshot, and nested trees replace submodules with independently versioned sub-projects.
What's next
v2 is alpha, and the README is explicit about what’s specified but not yet built: declarative access policies in TOML, chunked storage and lazy loading for large files, QUIC with native TLS and signed snapshots, and live Git mirroring. Each has a written spec in the repository.
If you want to try it, the quickstart builds the CLI, the daemon and the server from source, and wt git import brings an existing repository across.