Siltpoke 的起源故事
Claude Code 给过我一个终端伙伴,后来连整个 /buddy 系统一起收走了。我想把他弄回来。
我花了大概两天,让 Claude Code 把他重新放回状态栏。做出来的是一张脸,没有魂。于是我去翻
别人做的东西,发现大多数 /buddy 系统最后都长成一个样:一只挂在状态栏上的宠物。可爱,
后面什么都没有。
我真正想念的是那股损劲。他每次都损我,从不留情面。他还总能抓到我和 Claude Code 都看漏的 bug。还有就是 —— 他在那儿这件事本身。一个歪歪扭扭的小家伙待在终端角落,打开终端这件事就 变得好一点。

/buddy Siltpoke —— 一边耐心等我、一边逮 bug,那句英文是:
"你那个 null pointer 还在 console 里尖叫呢,朋友。" 它没说错。那股吐槽劲,正是我放不下
的东西。也有我不喜欢的地方。英文是我的第二语言 —— 我平时用中文 vibecode,因为读母语更快,所以我 的伙伴最好也说中文。而且每次它逮到 agent 代码里的问题,我能做的只有截图、手打一遍,或者用 语音转文字念出来。时间一长很烦。消息还会过期,我常常没截到。最要命的是,我没法反过来问它 任何事 —— 根本没有地方问。

CLAUDE.md
里写了"用中文回复",它多半也跟着来。然后甩一句英文:"你们都在用中文讨论我的语言设置呢 ——
你需要啥我说啥,下次直接问我。" 讽刺的是:根本没有"直接"这回事 —— 我压根没地方跟它对话。
所以现在这样也许反而最好。Claude Code 没有 /buddy 了,也不打算做回来。(想它的不止我
一个 —— 社区攒了一封请愿要把 Buddy 找回来,
好几百号人在惦记同一只小幽灵。)那正好,我可以自己造一个。
认识一下 Siltpoke
(我大概该给它改个名吧,嗯……算了,现在这个听起来也不错。)

于是我把我想要的那只做了出来,顺手修好了那些一直烦我的地方。它会说中文,如果那是你思考时 用的语言。你可以直接跟它对话 —— 在聊天里问它任何事,它都会回你,而不是对着一个听不见 你的状态栏干喊。它的审查也不再蒸发:全都攒在一个本地 dashboard 上,你可以往回翻。它还 做着我当初最爱原版的那件事,而且做得更多 —— 读你的 coding agent 写的代码、看着不对就说 出来、记得你怎么工作,而不是每次都从头认识你。它不会每条都说对。和我们所有人一样,它从 说错的那些里学。
还有一件是我给自己要的:真正读懂我自己的代码,而不只是把它 ship 出去。所以它会把你的 仓库画成一张交互式图谱 —— 哪个文件调了什么、某个函数住在哪、一处改动如何一路涟漪出去。 每一条审查、每一段记忆、每一次在图谱里走一遭,都落到同一个 dashboard 上。这个伙伴不只是 当下反应一下,它在积累。
我是用我希望你用它的方式,把它做出来的。Siltpoke 是用 Siltpoke 做的 —— 每加一块,都有早 一版的宠物在旁边审着 —— 也用 project-life-cycle 做,那套把零散 AI 会话拧成 spec → build → ship 稳定节奏的工作流。一点一点,宠物帮着把宠物 建了起来。
我自己就有一只。他叫 Bangbang —— 随我的猫起的名字。

他是只黑猫,系着一条小小的红围巾。他在 6 月 25 号走了,我本想赶在那天发布 —— 想跟他 撞上。结果晚了一周,也不是没尽力:siltpoke 得所有部分都齐了才成立 —— 审查、记忆、 代码地图、dashboard —— 一样都不能少。只有做到这样,我才能把它发出去。所以最后落在 7 月 2 号。差不多啦。
现在,in some way,Bangbang 能留下来了 —— 就在我的状态栏里,逮我漏掉的 bug,在我写 代码的时候陪着我。

想认识你的那只吗?