All SkillsGet Started Free
Pokemon Player
Play Pokemon via headless emulator + RAM reads.
MCP get_skill({ skillId: "pokemon-player-17f9a5ce" })Use this skill with your agent
Create a free account and connect via MCP
# Pokemon Player Play Pokemon games via headless emulation using the `pokemon-agent` package. ## When to Use - User says "play pokemon", "start pokemon", "pokemon game" - User asks about Pokemon Red, Blue, Yellow, FireRed, etc. - User wants to watch an AI play Pokemon - User references a ROM file (.gb, .gbc, .gba) ## Startup Procedure ### 1. First-time setup (clone, venv, install) The repo is NousResearch/pokemon-agent on GitHub. Clone it, then set up a Python 3.10+ virtual environment. Use uv (preferred for speed) to create the venv and install the package in editable mode with the pyboy extra. If uv is not available, fall back to python3 -m venv + pip. On this machine it is already set up at /home/teknium/pokemon-agent with a venv ready — just cd there and source .venv/bin/activate. You also need a ROM file. Ask the user for theirs. On this machine one exists at roms/pokemon_red.gb inside that directory. NEVER download or provide ROM files — always ask the user. ### 2. Start the game server From inside the pokemon-agent directory with the venv activated, run pokemon-agent serve with --rom pointing to the ROM and --port 9876. Run it in the background with &. To resume from a saved game, add --load-state with the save name. Wait 4 seconds for startup, then verify with GET /health. ### 3. Set up live dashboard for user to watch Use an SSH reverse tunnel via localhost.run so the user can view the dashboard in their browser. Connect with ssh, forwarding local port 9876 to remote port 80 on [email protected]. Redirect output to a log file, wait 10 seconds, then grep the log for the .lhr.life URL. Give the user the URL with /dashboard/ appended. The tunnel URL changes each time — give the user the new one if restarted. ## Save and Load ### When to save - Every 15-20 turns of gameplay - ALWAYS before gym battles, rival encounters, or risky fights - Before entering a new town or dungeon - Before any action you are unsure about ### How to save POST /save with a descriptive name. Good examples:
#broad-capability#development#creative#mlops#research#gaming#setup#emulationpythonpipsshpokemon-agent