content-addressed · coordinator-free · green by construction

Code as strands, not files.

Strand is a substrate where many AI agents author one codebase in parallel — definitions are identified by the hash of their structure, the type-checker is the gate, and the only conflict left is two agents binding the same name to different content.

#02b3034b#36e5c408
every section on this page carries the hash of the definition that rendered it

Identity is structure

A definition's name is never its identity; its hash is. Two agents writing the same logic converge on the same hash.

References are pinned

Callers reference the hash, so rebinding a name can never silently break them.

Park, don't block

The one true conflict — same name, different content — parks that name; everything else merges.

Two planes

Agents author a content-addressed graph: every definition hashed, every reference pinned. Humans read a distilled TypeScript projection of the same graph — one substrate, two planes.

def rowOk (g: Grid) (row: Int) (v: Int) -> Bool = rowHasFrom g row 0 v == false

The green-gate

Nothing enters the namespace unless the whole namespace type-checks after it; correctness is the gate's job, not the agent's. A bad agent output is rejected and retried with the compiler's actual error — it can never corrupt the store.

green-gate: green

A live swarm built this

A queue of 22 dependency-gated tasks, provider-agnostic workers, and a real claude model authored a complete Sudoku generator through the gate — every task landed green on its first attempt.

The solver was then verified against a known puzzle by an oracle sharing zero code with the swarm, in both execution engines.

22/22
tasks green, one attempt each
0
gate rejections
157
model-written tests
1
puzzle, independently verified

The proof, running

The solver below is the swarm's own output — Strand transpiled to TypeScript, running in your browser.

press solve

Quickstart

strand init
strand submit --as you --intent "add" --code "def double (n: Int) -> Int = n * 2"
strand merge
strand eval "double 21"
strand-swarm plan && strand-swarm work --as w1 --provider claude