Workflow

The Git loop you know, with undo, isolation, and attribution.

heddle init in an existing Git repo. Capture as you work. Spawn task-threads when the work splits. Undo what didn't land. Bridge back to Git when you're ready. It all lives in .heddle/ beside Git, replayable and undoable offline.

01

Adopt

Drop into your existing Git repo.

One command. No migration. Git stays your bridge to branches, PRs, and reviewers. Heddle records agent work as task-threads underneath.

bash$ cd your-repo$ heddle initinitialized · git-overlay mode · tracking main$ heddle statuson thread main · clean · 0 captures since init
02

Work

Start a task-thread. Capture as you go.

Each task gets its own named thread, isolated by default. Captures replace the staging dance: intent, agent, confidence, optional signature, all carried as structural data, not parsed from a commit message later.

task/biscuit-authz

$ heddle start task/biscuit-authz --task "replace JWT with Biscuit capabilities"
thread started: task/biscuit-authz
  parent: main @ hd-f1a23b8cq7m4
$ heddle capture -m "scaffold biscuit verifier"
state      hd-7c2e84f1nh9k
agent      claude-opus-4.7 · 0.94 confidence
  · 9 captures · 3 retries · 1 abort recorded so far
03

Review

Review the whole task, not just the final diff.

Semantic diff shows the structural change, not raw line diffs. The thread surface composes captures, retries, abandoned threads, and tests into one record you can scan in seconds.

heddle diff · semantic

$ heddle diff task/biscuit-authz main --semantic
+ src/server/auth/biscuit.rs    2 new symbols · 1 rewrite
~ src/proto/auth.proto          JwtClaims removed · AuthRequest renamed
+ tests/auth/biscuit_spec.rs    12 new tests
$ heddle thread show task/biscuit-authz
  16 events · 9 captures · 3 retries · 1 abort · 1 conflict · 1 test · 1 merge
status: reviewable · signed: ed25519:a8f3…c1d7 ✓
04

Bridge to Git

Hand the task back to Git.

When the task is reviewable, heddle land squashes the thread into a single Git commit and writes the Git checkpoint, optionally pushing it to the branch your team already reviews. Your reviewers, your CI, your PR template stay exactly as they are.

heddle land

$ heddle land --thread task/biscuit-authz --push
landed task/biscuit-authz · squashed to 1 commit on main
  Git checkpoint written · pushed to origin
  task summary printable via `heddle review show`

Terminal-native

Heddle state is structured data. Not parsed text.

Every command supports --output json. Shell completions for bash, zsh, and fish. One step to install. Automation reads Heddle the way it reads a database, not the way it parses stdout.