This started as a joke and turned into something I actually use.
I work across a lot of git worktrees at once, and every terminal looked identical. I kept typing into the wrong one.
So now each session hatches an ASCII creature into the status line. It’s derived by hashing the session id, so nothing is chosen and nothing is persisted anywhere - delete the cache and the same session draws the same creature. Some species are rarer than others and a few are shiny, which was a mistake, because I now open extra worktrees hoping for a good roll.
The face also tracks how tidy the worktree is: uncommitted files, unpushed commits, how far behind trunk you are. A small animal looking miserable about your working tree turns out to be more persuasive than any pre-commit hook I’ve installed.
Single static Go binary, no runtime dependencies. The status line executes once a second in every open session, so that path reads two small cache files and never shells out to git - the expensive work happens in a throttled background probe.
Mine, so take the enthusiasm with salt.


It is good that this gives you some happiness; my joy for such things has significantly declined. Making the agent hellscape cutsey seems fruitless and somewhat macabre to me.