
Standboy
Standboy 是一个 VS Code/Cursor 扩展,它在 AI 代理活动期间自动在侧边栏中展开 Game Boy (GB/GBC/GBA) 模拟器,然后自动隐藏并暂停——下次在帧中恢复——同时保持持久的 ROM 库、保存和封面艺术。
https://github.com/mfbz/standboy?ref=producthunt&utm_source=aipure

产品信息
更新于:2026年05月18日
什么是 Standboy
Standboy 是一款轻量级的 IDE 伴侣,它将 AI 的“等待时间”转化为一个受限的、可暂停的微休息:一个驻留在编辑器侧边栏中的 Game Boy 模拟器。当您的编码代理开始工作时,Standboy 可以自动打开;当代理完成时,它会收起并暂停,这样您就不会漂移到其他应用程序。它支持用户提供的 `.gb`、`.gbc` 和 `.gba` ROM(不捆绑游戏),为 UI 界面提供可重新绑定的键盘控件和调色板选项,并维护一个带有持久保存和缓存封面艺术的托管磁盘库。它通过 VS Code Marketplace 和 Open VSX 提供,并且强调隐私,没有遥测,只有可选的一次性封面获取。
Standboy 的主要功能
Standboy是一个VS Code/Cursor侧边栏Game Boy模拟器,当你的AI编码代理开始工作时它会自动弹出,当代理停止时它会自动收起,为你提供一种“微小分心”,让你留在IDE中而不是切换标签页。它支持用户提供的GB/GBC/GBA ROM,隐藏时能从帧中途恢复游戏,通过磁盘镜像保存维护持久的ROM库,通过No-Intro哈希和libretro缩略图自动识别标题和封面艺术,提供可重新绑定的键盘控制和调色板,并强调隐私,没有遥测,只有一次性的封面艺术网络获取。
代理活动时自动显示: 通过官方生命周期API(带有回退启发式)连接到Cursor的原生代理和Claude Code,然后在代理工作时经过短暂的防抖动后自动展开,并在空闲后自动隐藏——减少上下文切换,避免面板持续“闪烁”。
带webview保留的帧中途恢复: 当面板隐藏时,模拟器会暂停在原地,并在下次打开时从上次离开的地方精确恢复,因此短时间的代理运行不会中断游戏流程。
持久的ROM库+保存管理: 将ROM复制到按内容哈希索引的托管磁盘库中,在关键生命周期事件时将游戏内电池保存镜像到磁盘,并支持保存文件的导出/导入。
自动ROM识别和封面艺术: 通过SHA-1与捆绑的No-Intro数据库匹配ROM以显示规范标题,并从libretro缩略图获取/缓存盒装艺术(带有本地缓存和“无封面”标记)。
多平台ROM支持 (GB/GBC/GBA): 加载.gb、.gbc和.gba文件,并自动检测平台,在一个扩展中实现广泛的复古游戏。
注重隐私的可定制体验: 提供可重新绑定的键盘控制、多种调色板以及自定义调色板、可配置的库目录,并且没有遥测(只有扩展主机处理的一次性封面获取)。
Standboy 的使用场景
在AI编码等待期间保持专注: 使用Cursor或Claude Code的开发者可以在代理运行时玩一小会儿,当代理完成时无缝返回工作——减少切换到社交应用的诱惑。
结对编程和实时演示: 在研讨会或团队会议期间,Standboy可以在工具运行(构建、重构、代理生成)时填补“空白时间”,让观众的注意力留在编辑器内。
远程工作专注力管理: 在分布式团队中,它在不可避免的等待期间提供了一种有界限、可暂停的休息活动,有助于保持一致的工作流程,而不会漫无目的地浏览无关内容。
开发者生产力习惯: 团队或个人可以将其用作轻量级的奖励循环——例如,只在代理工作时进行快速游戏片段——将空闲时间转化为受控的、有时限的重置。
教育和学习环境: 使用AI助手的学生在学习编程时,可以将Standboy作为一种结构化的“等待活动”,它会自动结束,最大限度地减少学习期间的分心溢出。
优点
通过在IDE内部进行硬暂停边界(自动隐藏/暂停)来减少无限制的分心。
强大的ROM和保存持久性模型(托管库、磁盘镜像保存、导出/导入)。
注重隐私的设计(无遥测;有限的、缓存的封面艺术获取)。
流畅的用户体验细节(防抖动的自动显示/隐藏、帧中途恢复、可重新绑定的控制、调色板)。
缺点
需要手动清理:用户在卸载前应关闭检测以移除已安装的代理钩子。
自动显示依赖于支持的代理集成(与Cursor/Claude Code配合最佳);其他代理可能依赖于不太精确的启发式方法。
不包含游戏,需要用户提供合法获取的ROM文件。
帧中途模拟器状态不会在编辑器重启后持久存在(只有游戏内保存会持久存在)。
如何使用 Standboy
1) 安装 Standboy: 在 VS Code 中,打开扩展并搜索“Standboy”,或运行:`code --install-extension mfbzme.standboy`。在 Cursor/其他 VS Code 分支中,从扩展面板安装(通常通过 Open VSX)。您还可以使用以下命令安装预发布 `.vsix`:`code --install-extension standboy-x.y.z.vsix`。
2) 首次打开 Standboy: 首次激活时,Standboy 会自动打开其面板(无模态)。您会看到标题(STANDBOY + 活动点 + 菜单 `⋯`)、一个显示“无卡带”的屏幕以及一个带有“+ 添加 ROM”磁贴的空库网格。
3) (可选)将自动显示连接到您的 AI 代理: 在 Standboy 面板中,打开 `⋯` 菜单 → 找到“检测”部分 → 打开您想要的代理(Claude Code 或 Cursor)。连接是互斥的(打开一个会关闭另一个)。这将 Standboy 连接到代理生命周期,因此面板会在代理工作时自动展开,并在代理停止后隐藏。
4) 加载您的第一个 ROM: 单击“+ 添加 ROM”(或 `⋯` → “加载 ROM…”)并从磁盘中选择一个 `.gb`、`.gbc` 或 `.gba` 文件。Standboy 会将其复制到其托管库中,识别它(如果可能),并开始游戏。
5) 开始游戏(默认控件): 单击 Standboy 面板内部,使其捕获键盘输入。默认值:方向键 = D-pad,`Z` = A,`X` = B,`Enter` = Start,`Shift` = Select。
6) 重新绑定控件: 打开 `⋯` → “控件”。单击一个芯片(`A`、`B`、`Start`、`Sel`)并按下新键。按 `Esc` 取消。绑定会保留在库的 `config.json` 中。
7) 切换声音: 打开 `⋯` → “音频” → 切换声音开/关。如果仍然没有播放音频,请直接单击游戏屏幕一次(浏览器自动播放策略需要用户手势)。
8) 从库网格切换游戏: 单击库网格中的任何封面/磁贴以加载该 ROM。当前正在播放的 ROM 会突出显示。如果游戏正在运行,切换可能会提示确认;保存会刷新,因此取消不会造成破坏。
9) 了解自动显示时序(如果启用): 当连接到代理时,Standboy 使用 5 秒的显示延迟(不会弹出微小的转弯)和代理停止后 5 秒的隐藏延迟。在隐藏倒计时运行时会出现一个细长的进度条。
10) 管理保存(导出/导入): 打开 `⋯` → “导出保存”以将当前游戏的 `.sav` 写入您选择的位置。使用 `⋯` → “导入保存”将 `.sav` 加载到当前 ROM 中(游戏会随之重新加载)。
11) 打开或移动您的库文件夹: 打开 `⋯` → “打开库文件夹”以查看磁盘上的 ROM、保存、封面和索引。要将库存储在其他位置(例如,同步文件夹),请在设置中设置 `standboy.libraryDirectory`;新的加载/保存将使用新位置(现有文件不会自动移动)。
12) 自定义外观(调色板): 在设置中,将 `standboy.palette` 设置为以下之一:`kirokaze`、`dmg`、`pocket`、`bgb`、`mist`。或者将 `standboy.customPalette` 设置为包含 4 个十六进制颜色(从深到浅)的数组,以覆盖内置调色板。
13) 禁用自动显示(仅手动模式): 如果您不希望在代理工作期间更改焦点/面板,请将 `standboy.autoShow` 设置为 `false`(或在 UI 中关闭自动显示,如果可用)。Standboy 仍然可以作为手动模拟器正常工作。
14) 使用日志进行故障排除: 打开 `⋯` → “显示日志”以查看 Standboy 的输出通道。对于自动显示问题,请查找指示代理哨兵文件是否存在以及确认您的代理的检测是否已打开的行。
15) 卸载前:断开检测: 打开 `⋯` → “检测”并在卸载前关闭您的代理。这将删除 Standboy 添加的生命周期挂钩条目(VS Code 不提供可靠的卸载挂钩)。如果您已经卸载并且挂钩仍然存在,请从 `~/.claude/settings.json` 和/或 `~/.cursor/hooks/hooks.json` 中删除引用 `~/.standboy/marker.cjs` 的条目,并可选择删除 `~/.standboy/`。
Standboy 常见问题
Standboy是一个VS Code扩展,它在侧边面板中显示一个Game Boy风格的模拟器。当您的AI编码代理工作时,它会自动展开;当代理空闲时,它会自动隐藏(并暂停模拟器)。











