The forge for the agent era.
Code hosting, review, and verification built on kal — the version control system that records why. Every change carries its intent, its authors (human and model, per line), and its verification evidence, from prompt to production.
.kal is the database. .git is the compatibility view.
Answers git cannot give
Run these in any repository whose history carries kal provenance — including repositories that still live on GitHub.
$ kal log 934c73f ██████░░ 69% 2026-07-26 Rate-limit per principal so shared NAT cannot starve tenants fc62e21 ░░░░░░░░ 0% 2026-07-26 Sketch the rate limiter shape before filling in logic b244d6a ········ n/a 2026-07-26 Add a readme $ kal blame limiter.py dhruvit fc62e21 4 self.burst = burst claude-fable-5 934c73f 6 self.updated = time.monotonic() claude-fable-5 934c73f 8 def allow(self, cost=1): $ kal stats commits with provenance 2 of 3 (67%) █████████████░░░░░░░░░░░ 52.4% model-written
Commits without provenance are reported as unattributed, never guessed at.
Review a Change, not a diff
History groups into Changes — stable identities with review rounds. Revising a Change opens a round; rebasing it does not.
$ kal changes
chg_LIMITER Rate-limit per principal
2 rounds · head 566bb3b
round 1 23f4150
round 2 566bb3b
Grouping keys on git patch-id, not the commit sha — which is why a
rebase costs the reviewer nothing. On GitHub the same rebase invalidates the review.
Merges gate on evidence, not on attention
Produce evidence with kal run; decide on it with
kal verify. Every decision names what to do next.
risk tier Critical (payments/charge.py matched payments/**) authorship █████████████░░░ 80% model-written evidence tests, adversarial-review decision REQUIRE HUMAN REVIEW REVIEW tier>=critical · human-approval: need 1 at `pass`, have 0 (missing) -> Request review from a human and record their `human-approval` evidence. OK tier>=medium · tests: 1 of 1 required OK tier>=high · adversarial-review: 1 of 1 required
A merge decision nobody can explain is unusable in an audit.
Git clients never notice
On the wire, kal0 speaks git today — a real smart-HTTP server:
clone, push, fetch, protocol v0 and v2, chunked bodies. Provenance travels
inside commits as Kal-* trailers, so it survives clone, push, rebase,
cherry-pick, and format-patch.
$ git clone https://forge.kal0.com/dhruvit/kal0.git $ git push origin main
Every tool you already have keeps working. Agents get a substrate GitHub structurally cannot offer.
One command surface
kal why <path> | the intent trail that produced a file |
kal blame <path> | per-line authorship: which human, which model |
kal changes | Changes and their review rounds |
kal run · kal verify | produce evidence, and decide on it |
kal mirror <url> | mirror a repository and read what its history says |
kal sign --key K | sign provenance with an SSH key; verify names the signer |
kal personas | the repo's AI team: charters, limits, autonomy ceilings |
kal audit · kal undo | what the server did, and putting it back |
Built for what changed
Per-line attribution
Not "co-authored-by" in a footer. Which human and which model wrote each line, carried through rebases and squashes.
Intent, recorded
kal why answers the question a diff never can: what was this
trying to do, and who decided that.
Evidence, not vibes
Tests, adversarial review, human approval — typed evidence a policy decides on, reproducibly, years later.
Tamper-evident
SSHSIG signatures over provenance. Edit an intent after signing and
kal verify says INVALID, loudly.
Undo everywhere
Every server operation is recorded and individually reversible. The audit log is the undo log.
An AI team, as data
Personas with charters, standards, and autonomy ceilings — versioned in the repository, not in a vendor's console.
Status
.kal transport and sandboxed runners come later. There is no
open sign-up yet — this page will say so plainly when there is.