siltpoke blog
← all posts

2026-07-02

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.

The original Siltpoke roasting my code
The original — Claude Code's /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.

Asking the original Siltpoke whether it could speak Chinese
Me asking whether I could switch its language. In Chinese, it guessed it had no real language setting of its own — it'd just follow your 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.
The same ask, plainer — and the snark it fired back
Same thing, one more time: I just call its name and tell it to speak Chinese. Still no budging — "three arms pause mid-keystroke … I handle my own responses. What's the actual problem you need eight arms for?" All attitude, zero settings.

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.)

Asking the original Siltpoke about its own name
Long before this, I asked the original why "Siltpoke." It answered in Chinese — that "Silt" is riverbed sediment, an octopus lives on the seabed, and "poke" might be how it prods around — then, unbothered about whether it'd get eaten, shrugged in English: "I've got eight limbs and your bugs won't catch themselves, yeah?"

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.

Bangbang

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.

Bangbang in my status line
The model, git, and context/usage bars come from claude-hud — worth a try if you like the look. Siltpoke is the face on the left and the one-line code review beside it; it just layers onto whatever status line you already run.

Would you like to meet yours?