Nibble · 住在编辑器里的像素小狗
提问即攻击。 你每次向 AI 提问(或保存文件),这只住在底部面板 / 状态栏的像素小狗就自动打掉一只
「编程 Bug」怪——升级、掉武器、收集图鉴,等级与进度跨会话保存。连续提问还会累积连击:
光环在脚下亮起,专注看得见。常驻、自动动画、零 token。
在 CodeBuddy / VSCodium 等编辑器的扩展面板搜索 Nibble 即可安装(Open VSX)。
它是谁:我的狗「拾玖」
游戏里这只像素小狗,是照着我家的狗画的——约克夏串串,名字叫 拾玖。
照着它的样子画的像素画(AI 生成),收成 24×24 像素(19 色),就成了游戏里的样子。它平时陪我写代码,现在也顺便帮你打工。
40 只怪物,全是真 Bug
名字不是编的,全是你大概率踩过的坑:
- 小怪(20):空指针幽灵 / 无尽轮回蛇 / 差一错虫 / 类型混搭兽 / 未定义影 / 越界游魂 / 乱码兽 / 未捕获异常魔 /
浮点误差团 / 变量遮蔽妖 / 回调地狱犬 / 复读机怪 / 魔数精 / TODO 僵尸 / 硬编码石人 / 全局污染粘液 /
拼写错误鬼 / 分号伏击者 / 时区错位兽 / BOM 头蠕虫
- 精英(14):内存泄漏巨蟒 / 竞态幽灵 / 死锁蛛 / 栈溢出巨龙 / N+1 查询兽 / 幽灵依赖 / 不稳定测试兽 /
循环依赖衔尾蛇 / 缓存失效魔 / 悬空指针 / 句柄泄漏水蛭 / 编码噩梦 / 时钟漂移 / 静默失败幽灵
- 头目(6):段错误泰坦 / 熵增病毒 / 祖传代码巨像 / 级联雪崩 / 位腐古神 / 技术债奇点
每一只都配了一段「Bug 纪要」,写的是它干过的真实事:
两个线程同时进门,谁先谁后全看运气。它只在发版那天、只在周五 17:59 出现,复现率 0.03%。关掉日志它就消失,打开日志它就不来。
——「竞态幽灵」(精英 · 闪避 20%)
「暂时这么写,下周重构」。它已经这样躺了三年,注释都褪色了,代码还活得好好的。它是最长寿的临时方案。
——「TODO 僵尸」(小怪)
利息一直在滚。快速上线、临时绕过、下不为例,一圈圈绕成了吞掉整支团队的奇点。它集齐了所有 bug 的形态——因为所有 bug 都是它的碎片。
——「技术债奇点」(头目)
功能
- 底部面板:24×24 真彩像素小狗,待机上下浮动 / 攻击前冲 / 击败像素消散,带 HP 条与战斗日志
- 状态栏:
♥ Lv1 ████░░░░ 24/40 蝙蝠,随战斗实时变化,点击展开面板
- 战斗循环:提问即攻击 → 敌人掉血 → 血量归零则击败 → 刷新下一只
- 连击(Combo):相邻攻击间隔 ≤10 分钟即累积连击——≥10 连攻击最多 +30%、脚下亮起光环、头顶浮现
×N;
≥25 连转亮金并加速武器保底;≥50 连触发超载演出。断连静默归零、无惩罚,<10 连完全隐形
- 40 只「编程 Bug」怪物:命名与故事全部取材自真实 Bug——小怪(空指针幽灵 / 无尽轮回蛇 / 差一错虫 …)、
精英(内存泄漏巨蟒 / 竞态幽灵 / 死锁蛛 …)、头目(段错误泰坦 / 熵增病毒 / 祖传代码巨像 …)
- 难度分级:怪物 HP 按 层级 × 稀有度 × 等级 三重缩放(小怪 ×1.0 / 精英 ×2.0 / 头目 ×3.6);
精英与头目带机制——护甲、闪避、自愈、护盾、分裂
- Roguelite 成长:攻击力随等级提升;敌人的层级与稀有度(普通 / 稀有 / 史诗 / 传说)随等级解锁
- 武器库与战力:击败必掉 1 把武器(普通 70% / 稀有 22% / 史诗 7% / 传说 1%,40 次保底),
80 把武器各有独立像素图与一段小故事;「🎒 武器库」页按稀有度分组展示收集进度
- 战力有实际作用:武器提供百分比攻击加成(普通 +8% / 稀有 +15% / 史诗 +25% / 传说 +40%)——
等级攻击成长被刻意压低、缺口由武器补足;未手动装备时自动取已拥有里战力最高的那把(永不亏),
也可以在武器库里固定装备自己喜欢的武器
- 怪物库:「📖 怪物库」页收录所有遭遇过的怪物——未遭遇=暗剪影、已遭遇未击败=灰调、已击败=彩色并累计次数;
点选查看这只 Bug 怪物背后的「Bug 纪要」
- 装备展示:在武器库详情卡点「装备此武器」,战斗页的装备槽就换成它(图鉴里有 ★ 标记)
- 跨会话存档:等级 / 经验 / 战绩 / 武器库 / 怪物库
命令
| 命令 |
说明 |
Nibble: 显示像素小生物(底部面板) |
展开底部停靠视图 |
Nibble: 攻击一次 |
手动补一刀 |
Nibble: 打开武器库 |
查看收集进度与武器故事、装备武器 |
Nibble: 打开怪物库 |
查看 40 只「编程 Bug」怪物的收录 / 击败记录,读它们的 Bug 纪要 |
Nibble: 在编辑器标签页中打开 |
放大到编辑器标签页 |
Nibble: 重置等级/经验/战绩 |
清空进度重新开始 |
Nibble: 显示/隐藏状态栏小生物 |
切换状态栏显示 |
Nibble: 关于匿名统计(发什么 / 如何关闭) |
查看统计状态、一键关闭或重置匿名 ID |
设置
| 设置项 |
默认 |
说明 |
nibble.triggerMode |
hook |
战斗节拍来源:hook(配套插件提问即攻击)/ onSave(保存文件即攻击)/ manual(仅手动) |
nibble.statusBar |
true |
在状态栏显示小生物 |
nibble.autoOpenPanel |
true |
启动时自动展开底部面板 |
nibble.tickMs |
400 |
刷新间隔(毫秒) |
nibble.telemetry |
true |
发送匿名激活统计(仅匿名 ID + 版本号,每天最多 1 次);设为 false 后不再联网 |
只装扩展、没有配套插件时,把 nibble.triggerMode 改成 onSave 即可独立使用。
隐私
本扩展唯一会联网的地方是"匿名激活统计",且从添加它的那个版本起就在更新日志里公开说明。
- 只发送 2 个字段:本机随机生成的匿名 ID(与账号/机器无关,可一键重置)+ 扩展版本号。
- 不发送:代码、文件内容、文件路径、项目名、提问内容、账号、邮箱、机器名、操作系统、地理位置。
服务端不保存 IP,只累加"当天上报次数 / 当天去重活跃数 / 各版本次数"。
- 频率:每台机器每天最多 1 次。上报失败静默忽略,不影响任何功能。
- 关闭方式(任一即可):把
nibble.telemetry 设为 false;或运行 Nibble: 关于匿名统计 点「关闭统计」;或关闭 IDE 全局遥测。
- 除此之外,扩展不读取你的代码、提示词或文件内容,只读自己那份游戏存档。
战斗推进怎么来的
扩展只负责显示。"提问即攻击"的节拍由同系列的 CodeBuddy 插件(仓库 plugins/nibble)通过
UserPromptSubmit hook 驱动,两者读写同一份存档:
${CODEBUDDY_PLUGIN_DATA}/save.json
(默认 ~/.codebuddy/plugins/data/nibble/save.json)
因此展示是常驻、自动动画、零 token 的;未装插件时可用 onSave / manual 模式或命令推进。
素材与许可
- 代码:MIT(见
LICENSE)
- 像素素材:40 张怪物素材 + 80 张武器素材均为 AI 生成原创像素画(CC0);玩家小狗为按作者的爱犬「拾玖」绘制的 AI 像素画,素材与代码同为 MIT
- 设计灵感来自 Spinlings;仅参照其设计语言,未使用其任何素材或代码
支持作者
如果这只小狗陪你写过几行代码,欢迎请拾玖吃根肉干 🦴

打赏纯属自愿。所有玩法都是免费的。