
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,然後在代理工作時經過短暫的去抖動後自動展開,並在閒置後自動隱藏——減少上下文切換,而不會出現持續的面板「閃爍」。
帶有網頁視圖保留的幀中恢復: 當面板隱藏時,模擬器會暫停在原位,並在下次打開時從上次離開的地方精確恢復,因此短暫的代理運行不會中斷遊戲流程。
持久性 ROM 庫 + 儲存管理: 將 ROM 複製到按內容雜湊索引的受管理磁碟庫中,在關鍵生命週期事件時將遊戲內電池儲存鏡像到磁碟,並支援儲存檔案的匯出/匯入。
自動 ROM 識別和封面藝術: 透過 SHA-1 將 ROM 與捆綁的 No-Intro 資料庫進行匹配,以顯示規範標題,並從 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 面板內部,使其捕獲鍵盤輸入。預設:方向鍵 = 方向鍵,`Z` = A,`X` = B,`Enter` = 開始,`Shift` = 選擇。
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 編碼代理程式工作時,它會自動展開;當代理程式閒置時,它會自動隱藏(並暫停模擬器)。











