pokemon-player

Plays Pokemon games autonomously via headless PyBoy emulation with RAM state reading and vision-based navigation.

14|5|Updated Apr 9, 2026
One-click install
npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill pokemon-player-mlt-oss
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: pokemon-player
Source: https://github.com/MLT-OSS/hermes-agent-go/tree/main/skills/gaming/pokemon-player
Command: npx skills add https://github.com/MLT-OSS/hermes-agent-go --skill pokemon-player-mlt-oss

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pokemon-agent, pyboy.

What problem does it solve? Playing a Pokemon game autonomously requires coordinating emulation, game state reading, strategic decision-making, and visual verification — a complex loop that is hard to orchestrate manually from a terminal. ## Core Features & Use Cases - Headless Game Server: Starts a pokemon-agent server over a Game Boy ROM, exposing REST endpoints for state, screenshots, actions, and save/load management. - Structured Gameplay Loop: Follows an observe-orient-decide-act-verify cycle combining RAM state data with vision-based screenshot analysis for reliable navigation. - Battle & Progression Strategy: Includes Gen 1 type matchups, battle decision trees, save-state discipline, and memory conventions (PKM: prefixes) for tracking objectives and progress. - Use Case: A user says "play pokemon" and the agent boots Pokemon Red, streams a live dashboard via an SSH tunnel, and autonomously progresses through gyms while saving before risky encounters. ## Quick Start Ask the agent to start playing Pokemon Red using your ROM file and give you the live dashboard link to watch.

Frequently Asked Questions about pokemon-player

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make an AI play Pokemon autonomously?

Use the pokemon-agent package to run a headless PyBoy server with your ROM, then loop through observing game state via GET /state, taking screenshots for vision analysis, deciding actions, and posting button inputs to POST /action.

How do I set up the pokemon-agent game server?

Clone NousResearch/pokemon-agent, create a Python 3.10+ virtual environment with uv or venv, install the package with the pyboy extra, then run pokemon-agent serve with --rom pointing to your ROM and --port 9876.

Can I watch the AI play Pokemon in my browser?

Yes, set up an SSH reverse tunnel through localhost.run forwarding local port 9876, then open the generated .lhr.life URL with /dashboard/ appended. The tunnel URL changes each time it restarts.

Does the Pokemon player provide ROM files?

No, ROM files are never downloaded or provided. You must supply your own legally obtained .gb, .gbc, or .gba ROM file, which the server loads via the --rom flag.

Why does the AI get lost or stuck while navigating in Pokemon?

RAM state only reports position and HP, not surroundings like ledges, doors, or NPCs. Take screenshots every 2-4 movement steps and use vision analysis, and add wait actions after door or stair warps to avoid stale position reads.

When should I save the game during autonomous play?

Save every 15-20 turns, and always before gym battles, rival encounters, new towns, or any uncertain action. Use POST /save with a descriptive name like before_brock so you can reload via POST /load if something goes wrong.