WhatThreeGits encodes a Git commit hash into three memorable words — and back again, exactly. Read your commit in a standup. Drop it in a ticket. Never spell out 5‑7‑f‑f‑7‑4 character by character again.
Git identifies every commit with a hexadecimal SHA. Perfect for a computer, hostile to a human voice. Read one over a call and someone transposes a digit; paste one in a message and it means nothing until it's clicked. The information is fine — the encoding is wrong for the way teams actually talk.
“five — seven — eff — eff — seven — four — bee — cee — dee — two… wait, was that two effs?”
“abdu, mimzy, overdrinking.” Said once, heard right, typed back without a second glance.
WhatThreeGits maps the part of a hash Git actually needs onto a large word list, then reverses the mapping on demand. No lookup service, no database — the same input always produces the same words.
Git only needs the first 7–12 hex characters to pin down a commit in most repos —
around 28–48 bits. Run WTG encode --short and that's what it reads.
Those bits are spread across three positions, each drawn from a ~40,000-word list.
57ff74bcd28c becomes abdu.mimzy.overdrinking — speakable, memorable, unambiguous.
Run WTG decode abdu.mimzy.overdrinking and you get 57ff74bcd28c back,
bit for bit. The transform is deterministic and fully reversible.
What3Words gives every 3 m × 3 m square on Earth a unique triplet of words. WhatThreeGits does the same for commit hashes. Here is the arithmetic that says three words is plenty — and where the honest limits are.
Every 3 m × 3 m square on the surface of the Earth must receive a unique triplet.
A Git commit hash is 160 bits. Squeezing all of it into three words is a different story.
Short hashes. Git resolves a commit from 7–12 hex characters in most repos (≈ 28–48 bits). Three words from a 40k vocabulary swallow that whole:
Full hashes. With a 32,768-word list (215 ≈ 15 bits per word) the entire 160-bit SHA-1 fits in:
WhatThreeGits does one thing and does it predictably — a global .NET tool that turns hashes into words and back with no surprises.
The same hash always maps to the same three words, and those words always decode back to the exact hash. No state, no service.
Full 160-bit mode adds a CRC word, so a mistyped or misheard sequence is caught rather than silently decoding to the wrong commit.
--short gives you three words for the part Git actually needs — the fast path for standups, reviews and tickets.
Pure local computation. No network calls, no accounts, no telemetry — safe to run against private repositories on any machine.
Ships as a .NET global tool: dotnet tool install -g WTG on Windows, macOS or Linux and it's on your PATH.
~40,000 real words per position: enough to cover every short hash uniquely, chosen to stay pronounceable rather than cryptic.
WhatThreeGits is a .NET global tool. Install it, encode a hash, decode it back — and uninstall just as cleanly when you're done.
Speakable, memorable, exact. Install WhatThreeGits and stop reading hashes one character at a time.