Workflow
The Git loop you know, with undo, isolation, and attribution.
heddle init in an existing Git repo. A thread per task,
captures as you work, heddle undo for what didn't work
out, and a land back into Git when you're done.
01 Adopt
Start in the repo you have.
One command in an existing Git checkout. No migration: Git stays your bridge to branches, pull requests and reviewers, and Heddle keeps its record in .heddle/ beside it.
heddle initinitialized · git overlay · tracking main heddle statuson thread main · clean02 Work
One thread per task. Capture as you go.
Each task gets its own named, isolated thread. A capture records a step with its intent, so it can be undone, reviewed and traced later, instead of being reconstructed from a commit message.
heddle start task/biscuit-authz --task "replace JWT with Biscuit"thread started: task/biscuit-authz heddle capture -m "scaffold biscuit verifier"captured hc-7c2e84f1nh9k03 Review
Review the task, not just the last diff.
A semantic diff shows what changed in the code’s structure. The thread shows the run behind the change. When it’s done, mark it ready.
heddle diff main --semantic+ src/server/auth/biscuit.rs 2 new symbols~ src/proto/auth.proto JwtClaims removed heddle thread show task/biscuit-authz9 captures · 3 retries · 1 abort heddle ready -m "Biscuit capabilities"04 Land
Land it, then push.
Landing integrates the ready thread into its target, squashed into one Git commit by default. Pushing publishes it. Your reviewers, CI and PR template stay as they are.
heddle land --thread task/biscuit-authzlanded task/biscuit-authz on main · 1 commit heddle pushpushed main
Output abbreviated. The commands are the CLI's own.
Scripts and agents
Structured output, not scraped text.
The everyday commands, init through push,
print JSON with --output json, and heddle completions writes a completion script for
your shell.
heddle status --output json