UStackUStack
Standboy icon

Standboy

Standboy 是 VS Code 擴充功能,內嵌 Game Boy 模擬器面板,並依 AI 程式代理活動自動展開/暫停,邊寫程式邊即刻遊玩。

Standboy

Standboy 是什麼?

Standboy 是一款 VS Code 擴充功能,內嵌 Game Boy 系列模擬器面板,並將模擬器的顯示與遊玩狀態與 AI 程式代理的活動連結。當代理開始產生內容時,Standboy 會自動展開模擬器側邊欄並繼續播放;當代理完成或閒置時,Standboy 會隱藏面板並暫停模擬器。

此設計旨在減少等待代理的「空檔時間」,將娛樂留在 IDE 內,並在代理未主動工作時強制暫停模擬器。支援載入自有 ROM 檔案,並在 VS Code 重啟後保留上次遊玩的遊戲與存檔。

主要功能

  • 依代理活動自動顯示/隱藏:代理工作數秒後,擴充功能會展開模擬器;代理閒置一段時間後,則自動收起面板,避免短暫切換時產生閃爍。
  • 支援 Cursor 與 Claude Code 生命週期:Standboy 透過 Cursor 與 Claude Code 的官方生命週期 API 整合,只需在面板選單中切換即可啟用。
  • 中斷點續玩:重新開啟模擬器時,會從上次暫停的畫面繼續,而非重新開始遊戲。
  • ROM 庫與持久化存檔:載入的 ROM 會複製到受管理的庫中。面板隱藏、頁面卸載或匯出前,遊戲存檔狀態會同步至磁碟;執行階段狀態儲存在 IndexedDB,確保 VS Code 重啟後仍可保留。
  • ROM 比對與庫中繼資料:透過比對 ROM 的 SHA-1 與內建 No-Intro 資料庫,取得一致的正規標題與封面圖(自製或修改版則以字母圖示顯示)。
  • 裝置與輸入支援:支援 .gb.gbc.gba ROM 檔案,依副檔名自動偵測平台。可在面板選單中重新綁定鍵盤控制,將方向鍵對應 D-pad,A/B/Start/Select 則可自訂按鍵。
  • 離線模擬器與內建資料:模擬器(EmulatorJS)與 No-Intro 資料庫皆已內建,可離線執行。

如何使用 Standboy

  1. 安裝 VS Code 擴充功能:在 VS Code 中開啟擴充功能面板,搜尋 Standboy,或執行 code --install-extension mfbzme.standboy
  2. 連接代理偵測(首次執行):首次啟用時,Standboy 會自動開啟面板並顯示卡片,連接偵測到的代理類型(若存在 ~/.claude/settings.json 則為 Claude Code,若在 Cursor 內則為 Cursor)。點擊 Connect 啟用生命週期掛鉤,或稍後從 選單下的 Detection 切換。
  3. 新增 ROM:點擊 + Add ROM(或從選單選擇 Load ROM…),選擇本機 .gb.gbc.gba 檔案。Standboy 會將檔案複製到受管理的庫中,比對內建 No-Intro 資料庫後啟動模擬器。
  4. 在代理產生內容時使用模擬器:面板開啟時可接受鍵盤輸入。代理閒置時,Standboy 會依閒置時間規則暫停並隱藏面板。

使用情境

  • 代理工作時保持專注:當 Cursor/Claude Code 開始產生程式碼時,Standboy 會展開模擬器,讓您在 IDE 內遊玩;產生結束後,則暫停並收起面板。
  • 避免長時間代理執行時切換分頁:不必切換至其他應用程式(聊天、論壇、訊息),模擬器提供編輯器內的休息,並在代理活動/結束時設定硬性暫停邊界。
  • 重啟後回到同一遊戲:載入 ROM 一次後,Standboy 會在下次 VS Code 啟動時自動恢復上次遊玩的 ROM 與存檔。
  • 建立具一致標題/封面的 ROM 庫:即使磁碟上的 ROM 檔名不同,仍可透過 SHA-1 雜湊比對內建 No-Intro 資料庫,顯示正規標題與封面圖。
  • 測試不同輸入配置:使用者可從面板選單重新綁定控制鍵,以符合鍵盤或個人偏好。

常見問題

  • Standboy 是否內建遊戲或提供 ROM 來源? 否。Standboy 僅載入使用者自行提供的 ROM,不附帶任何遊戲,也不提供 ROM 來源連結。

  • 可以離線使用嗎? 模擬器與 No-Intro 資料庫已內建,可離線執行。唯一外部網路連線為一次性封面圖片抓取,來自 libretro-thumbnails,由擴充功能主機執行並快取於本機。

  • Standboy 如何決定顯示或隱藏模擬器? 當偵測到代理活動持續數秒後,Standboy 會自動顯示;當代理閒置一段時間後則自動隱藏。此設計可避免因代理短暫切換而頻繁閃爍。

  • 支援哪些代理整合? 擴充功能透過官方生命週期 API 與 CursorClaude Code 整合,並可在面板選單中切換。其他代理若無特定支援,則可改用編輯爆發啟發式作為備援。

  • 模擬器會從上次離開處繼續嗎? 會。Standboy 描述為在面板重新開啟時從中間畫面繼續,且 webview 在隱藏時仍保留,因此可就地暫停並從相同狀態繼續。

替代方案

  • 一般用途 Game Boy 模擬器(獨立桌面/行動版):這些模擬器專注於遊戲體驗,但無法與 VS Code 代理生命週期整合以自動暫停或顯示。
  • 其他 VS Code 媒體/通知側邊面板:此類擴充功能可顯示活動指標或簡單儀表板以幫助管理專注,但通常無法提供可中斷畫面繼續並保留存檔的模擬器。
  • IDE 任務排程器或專注計時器(Pomodoro 風格):這些工具能以結構化方式減少「等待時間」,但無法提供內建於 IDE 的模擬器、ROM 辨識及存檔保留功能。
  • 未整合代理鉤子的 webview 模擬器:提供類似在編輯器內遊玩的工作流程,但缺少依 AI 代理活動自動顯示/隱藏及中斷畫面繼續的功能。