
Standboy
Standboyは、AIエージェントの活動中にサイドバーにゲームボーイ(GB/GBC/GBA)エミュレーターを自動展開し、その後自動的に非表示にして一時停止し、次回はフレーム途中から再開するVS Code/Cursor拡張機能です。永続的なROMライブラリ、セーブデータ、カバーアートを保持します。
https://github.com/mfbz/standboy?ref=producthunt&utm_source=aipure

製品情報
更新日:2026年05月18日
Standboyとは
Standboyは、AIの「待機時間」を、エディターのサイドバーに常駐するゲームボーイエミュレーターという、区切られた一時停止可能なマイクロブレイクに変える軽量なIDEコンパニオンです。コーディングエージェントが作業を開始すると、Standboyは自動的に開くことができます。エージェントが終了すると、他のアプリに流されないように、隠れて一時停止します。ユーザーが提供する`.gb`、`.gbc`、および`.gba` ROM(ゲームはバンドルされていません)をサポートし、UIクローム用の再割り当て可能なキーボードコントロールとパレットオプションを提供し、永続的なセーブデータとキャッシュされたボックスアートを含む管理されたディスク上のライブラリを維持します。VS Code MarketplaceおよびOpen VSX経由で利用でき、テレメトリーなし、オプションの1回限りのカバー取得のみでプライバシーを重視しています。
Standboyの主な機能
Standboyは、AIコーディングエージェントが作業を開始すると自動的にポップアップ表示され、停止すると折りたたまれるVS Code/Cursorサイドバーのゲームボーイエミュレータです。これにより、タブ切り替えではなくIDE内に留まる「マイクロディストラクション」を提供します。ユーザーが提供するGB/GBC/GBA ROMをサポートし、非表示時にゲームプレイをフレーム途中から再開し、ディスクミラーリングされたセーブデータを持つ永続的なROMライブラリを維持します。No-Introハッシュとlibretroサムネイルを介してタイトルとカバーアートを自動識別し、キーボードコントロールとパレットのリバインドが可能で、テレメトリーなし、カバーアートの最小限の1回限りのネットワーク取得でプライバシーを重視しています。
エージェントのアクティビティに応じた自動表示: CursorのネイティブエージェントとClaude Codeに公式のライフサイクルAPI(フォールバックヒューリスティックあり)を介してフックし、エージェントが作業している間は短いデバウンス後に自動的に展開され、アイドル状態になると自動的に非表示になります。これにより、パネルの「ストロボ」を繰り返すことなくコンテキスト切り替えを減らします。
ウェブビュー保持によるフレーム途中からの再開: パネルが非表示になると、エミュレータはその場で一時停止し、次に開いたときに中断した場所から正確に再開するため、短いエージェントの実行がゲームプレイの流れを中断することはありません。
永続的なROMライブラリとセーブ管理: ROMをコンテンツハッシュでインデックス付けされた管理されたディスク上のライブラリにコピーし、主要なライフサイクルイベントでゲーム内のバッテリーセーブをディスクにミラーリングし、セーブファイルのエクスポート/インポートをサポートします。
ROMの自動識別とカバーアート: バンドルされたNo-Introデータベースに対してSHA-1でROMを照合し、正規のタイトルを表示します。また、libretroサムネイルからボックスアートを取得/キャッシュします(ローカルキャッシュと「カバーなし」マーカー付き)。
マルチプラットフォームROMサポート (GB/GBC/GBA): .gb、.gbc、.gbaファイルをプラットフォームの自動検出でロードし、1つの拡張機能で幅広いレトロタイトルを可能にします。
プライバシーを重視したカスタマイズ可能な体験: リバインド可能なキーボードコントロール、複数のパレットとカスタムパレット、設定可能なライブラリディレクトリを提供し、テレメトリーは一切ありません(カバー取得は拡張機能ホストによって1回限り処理されます)。
Standboyのユースケース
AIコーディングの待機中に集中力を維持する: CursorまたはClaude Codeを使用する開発者は、エージェントの実行中に短い時間ゲームをプレイし、エージェントが完了したらシームレスに作業に戻ることができます。これにより、ソーシャルアプリに切り替える誘惑を減らします。
ペアプログラミングとライブデモ: ワークショップやチームセッション中、ツール(ビルド、リファクタリング、エージェント生成)の実行中にStandboyが「無駄な時間」を埋めることで、聴衆の注意をエディター内に引き留めます。
リモートワークの集中力管理: 分散型チームでは、避けられない待機期間中に、制限された一時停止可能な休憩アクティビティを提供し、無関係なブラウジングに流れることなく一貫したワークフローを維持するのに役立ちます。
開発者の生産性向上ルーティン: チームや個人は、エージェントが作業している間だけ短いゲームセグメントをプレイするなど、軽量な報酬ループとして使用でき、アイドル時間を制御された時間制限のあるリセットに変えることができます。
教育および学習環境: AIアシスタントを使用してプログラミングを学習する学生は、Standboyを自動的に終了する構造化された「待機アクティビティ」として使用でき、学習セッション中の注意散漫の波及を最小限に抑えることができます。
メリット
ハードな一時停止境界(自動非表示/一時停止)により、IDE内での休憩を維持することで、無制限の注意散漫を軽減します。
ROMとセーブデータに対する強力な永続性モデル(管理されたライブラリ、ディスクミラーリングされたセーブデータ、エクスポート/インポート)。
プライバシーを重視した設計(テレメトリーなし、限定的でキャッシュされたカバーアートの取得)。
スムーズなUXの詳細(デバウンスされた自動表示/非表示、フレーム途中からの再開、リバインド可能なコントロール、パレット)。
デメリット
手動でのクリーンアップが必要: アンインストールする前に、インストールされているエージェントフックを削除するために、ユーザーは検出をオフにする必要があります。
自動表示はサポートされているエージェント統合(Cursor/Claude Codeが最適)に依存します。他のエージェントは、より精度が低いヒューリスティックに依存する場合があります。
ゲームは含まれておらず、ユーザーは合法的に取得したROMファイルを提供する必要があります。
エディターの再起動後もフレーム途中でのエミュレータの状態は保持されません(ゲーム内のセーブデータのみが保持されます)。
Standboyの使い方
1) Standboyをインストールする: VS Codeで、拡張機能を開き「Standboy」を検索するか、`code --install-extension mfbzme.standboy`を実行します。Cursor/その他のVS Codeフォークでは、拡張機能パネルからインストールします(多くの場合、Open VSX経由)。`code --install-extension standboy-x.y.z.vsix`でプレリリース版の`.vsix`をインストールすることもできます。
2) Standboyを初めて開く: 初回アクティベーション時、Standboyはパネルを自動的に開きます(モーダルなし)。ヘッダー(STANDBOY + アクティビティドット + メニュー`⋯`)、画面に「no cartridge」と表示され、「+ Add ROM」タイルがある空のライブラリグリッドが表示されます。
3) (オプション) 自動表示をAIエージェントに接続する: Standboyパネルで、`⋯`メニューを開き、「Detection」セクションを見つけ、必要なエージェント(Claude CodeまたはCursor)をオンに切り替えます。接続は相互排他的です(一方をオンにするともう一方がオフになります)。これにより、Standboyがエージェントのライフサイクルに接続され、エージェントが作業中はパネルが自動展開され、停止後は非表示になります。
4) 最初のROMをロードする: 「+ Add ROM」をクリック(または`⋯` → 「Load ROM…」)し、ディスクから`.gb`、`.gbc`、または`.gba`ファイルを選択します。Standboyはそれを管理ライブラリにコピーし、識別し(可能な場合)、ゲームを開始します。
5) プレイを開始する(デフォルトコントロール): Standboyパネル内をクリックして、キーボード入力をキャプチャします。デフォルト:矢印キー = D-pad、`Z` = A、`X` = B、`Enter` = Start、`Shift` = Select。
6) コントロールを再割り当てする: `⋯` → 「Controls」を開きます。チップ(`A`、`B`、`Start`、`Sel`)をクリックし、新しいキーを押します。キャンセルするには`Esc`を押します。バインディングはライブラリの`config.json`に永続化されます。
7) サウンドを切り替える: `⋯` → 「Audio」→ サウンドのオン/オフを切り替えます。それでもオーディオが再生されない場合は、ゲーム画面を一度クリックします(ブラウザの自動再生ポリシーにはユーザーのジェスチャーが必要です)。
8) ライブラリグリッドからゲームを切り替える: ライブラリグリッド内の任意のカバー/タイルをクリックして、そのROMをロードします。現在プレイ中のROMがハイライト表示されます。ゲームが実行中の場合、切り替え時に確認を求められることがあります。セーブデータはフラッシュされるため、キャンセルしても破壊的ではありません。
9) 自動表示のタイミングを理解する(有効な場合): エージェントに接続されている場合、Standboyは5秒の表示遅延(短いターンではポップアップしない)と、エージェント停止後の5秒の非表示遅延を使用します。非表示のカウントダウンが実行されている間、細いプログレスバーが表示されます。
10) セーブデータを管理する(エクスポート/インポート): `⋯` → 「Export save」を開き、現在のゲームの`.sav`を選択した場所に書き込みます。`⋯` → 「Import save」を使用して、`.sav`を現在のROMにロードします(ゲームはそれとともにリロードされます)。
11) ライブラリフォルダを開くか移動する: `⋯` → 「Open library folder」を開き、ディスク上のROM、セーブデータ、カバー、インデックスを表示します。ライブラリを別の場所(例:同期フォルダ)に保存するには、設定で`standboy.libraryDirectory`を設定します。新しいロード/セーブは新しい場所を使用します(既存のファイルは自動的に移動されません)。
12) 外観をカスタマイズする(パレット): 設定で、`standboy.palette`を`kirokaze`、`dmg`、`pocket`、`bgb`、`mist`のいずれかに設定します。または、`standboy.customPalette`を4つの16進カラー(暗い→明るい)の配列に設定して、組み込みパレットを上書きします。
13) 自動表示を無効にする(手動のみモード): エージェントの作業中にフォーカス/パネルの変更を望まない場合は、`standboy.autoShow`を`false`に設定します(または、利用可能な場合はUIで自動表示をオフに切り替えます)。Standboyは手動エミュレーターとして引き続き完全に機能します。
14) ログを使用してトラブルシューティングする: `⋯` → 「Show logs」を開き、Standboyの出力チャネルを表示します。自動表示の問題については、エージェントのセンチネルファイルが存在するかどうかを示す行を探し、エージェントの検出がオンに切り替わっていることを確認します。
15) アンインストールする前に:検出を解除する: アンインストールする前に、`⋯` → 「Detection」を開き、エージェントをオフに切り替えます。これにより、Standboyが追加したライフサイクルフックエントリが削除されます(VS Codeは信頼性の高いアンインストールフックを提供していません)。すでにアンインストールしていてフックが残っている場合は、`~/.claude/settings.json`および/または`~/.cursor/hooks/hooks.json`から`~/.standboy/marker.cjs`を参照するエントリを削除し、オプションで`~/.standboy/`を削除します。
Standboyのよくある質問
Standboyは、サイドバーパネルにゲームボーイ風エミュレーターを表示するVS Code拡張機能です。AIコーディングエージェントが動作しているときは自動的に展開し、エージェントがアイドル状態のときは自動的に非表示になります(エミュレーターを一時停止します)。











