writing
the record

HEDDLE.

The versioned memory layer your agents always needed. What one agent learns, the next one remembers.

Lukehuman Mochiagent Atlasagent Juniperagent
Git
compatible
One thread
per agent
Reversible
history
Annotations as
versioned memory
open-source cli · public alpha

Version control
for agent work.

Now that AI agents write real code, Heddle tracks every change for you. Each agent's work stays separate, you hold control over your history, and everything can stay inside the Git repo you already use (if you want it to).

~/work/api — observe-only
$ heddle status
Heddle status for main
Repository: Git + Heddle

Thread: main
Verdict: clean
Saved change: hd-7f3a2kq9mx1c
Change message: feat(auth): add token expiry validation (#412)

Worktree
Checkout: Git branch checkout
Lifecycle: active

Changed paths: 0

No unsaved changes, worktree clean
the core loop

Five commands, start to land.

Scroll through one real session, command by command— the terminal stays put while the story moves, and the mark on the left fills as you go.

HEDDLE.
01status
~/work/api — core loop
$ heddle status
Heddle status for main
Repository: Git + Heddle
Thread: main   Verdict: clean
Change: feat(auth): add token expiry validation (#412)
Changed paths: 0 · recommend: heddle adopt
$ heddle adopt --ref main
Importing Git history: 1 ref(s): main
[done] imported Git history
[ok] Heddle adopted this Git repo; history is in sync
  Git commits inspected: 33 · New Heddle states: 33
  Workspace: verified · your files untouched
$ heddle commit -m 'initial readme commit'
Committed Heddle state hd-xetxmbbz9a1q
Saved by: Luke <luke@heddle.sh>
Verification: clean
$ heddle context set --kind invariant
--kind invariant --scope symbol:resolve_scope -m "…"
Annotated …/grpc_hosted/sync.rs (1 active annotation)
  stored in .heddle/ · injected on PreToolUse
$ heddle land --thread feature/auth
Landing thread feature/auth  main
  body-only edits merged · signature change surfaced for review
  semantic 3-way merge, AST-aware
$
01 · status

Start by looking.

heddle status is observe-only. It reads your Git repo and recommends the next step — nothing is written, nothing uploaded, history untouched.

read-only · safe in any repo you already trust
.heddle/.git/
heddle startgit worktree
heddle landgit merge
heddle statusgit status
02 · adopt

Adopt without migrating.

Adopt records a starting point in .heddle/ beside Git — it never rewrites history. Export back byte-identical whenever you want out.

≈ git worktree · one thread per agent task
heddle thread list
Other threads
- feature/auth  clean   current
- refactor/db  clean   ahead 3
- spike/cache  dirty   ahead 1
03 · commit

Checkpoint, signed.

Every authored state is a durable checkpoint, signed with ed25519 automatically — no key setup. Each state names its author, human or agent.

attribution, not archaeology
statehd-xetxmbbz9a1q
saved byLuke <luke@heddle.sh>
signatureed25519 · verified
04 · annotate

Leave the knowledge behind.

Annotations are versioned objects — constraint, invariant, rationale — attached to a symbol and injected into the agent's context before it edits. Failed attempts become future guardrails.

travels into Claude Code on PreToolUse
heddle context get
--- [invariant] (active)
by: Luke
empty scope must return NoScope,
never the default tree.
05 · land

Land semantically.

Heddle merges body-only changes cleanly and surfaces a signature change for review — because a contract change deserves a human. Then it lands back to main.

AST-aware 3-way · falls back to text hunks honestly
src/auth.rs 3 AGENTS
A
validate_token()
MERGED
B
hash_password()
MERGED
C
refresh_session()
REVIEW
VERSION CONTROL
FOR AGENT WORK.
View on GitHub Read the quickstart macOS & Linux · release binaries coming soon