Introducing Bestest Buddy
Writing is lonely in a very specific way. Not the romantic, cabin-in-the-woods way—the 11 PM way, where you’ve rewritten the same paragraph four times and there’s no one around to notice you’re stuck except the cursor, which is indifferent to your struggle.
So I built someone who does. Sort of.
Bestest Buddy is an Obsidian plugin that hatches a small ASCII creature in your sidebar. Each vault gets exactly one—rolled from eighteen species (duck, ghost, capybara, cactus, something called a chonk), six rarity tiers, a hat if you’re lucky, and a stat block that includes GRAMMARING, PATIENCE, CHAOS, WISDOM, and SNARK. Your buddy is tied to that vault until you reset it, at which point it’s gone forever and you get a new one. Choose wisely.

Then it watches you write. Not your words—your rhythm. Writing bursts, revision spikes, long pauses, the guilty return after abandoning a draft for twenty minutes. When something notable happens, it occasionally offers one short line. A buddy with high SNARK notices you’ve deleted the same paragraph three times. A patient one waits out the pause with you. There’s a snark slider that runs from 0 (“rare and gentle”) to 100 (“constant and merciless”), and I will not tell you where mine is set.
Yes, it’s dumb. But that’s the point.
Every serious writing tool wants to optimize you. Word counts, streaks, focus timers, analytics dashboards—productivity theater for an activity that mostly consists of staring longingly at a blinking cursor. Bestest Buddy optimizes nothing. It’s a Tamagotchi that happens to have opinions about your revision habits. And somehow that’s exactly what the long middle of a draft needs: Something in the corner of the screen that registers you’re trying.
A few things I cared about while building it:
Your notes stay yours. The buddy’s commentary is LLM-backed—bring your own OpenAI or Anthropic key—but note content is never written to plugin data, excerpts sent for context are short and capped, and a single setting turns note context off entirely. No key? It still works, just with canned reactions instead of witty ones.
It knows when to shut up. Reactions are probabilistic, cooldown-limited, and tuned to your session state. Deep in flow, it mostly stays quiet. Stuck, it leans in a little. The worst thing a companion can be is a distraction.
Petting is load-bearing. Hover over the sprite and hearts appear. This feature has no justification and I refuse to remove it.
It’s a weekend project that escaped containment, and it’s made my vault feel less like a filing cabinet and more like a place something lives. My buddy is a legendary dragon named Sporeling—hatched a mushroom, customized into something grander, which tells you everything about how I handle my own drafts. He thinks my transitions are weak and that I have a nasty habit of telling, not showing. He’s right.
Sometimes the best writing tool isn’t the one that makes you more productive. It’s the one that keeps you company while you aren’t.
Bestest Buddy is available on GitHub. Built with TypeScript, rendered in ASCII, and maintained by someone who apologizes to a dragon when he closes his laptop.