A minimal implementation of Claude playing Pokemon Red using the PyBoy emulator. This starter version includes:
- Simple agent that uses Claude to play Pokemon Red
- Memory reading functionality to extract game state information
- Basic emulator control through Claude's function calling
-
Clone this repository
-
Install the required packages:
pip install -r requirements.txt
-
Set up your Anthropic API key as an environment variable:
export ANTHROPIC_API_KEY=your_api_key_here
-
Place your Pokemon Red ROM file in the root directory (you need to provide your own ROM)
Run the main script:
python main.py
Optional arguments:
--rom
: Path to the Pokemon ROM file (default:pokemon.gb
in the root directory)--steps
: Number of agent steps to run (default: 10)--display
: Run with display (not headless)--sound
: Enable sound (only applicable with display)
Example:
python main.py --rom pokemon.gb --steps 20 --display --sound
agent/simple_agent.py
: Main agent class that uses Claude to play Pokemonagent/emulator.py
: Wrapper around PyBoy with helper functionsagent/memory_reader.py
: Extracts game state information from emulator memory
- The agent captures a screenshot from the emulator
- It reads the game state information from memory
- It sends the screenshot and game state to Claude
- Claude responds with explanations and emulator commands
- The agent executes the commands and repeats the process