An AZMX AI project

Version control that knows why.

kal records the intent behind every change, tells human code from AI code line by line, and makes every operation reversible. It mirrors to git, so nothing you already use has to change.

works alongside git zero dependencies MCP built in no telemetry
~/payments

  
Why switch

Three things git structurally cannot do

git versions text. kal versions meaning — and when half your commits come from agents, that difference compounds every day.

History that explains itself

Every snapshot carries an intent — a first-class, searchable field. kal why app.py answers the question everyone asks six months later, with no archaeology through pull requests and chat logs.

Human and AI, told apart

Authorship is structured: human or agent, and which model. kal blame shows it per line; kal stats scores each model by verification and revert rate — an eval harness you get for free.

A safety net with no holes

Snaps, merges, resets, branch deletes — every operation lands in an append-only log. kal undo reverses any of them, and undo is itself undoable.

The command surface

Six groups. No alphabetical wall.

Run kal with no arguments and this is the greeting: plain-language one-liners, inline examples, and the AI-native commands presented as first-class citizens.

terminal
$ kal

  kal — AI-native version control                          v0.7.0
  ──────────────────────────────────────────────────────────────
  Every snapshot records what changed, why (intent), and who — human or AI.
  Every operation is reversible. Plays nicely with git.

  Start here
    init        create a repository in this directory          kal init
    snap        record a snapshot — what changed and why       kal snap -m "fix login" -i "IdP rate-limits bursts"
    status      what changed since the last snapshot
    log         history with intents and authors               kal log --grep auth
    diff        line-by-line changes vs a snapshot
    awards      your journey — achievements & streaks

  Branch & combine
    branch      list / create / delete / rename branches
    switch      move to another branch
    merge       line-level three-way merge
    tag         name a snapshot (releases)                     kal tag v1.0
    restore     bring back files from any snapshot             kal restore HEAD~2 app.py

  Your safety net — everything is reversible
    undo        undo the last operation (even merges & resets)
    ops         the operation log behind undo
    checkpoint  quick work-in-progress snapshot
    revert      make a snapshot that undoes another
    bisect      auto-find the snapshot that broke a test       kal bisect v1.0 HEAD --run "pytest"

  Understand your code  (AI-native)
    why         who changed a file, and why — the intent trail kal why app.py
    blame       per line: written by a human or an AI?
    ask         question your history in plain English         kal ask "why do we retry logins"
    ask --llm   let a model answer, citing snapshots
    stats       verify & revert rates per author / AI model
    verify      run tests, stamp the result on the snapshot    kal verify "pytest"
    archive     retire a branch but keep WHY it failed

  Work with others
    clone       copy a repository (path or URL)
    push / pull sync with a remote — provenance travels too
    serve       host this repo over HTTP for your team
    git         mirror to/from git — works with every git tool kal git sync

  For AI agents & platforms
    mcp         serve kal as MCP tools (Claude Code, Cursor, …)
    watch       auto-checkpoint agent sessions
    context     brief an LLM about this repo                   kal context --agents-md
    export      consented training data from history
…

Browse every command with its real output →

Ergonomics

A CLI that teaches instead of scolding

Mistype a command and kal suggests the fix rather than dumping usage text. Meaningful milestones — your first snapshot, a ten-snap intent streak, a run of green verifications — unlock one of sixteen achievements. All of it is terminal-only: silent in scripts and pipes, NO_COLOR respected, and one config flag from off.

kal help <command> details any command · kal help tour runs the guided tour.

terminal
$ kal stauts
kal: 'stauts' is not a kal command.

  did you mean?
        kal stats        kal status

  `kal help` shows all commands.
terminal
$ kal awards

  Your kal journey   5/16 achievements

   🌱  First Light              earned   your first snapshot in this repo
   🔟  Ten Up                   █████░░░░░░░░░ 4/10  10 snapshots recorded
   💯  Centurion                ░░░░░░░░░░░░░░ 4/100  100 snapshots recorded
   ✍️  Why-Writer               ████░░░░░░░░░░ 3/10  10 snapshots with an intent — history that explains itself
   📖  Storyteller              ████░░░░░░░░░░ 3/10  10 snaps in a row with intents
   ✅  Green Keeper             ░░░░░░░░░░░░░ 1/10  10 passing verifications
   🟢  On a Roll                ██░░░░░░░░░░░░ 1/5  5 passing verifications in a row
   🤝  Smooth Operator          ██░░░░░░░░░░░░ 1/5  5 merges without a single conflict
   🧵  Conflict Tamer           ░░░░░░░░░░░░░░ 0/1  resolved a conflicted mergeTime Traveler            earned   used undo — nothing is ever lost in kal
   🔍  Detective                ░░░░░░░░░░░░░░ 0/1  found a culprit with bisect
   🏺  Archaeologist            ██░░░░░░░░░░░░ 2/10  asked your history 10 questions (why / ask)
   🌉  Bridge Builder           earned   synced with git — best of both worlds
   🚀  Team Player              ░░░░░░░░░░░░░░ 0/1  first push to a remote
   🗄️  Keeper of Lessons        earned   archived a branch with its lesson
   🏷️  Release Captain          earned   tagged a release

  Live streaks: intents 0 · green verifies 1
  (celebrations off: kal config ui.celebrations off)
Adopt without a migration

kal and git, in the same folder

Run kal init inside any git repository today. One command mirrors your snapshots into ordinary git commits, with intent and AI attribution carried in commit trailers that survive GitHub, pull requests and rebases — then imports git commits back the same way. Your CI, your reviewers and your IDE never notice, and you keep every kal feature.

See the git → kal translation table →

What rides along

Intent, human-vs-AI authorship, session id and model name travel as Kal-* commit trailers — so provenance survives GitHub, pull requests and rebases, and imports back into kal intact.

terminal
$ 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
Install

One command on every platform

Twelve package formats, each install-tested on its native OS by CI before release.

macOS

brew tap AzmxAI/kal
brew install kal

Linux

# deb · rpm · nix · tarball
curl -fsSL kal0.dev/install.sh | sh

Windows

# installer or portable exe
irm kal0.dev/install.ps1 | iex

All downloads