Show HN: Play SNES games while Claude is working A developer publishing under the name LaurentiuGabriel released retro-break, a Claude Code plugin that opens a random SNES or GBA game from the user's ROM folder once a Claude task has run for 60 seconds by default, then sends a Windows notification when Claude finishes. The plugin downloads Snes9x 1.63 or mGBA 0.10.5 on first use into %LOCALAPPDATA%\retro-break\emulators, reads only ROM file names up to 4 subfolders deep, and never reads, copies or uploads ROM contents. It installs via /plugin install retro-break --marketplace LaurentiuGabriel/retro-break, and quick answers or interrupted tasks trigger neither a game nor a notification. A Claude Code https://claude.com/claude-code plugin that gives you something to do while Claude works. When Claude has been working on a task for a minute, retro-break opens a random SNES or GBA game from your ROM folder. When Claude finishes, you get a Windows notification , so you can play until you reach a save point and then go back to work. You only bring the ROMs. The emulators download themselves the first time they're needed: | System | Emulator | File types | |---|---|---| | SNES | Snes9x https://github.com/snes9xgit/snes9x 1.63 | .sfc , .smc | | GBA and GB/GBC | mGBA https://mgba.io 0.10.5 | .gba , .gb , .gbc | At the prompt of a Claude Code terminal session: /plugin install retro-break --marketplace LaurentiuGabriel/retro-break Answer y to add the marketplace, then pick a scope user scope enables it in every session . From a shell: claude plugin install retro-break --marketplace LaurentiuGabriel/retro-break In the desktop app, click + next to the prompt box, then Plugins , Add marketplace with LaurentiuGabriel/retro-break , then Add plugin . The install asks for two settings. You can change them later in /config : - ROM folder : where your ROMs are, e.g. D:\Games\ROMs . Subfolders are searched, so a folder per game works. To use several folders, separate them with ; . - Seconds before a game opens : 60 by default. Tasks shorter than this never open a game. - You send a prompt: a countdown starts. - Claude is still working when the countdown ends: a random ROM opens in the right emulator, in a window 60% of the screen's height, centered. If a game is already open, it is left alone and no new one starts. - Claude finishes: if the task ran past the countdown, a Windows notification says Claude is done. The game keeps running, so close it when you're ready. - Quick answers and tasks you interrupt don't open a game or send a notification. The emulators go into %LOCALAPPDATA%\retro-break\emulators . Save files and emulator settings are kept there too, so they survive plugin updates. To start fresh, delete that folder. Everything the plugin does outside Claude Code, listed in full: | What | When | Details | |---|---|---| | Lists your ROM folder | First game of a session | Reads file names only, up to 4 subfolders deep. Never reads, copies or uploads ROM contents. | | tasklist.exe | Before opening a game | Checks whether snes9x-x64.exe or mGBA.exe is already running. | | scripts/install-emulator.ps1 https://github.com/LaurentiuGabriel/retro-break/blob/main/scripts/install-emulator.ps1 | Before opening a game | If the emulator for that system isn't there yet, downloads one pinned file over HTTPS from its official GitHub release Snes9x 1.63 https://github.com/snes9xgit/snes9x/releases/download/1.63/snes9x-1.63-win32-x64.zip , mGBA 0.10.5 https://github.com/mgba-emu/mgba/releases/download/0.10.5/mGBA-0.10.5-win64.7z , unpacks it with Windows' built-in tar.exe into %LOCALAPPDATA%\retro-break\emulators , and prints the emulator's path. For mGBA it also creates an empty portable.ini there, so mGBA keeps its settings and saves in that folder. | | scripts/launch-game.ps1 https://github.com/LaurentiuGabriel/retro-break/blob/main/scripts/launch-game.ps1 | When the countdown ends | Starts the emulator with the chosen ROM, then resizes and centers its window through user32.dll . | | scripts/notify.ps1 https://github.com/LaurentiuGabriel/retro-break/blob/main/scripts/notify.ps1 | When a long task finishes | Shows a Windows toast through the Windows notification API. If that fails, Claude Code's own notification $.ui.notify is used instead. | Each script runs as powershell.exe -NoProfile -NonInteractive -ExecutionPolicy Bypass -File