koh

@june

Version control designed for the solo developer. You can learn it in five minutes. Every koh save is a complete snapshot of your project. Every file. Reversible with one command. Two lanes: dev to experiment freely, main to ship. Extraordinarily fast.

https://koh.asha.software

Zig

2.0.6 · 473 saves · 27,327 lines · updated 3 days ago · trusted

473 saves
107 files ⇓ bundle
473 saves
5774a04c21a3enforce proper release notes: reject slop (<40 chars or <12 words), document 4-step before/after flow in AGENTS.md, add isSlopNotes guard in offer_builds (v2.0.6)dev3 days ago
0bfe771aa27afix peach-browser steal DbStep: defer FKs for out-of-order manifests, skip missing .agent objects during restore (v2.0.5)dev3 days ago
52aaad2612bdrewrite stalled checkpoint-containment tests to assert inclusive cross-the-wire offer/retry/strip behavior; fix resize-test drain to keep pty draining so TUI reaches q and quits (v2.0.4)dev1 week ago
77c7ca394ee3v1dev1 week ago
details

Koh

Version control for the solo developer.

Koh is a single binary. No staging area. No remotes. No merge conflicts between people. Just save, undo, and promote — built around how one developer actually works.


Two lanes. One rule.

dev is your scratch pad. main is the official record. Save freely on dev, promote what's good to main. That's the entire branching model.

koh save "add argon2id key derivation"
koh promote

Every save is a complete snapshot

Koh uses a content-addressed object store. Unchanged files between saves cost zero storage. Everything is Blake3-hashed and zlib-compressed. The manifest is the source of truth — the database is a rebuildable index.

If you lose the database: koh recover. It rebuilds from manifests. Nothing is lost.


Safety is the default

Every destructive command shows a preview and prompts for confirmation. The default answer is always N. Pressing enter without reading is always safe.

koh undo rolls back saves. koh discard restores the working tree. koh peek reads a historical snapshot into a temporary directory without touching HEAD. koh load --checkpoint returns you to the last known-good state before a risky session.


Built for agents

koh checkpoint "before opus refactor"
koh save --agent "claude-opus-4" --session "auth refactor" "extract token validation"
koh undo --session

Sessions group related saves. Checkpoints mark safe rollback points. --json output on every read command. Koh maintains LOG.md automatically — every save, checkpoint, tag, and promotion is recorded. Agents open it and immediately know the project's recent history.


The numbers

| | | |---|---| | Commands | 38 | | Source | ~9,300 lines of Zig | | Test suite | 218 cases across 12 suites | | Dependencies | none — single statically-linked binary | | Storage format | Blake3 + zlib · JSON manifests · SQLite index |


Install

curl -fsSL https://koh.asha.software/install.sh | sh

Self-update

koh update

Koh updates itself from Kepr. Checksums verified. Atomic install.


koh.asha.software · Asha Software · MIT