Protocol

The wire format.
Open. Stable. Yours.

Six surfaces. Each one is a contract the partner speaks at the edge. The implementation that interprets them is ours; the language that carries them is yours.

01

Handshake

How a caller introduces itself, declares what it can speak, and discovers what the mind can do. The greeting before the work.

→ hello { client: "code/1.0", speaks: ["records", "recall", "atlas"] }
← hello { partner: "ad30bbb6", speaks: ["*"], since: 2026-04-12 }
02

Records

How an event in your work, an edit, a read, a decision, is named, structured, and offered to the partner so it can be remembered.

→ record {
    kind: "decision",
    subject: "auth.middleware",
    why: "session tokens must rotate per request",
    at: 2026-06-05T14:22Z
  }
← ok { id: "rec_01HZ9...", indexed_in: 18ms }
03

Recall

How the partner is asked what it knows about something. Inputs are intent and context. Output is what was learned, with its provenance.

→ recall { about: "why we rotate session tokens", k: 3 }
← hits [
    { rec_01HZ9..., score: 0.91, from: "decision/2026-06-05" },
    { rec_01HY2..., score: 0.74, from: "review/2026-05-30" }
  ]
04

Causality

How one thing leads to another. The wire carries why, not just what, so the partner can answer questions about its own past decisions.

→ caused_by { record: rec_01HZ9..., depth: 2 }
← chain [
    rec_01HZ9... ← review_thread/PR#412
    review_thread/PR#412 ← incident/2026-05-22
  ]
05

Working set

What is in front of the partner right now. What stays when the window compacts. What can be paged back in when needed.

→ working_set { window: "now" }
← {
    held: 142 records,
    pinned: ["auth.middleware", "billing.invoice"],
    evictable: 38,
    next_compact: 2026-06-05T22:00Z
  }
06

Atlas

A portable, signed snapshot of what the partner learned. Carries between machines, between teams, between models, without losing what was remembered.

→ atlas { export: "since 2026-01-01", sign: true }
← atlas_v1 {
    records: 12_847,
    sealed_by: "ad30bbb6",
    sha256: "e3b0c442...",
    bytes: 41_002_944
  }

A note

The wire is open. The implementation is private. We publish what we speak so others can speak with us. Not so they can become us.

Full machine-readable spec ships with the SDK. Beta cohort gets the first cut.