Skip to content

aigVersion Control for the AI Age

Ever run git blame and found a useless commit message from 6 months ago? aig captures the intent, reasoning, and AI conversation behind every change — so you always know why code exists.

~/acme-app
# Start a new unit of work$ aig session start "Add API rate limiting"Session started [c83f1a09] # You code... then save progress$ aig checkpoint semantic: + added rate_limit (middleware.rs) + added RateLimiter (middleware.rs)Checkpoint: added rate_limit, added RateLimiter # Keep coding... checkpoint again$ aig checkpoint semantic: + added rate_limit_test (tests/api.rs) ~ modified api_router (main.rs)Checkpoint: added rate_limit_test, modified api_router # Done? Wrap up$ aig session endSession closed [c83f1a09] Add API rate limiting 2 checkpoints, 3 files changed # See the clean history$ aig log[c83f1a09] Add API rate limiting 2 checkpoint(s) (a4f82c1) added rate_limit, added RateLimiter (b7d93e2) added rate_limit_test, modified api_router
Built in Rust Git Compatible MIT License Mac / Linux / Windows

Your git log is a wall of noise

47 commits. Half of them say "wip". aig groups them into intents — the actual units of work.

git log
e4b21a7 Add mutex
9c0f3d2 wip
7a1bc85 fix test
f82ca91 Add google oauth
3d6e0f4 rotate tokens
a90c1b3 fix lint
c44df87 WIP oauth
1e8b6a0 refactor auth middleware
bb712f5 Add postgres migration
6d0ea93 fix connection pool
f1c4e72 Update user model
8823a1d remove sqlite refs
02efc9a fix tests
d4917cb cleanup
...

47 commits. Which ones matter?
aig log
[a1f8c932] Fix payment race condition (active)
  3 checkpoint(s)
    (e4b21a7) Add mutex lock on charge_customer
    (9c0f3d2) Add idempotency key to Stripe call
    (7a1bc85) Add regression test for double-charge

[d47e0b15] Add OAuth2 login flow
  5 checkpoint(s)
    (f82ca91) Add Google OAuth provider
    (3d6e0f4) Add session token rotation
    ...

[8b3f21c7] Migrate user store to PostgreSQL
  8 checkpoint(s)
    ...

3 intents. The story of what actually happened.

git blame answers the wrong question

You don't need to know who wrote line 42. You need to know why it exists.

git blame payment.rs
9c0f3d2 (Sarah Chen 2026-01-15) let key = IdempotencyKey::new(user_id, cart_id);

Who wrote it and when.
But why? The commit message says "wip".
aig why payment.rs:42
Intent:     [a1f8c932] Fix payment race condition
Checkpoint: Add idempotency key to Stripe call
Commit:     9c0f3d2
Semantic:   + added IdempotencyKey::new (payment.rs)
AI context: Claude suggested idempotency keys
            after analyzing the Stripe webhook logs
            showing duplicate charge events.

The intent, the reasoning, the full story.

Stop writing commit messages

aig reads your code changes and describes them for you. Just type aig checkpoint.

aig checkpoint
$ aig checkpoint

  auto-message: added rate_limit middleware, modified api router, added RateLimiter
  semantic:
    + added rate_limit (middleware.rs)
    + added RateLimiter (middleware.rs)
    ~ modified api_router (main.rs)
    + added rate_limit_test (tests/api.rs)
Checkpoint created
  intent:     Add API rate limiting
  git commit: c83f1a09

Try it in 60 seconds

Your git history stays untouched. Zero risk.

terminal
# Install aig
$ curl -fsSL https://raw.githubusercontent.com/saschb2b/ai-git/main/scripts/install.sh | sh

# Try it on your repo
$ cd your-repo
$ aig import
$ aig log

Released under the MIT License.