git-kv: a tiny key-value store stuck to your commits via Git notes

April 17, 2026
A cluttered office desk featuring a laptop, notebooks, and checklists amid colorful sticky notes.
Photo by Jakub Zerdzicki on Pexels

What it is

git-kv is a compact Bash script that tethers arbitrary key/value pairs to commits using Git notes. Want to remember a build ID, a SHA256, or which reviewer approved a commit? You can. Install with curl | sh, drop the single script in your PATH, and start using git kv set/get/show without standing up a database. It’s delightfully low-friction — no server, no secrets, just plain Git.

How it works

Data lives in refs/notes/kv (check .git/refs/notes). Notes are versioned and fetched separately from normal refs, so synchronization uses git kv push and git kv pull. Deletions are represented as tombstones (keys with empty values), and you can dump a commit’s key/value set as JSON (-tjson) or inspect the raw note history (-traw). Patterns are supported for key matching (grep-style), and COMMIT defaults to HEAD — handy defaults that keep your hands clean.

Why it matters

This isn’t a replacement for Vault or Redis. It’s a pragmatic tool for metadata: ephemeral test timings, artifact IDs, approvals, performance numbers — anything you want to pin to a revision. The emotional payoff is real: auditability and provenance without adding infrastructure. For teams who like Unix composability and hate yet another service, git-kv is a neat, Git-native trick that fits right into existing workflows.

Sources: github.com/sebastien, Lobsters