bnsd55 / openscion
git clone https://github.com/bnsd55/openscion.git
Server-centric version control for agent-heavy monorepos, in Rust. An independent open-source implementation of the design from Anthropic's "Redesigning source control" post. Not affiliated with Anthropic.
—
stars, 24h
+29
stars, 7 days · #1,360
+29
stars, 30 days · #9,083
29
★ total · +29% this week
2
forks · 37 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageRust
LicenseApache-2.0
Created2026-10-14 (6d ago)
Last pushtoday
Watchers0
OwnerUser
GitHub topics
Links
- GitHub: github.com/bnsd55/openscion
- Homepage: https://www.anthropic.com/engineering/redesigning-source-control
- Releases · Issues · Hacker News mentions
README excerpt
# openscion A version control system for large monorepos where most of the writers are AI agents. The server keeps the history and makes the commits; clients ask only for what they need. Written in Rust. > **Alpha (0.x).** It runs on one machine and is not ready for production > code. What holds between versions is in docs/stability.md; > the order of the work, and what stays out until it passes, is in > docs/ROADMAP.md; planned work is tracked in > issues > and milestones. ## What this is, and what it is not openscion is an independent, open-source implementation of the design that Anthropic described in Redesigning source control (October 2026). Anthropic built a system called Scion for its own monorepo. This project rebuilds the ideas from that public article. - It is **not** affiliated with or endorsed by Anthropic, and it contains no Anthropic code. Where the article does not say how something works, this project makes its own choice, and the design notes below say so. - It is **not** related to the SCION Internet architecture, to GoogleCloudPlatform/scion, or to the `scion` crate on crates.io. **Platforms.** Linux and macOS. Windows is not supported. What exactly is tested and what is not: Supported platforms below. What each release promises per surface: docs/stability.md. What each severity level gets and for how long: docs/support.md. **Scope of v0.1.** v0.1 is one server process on one machine. The article describes a horizontally scalable system: a small fleet of servers that need little coordination, with metadata in Spanner and file contents in blob storage, and a cache tier per region and a daemon per node in front of them. Here, all data is in one SQLite file and one blob folder on one machine, all writes go through one database connection, and lands to a ref are serialized by a lock in the server's memory. So a second server process cannot share the data. A backend that scales out is not built (#47); the cache tiers are built and run in front of the server (below). ## Why Git assumes that every clone is a full, offline copy of the repository, and that every merge starts on a developer's machine. That works for people. It works badly when thousands of agents and CI jobs write to one large repository all day. Anthropic reported more than 30,000 merges and about 25 million CI checkouts per day on a repository with about 100 GB of history. With git, each of those jobs copies data it does not need, and each merge needs a fresh clone, a local rebase and a push that fails when someone else pushed first. ## How it works [code] **The server does the work.** History, commits and rebases live on the server. An agent reads only the files it needs over the API, sends the files it changed, and asks the server to land them. It never clones the repository. **A commit lists only what changed.** A commit is called a *changeset*. It stores the files that changed compared to its first parent, plus content hashes of those files. Files and direct