annagram
how it works
annagram is a tiny character-level language model built on my text: an interpolated Kneser–Ney n-gram model trained on about 37,000 words of my messages to coding agents, my notes, and my blog posts. It runs entirely in your browser, and I’ll add more text as I write it.
It writes one character at a time. To pick the next one, it looks at the last 9 characters and counts what I’ve typed after exactly those 9. If I’ve rarely written that stretch, it backs off to the last 8, then 7, and so on, blending the counts so it never runs out of ideas. [rand] (or the space bar, or poking me) starts from nothing; type in [given] and it continues from your words.
- a a guess: it had to back off to a short stretch
- a familiar: I’ve typed those 9 characters before
- a signature me: I type that stretch all the time
Before training I scrubbed names, links, and anything personal (the black bars are what got redacted) and pruned long phrases I only wrote once. It also refuses to quote me more than seven words in a row.