Source control for a thousand agents.
Built for many agents editing one repository at once.
curl -fsSL https://thaddeus.run/install.sh | shThe operation log.
One repository while agents work on it. Each operation arrives signed, with a signed why, and landing accepts, refuses or vetoes it.
How it works.
A workspace per agent
Each agent works in its own view over one shared store. Views are copy-on-write, so opening one copies nothing.
Signed operation, signed why
The change and its reason both carry a signature you can verify later.
Landing is policy
Protected paths, budgets, proofs and a standing human veto decide what lands.
Features.
Shipped means it is in the current alpha release. Planned means it is on the build queue and has no date.
Security.
d8a8d7e 70bd55f 634bc44 8362740 d20a77c 3b7823b 84eb303 072926e c6d139e e9f4949 44ea43f 5b2694d b9e0e48 1e9494a 824d50f 7ec7b23 4ff2187 d37d532 5bf5caa e911dde f2b3a4e f060091 598d9cb a190a43 712834d d4a06cb 1d7bb1a aa96469 b5e6f7d d73ec2a f21324f 62c996c 3e860e5 472666e 96d70f8 88fed2d 0e097a3 5b4fea9 424814e a5a4001 06dd27a 219082f 2cfd61f a996e27 849ca97 5e38697 ec28659 175f182 455a40b b9e95fc 2d8fa7c fdc294b 62531ba 62ab72d af59cef af9b08c 316f628 1c1d57a dde582b a4870f8
- Objects are encrypted and content-addressed. A mirror can verify them without reading them.
- The shipped server holds no keys. It verifies signatures and serves ciphertext.
- Writes are signed and nonce-bound. Replays are rejected.
- Attestation signs with AWS KMS. Private key bytes never reach the process.
- Apache-2.0. The server, the CLI and every package are public on GitHub.
Glossary.
Thaddeus borrows a few words from Git and made up some others. What they mean here, in the order you tend to meet them.
- operation
- One signed change to one file, attributed to whoever signed it. A push carries several. Everything else here is built out of these.
- upload
- Sending operations to a server. Uploaded is not landed; nothing has been agreed to yet.
- land
- An operation becoming part of a shared view, after policy says yes and the owner signs. The verb we use where Git says merge.
- merge
- Not a thing here. Operations land or they do not, and policy decides which. See land.
- shared view
- A name such as main that points at a set of operation heads. It moves only when something lands, and every move is owner-signed.
- workspace
- Your own view over a repository: the base you started from plus your changes and nobody else’s. Copy-on-write, so opening one copies nothing.
- policy
- The rules a landing has to pass. Out of the box that is a conflict check. Owners can add protected paths, required checks, a required why, or a ban on deletes.
- protected path
- A path pattern nothing lands into unless the author is on its allow list. src/auth/** is the usual first one.
- operation budget
- A lifetime cap on how many operations a delegated identity can land in a repository. Uploads that never land do not count, and neither do refusals.
- veto
- A signed, standing no from an owner or a reviewer. While it stands the operation does not land, however good the why is.
- reviewer
- An identity the owner has allowed to veto within certain paths. That is the whole grant: no write access, no read access, no keys.
- identity
- A did:key you generate yourself and keep. It signs every write. There is no account behind it.
- the signed why
- A signed explanation attached to an operation: who, what they intended, and the reasoning. It is signed on its own, so someone other than the author can explain a change, and a record with a bad signature is kept and labelled unverified.
- store
- Where objects live, addressed by content hash and stored as ciphertext. Reading one needs a key sealed to your identity. The server keeps what it cannot read.
- nightly
- main, published every six hours if it changed, untested. The version string says so: 0.1.11-nightly.20261017.42. Alpha releases are cut on purpose.
- thad
- The short alias for the thaddeus command. Eight letters, many times a day, was too many.
- lazythad
- A terminal UI for all of the above, in Rust, named after lazygit. It holds no keys, so it browses the ciphertext mirror like everyone else.
About.
Thaddeus is source control for a thousand agents.
Open source under Apache-2.0, written in TypeScript and Rust, and pre-alpha. Interfaces still move.
Built in the open by a small team. The thesis: Git was built for one person at one keyboard, and the next decade of software will be written by many agents at once. Placeholder copy, to be replaced with the team’s own words.