PyBoy
github.com
What it is
PyBoy is a Game Boy and Game Boy Color emulator implemented in Python and Cython. It runs from a command line or inside Python programs, supporting automation, testing, and AI experiments. Install it with `pip install pyboy`; documentation links to setup instructions for macOS, Linux, and Windows. The Python interface sends button input, reads memory, and captures screenshots. Its documented hardware-facing API includes the CPU and address space, graphics, audio, cartridge hardware, and input, while leaving internal emulation components and platform-specific window implementations outside the reference. Rendering may be skipped or disabled, and the documentation says parallel instances can improve throughput. PyBoy links to Gym integration instructions and examples for Kirby, Tetris, and Super Mario Land. It supports save states, link cable emulation, and a real-time clock. Supported platforms include Windows 64-bit, macOS, Linux, and Raspberry Pi OS. The project is free under the GNU Lesser General Public License version 3.
Spec sheet
- Purpose
- PyBoy is a Game Boy emulator written in Python and Cython.Read 4 Oct 2026 · docs.pyboy.dk
- Support
- The installation and development guide directs users to the PyBoy Discord for help.Read 4 Oct 2026 · docs.pyboy.dk
- License
- The repository includes the GNU Lesser General Public License version 3.Read 4 Oct 2026 · github.com
- API scope
- The API reference covers the supported Python-facing interface and intentionally excludes internal emulation components and platform-specific window implementations.Read 4 Oct 2026 · docs.pyboy.dk
- Hardware APIs
- The documented interface covers CPU and address space, graphics, audio, cartridge hardware, and input.Read 4 Oct 2026 · docs.pyboy.dk
- Installation
- The documentation gives `pip install pyboy` as the installation command.Read 4 Oct 2026 · docs.pyboy.dk
- Integration
- The GitHub README links to instructions for using PyBoy with Gym and provides examples for Kirby, Tetris, and Super Mario Land.Read 4 Oct 2026 · github.com
- Notable limit
- The guide says PyBoy is under active development and advises keeping backup copies of save files, especially when upgrading between releases.Read 4 Oct 2026 · docs.pyboy.dk
- Performance
- Rendering can be skipped or disabled, and the documentation says running multiple instances in parallel can improve throughput.Read 4 Oct 2026 · docs.pyboy.dk
- Platform support
- The installation page links to platform-specific instructions for macOS, Linux, and Windows.Read 4 Oct 2026 · docs.pyboy.dk
- Python interface
- The Python interface can send button input, inspect memory, and capture screenshots.Read 4 Oct 2026 · docs.pyboy.dk
- Use cases
- It can be used from the command line or embedded in Python programs for automation, testing, and AI experiments.Read 4 Oct 2026 · docs.pyboy.dk
Plans and prices
Strong points and limits
Strong points
- Free plan with LGPL-3.0 license
- Python interface sends input and captures screenshots
- Save states, link cable, and real-time clock
- Rendering can be disabled for parallel workloads
- Supports Windows, macOS, Linux, and Raspberry Pi OS
Limits
- Under active development; back up save files
- API excludes internal emulation components
- No free trial is listed
Who it suits
PyBoy suits Python developers building emulator-driven automation, tests, or AI experiments. It also fits users who need Game Boy or Game Boy Color emulation on its supported platforms.
Verdict
PyBoy combines command-line emulation with a Python API for programmable control and inspection. Its documented integrations and hardware coverage are broad, while active development makes save-file backups important.
Where Specifiction places it
- Game Boy Emulators#13 of 237.5