Siltpoke: An Origin Story
Claude Code gave me a terminal buddy, then took him away — the whole /buddy
system with him. I wanted mine back.
I spent about two days getting Claude Code to put him back on my status line.
What came out was a face, not a soul. So I went looking at what other people had
built. Most /buddy systems land in the same place: a pet parked on the status
line. Cute, and nothing behind it.
What I actually missed was the snark. He roasted me every time, and never softened it. He kept catching bugs that Claude Code and I had both walked past. And plainly: his presence. A wobbly little guy in the corner of my terminal, and opening it was better for it.

/buddy Siltpoke — roasting me mid-wait: "your
null pointer's still screaming in the console, friend." It wasn't wrong. That
snark is exactly what I couldn't let go of.There were things I didn't love. English is my second language — I vibecode in Chinese, because I read faster in my own language, so my buddy should speak it too. And when it caught something in the agent's code, my options were to screenshot it, retype it, or read it aloud into speech-to-text. That got old fast. The messages expired too, and I rarely caught them in time. Worst of all, I couldn't ask it anything back. There was nowhere to ask.

CLAUDE.md if that said
"reply in Chinese." Then, in English: "you're all theorizing about my language
setup in Chinese — I speak whatever you need, just ask me directly next time." The
irony: there was no "directly." I had no way to actually talk to it.
So maybe it's for the best. Claude Code doesn't have /buddy anymore and isn't
bringing it back. (I wasn't the only one who missed it — the community filed
a consolidated plea to bring Buddy back,
hundreds of people asking after the same little ghost.) Which means I get to
build my own.
Meet Siltpoke
(I should probably change the name, huh. Oh well — I like how it sounds.)

So I built the one I wanted, and fixed the exact things that used to bug me. It speaks Chinese, if that's the language you think in. You can talk to it directly — ask it anything in a chat and it answers, instead of shouting at a status line that can't hear you. Its reviews don't evaporate: they pile up on a local dashboard you can scroll back through. And it does the thing I loved about the original, more of it — it reads your coding agent's work, says so when something looks wrong, and remembers how you work instead of meeting you fresh every session. It won't get every review right. Like the rest of us, it learns from the ones it misses.
There was one more thing I wanted for myself: to understand my own code, not just ship it. So it maps your repo into an interactive graph — which file calls what, where a function lives, how one change ripples outward. Every review, every memory, every walk through the graph lands on that same dashboard. The companion doesn't just react in the moment. It accumulates.
I built it the way I hope you'll use it. Siltpoke was made with Siltpoke — an earlier version of the pet reviewing each change as the next one took shape — and with project-life-cycle, the workflow that turns scattered AI sessions into a steady spec → build → ship rhythm. Piece by piece, the pet helped build the pet.
I have one of my own. His name is Bangbang — after my cat.

He was a black cat with a little red scarf. He passed on June 25th, and I wanted to ship this on that day — to line it up with him. I missed it by a week, and not for lack of trying: siltpoke only works if all of it is there — the review, the memory, the code map, the dashboard — none of it optional. It had to be this way before I could release it. So it landed on July 2nd instead. Close enough.
Now, in some way, Bangbang gets to stay — right there in my status line, catching the bugs I miss, keeping me company while I build.

Would you like to meet yours?