Your git muscle memory mostly works
kal keeps git's mental model — snapshots, branches, merges, remotes — and removes the sharp edges. Here is the mapping, then the four differences that actually matter.
| In git | In kal | What improves |
|---|---|---|
git init | kal init | Same idea — and both can share one folder. |
git add -A && git commit -m | kal snap -m "…" -i "…" | One step, and the why is recorded as data. |
git status · log · diff | kal status · log · diff | Log shows intents and human/AI authorship. |
git switch · merge | kal switch · merge | Conflicts are minimal, line-level hunks. |
git stash | kal checkpoint | Real history — nothing to pop, nothing to lose. |
git reflog + hope | kal ops + kal undo | Covers every operation, reversibly. |
git blame | kal blame | Adds human-vs-AI attribution per line. |
git bisect run | kal bisect --run | Validates both endpoints, so it cannot mislead. |
git push · pull · clone | kal push · pull · clone | Provenance, trust stamps and lessons travel too. |
| delete a dead branch | kal archive -r "why" | Failed experiments become searchable lessons. |
| — no equivalent — | why · ask · stats · verify | The AI-native layer. |
Where did the staging area go?
There isn't one, deliberately. Staging exists so a human can hand-pick hunks into a commit.
In an AI-native workflow, agents — and humans finishing a task — produce whole coherent states,
and the “which part means what” story belongs in the intent, not in hunk surgery.
That removes git's most confusing concept and one of its easiest ways to lose work.
If you want the same outcomes, kal restore and kal checkpoint compose them.
Reset stops being frightening
In git, reset --hard is the command people learn to fear. In kal every operation is
journalled with its before-and-after state, so the recovery path is always the same single word.
$ kal undo undid operation #12 (tag: v1.0 at 8cc7226d95ba) refs restored to their prior state; commits are retained (undo is undoable) worktree files were left untouched — add --files to also reset them, or run `kal restore HEAD` yourself
Adopt without asking permission
Run kal init inside an existing git repository. kal git sync mirrors both
directions, carrying kal metadata in commit trailers that survive GitHub, pull requests and rebases.
Your teammates, CI and IDE keep seeing a normal git repo, while you get intents, per-line AI
attribution, universal undo and archived lessons.
$ kal git sync && git log -1 exported 7 kal snapshot(s) to git (tip e949595ae6) — metadata in Kal-* trailers clone work Kal-Snap-Id: f28e2022e3f610cceb9e86df6605bceeedf6554ba7acfbecfc1be02debf4ce67 Kal-Author-Kind: human Kal-Intent: contribution from the clone