Poke-env: A python interface for training Reinforcement Learning pokemon bots

This project aims at providing a Python environment for interacting in pokemon showdown battles, with reinforcement learning in mind. Welcome to its documentation!

Poke-env offers a simple and clear API to manipulate Pokemons, Battles, Moves and many other pokemon showdown battle-related objects in Python. It also exposes an open ai gym interface to train reinforcement learning agents.


This module currently supports most gen 8 and 7 single battle formats. Support for doubles is planned for the future. If you want a specific format to be supported, please open an issue.


Support for gen 8 formats as well as some gen 7 formats is recent, and may contain bugs. If you encounter a problem, please report it by opening an issue. In particular, formats where the same pokemon can be used multiple times in the same team are known to be problematic.



This project is a follow-up of a group project from an artifical intelligence class at Ecole Polytechnique.

You can find the original repository here. It is partially inspired by the showdown-battle-bot project. Of course, none of these would have been possible without Pokemon Showdown.


Data files are adapted version of the js data files of Pokemon Showdown.

Team data comes from Smogon forums’ RMT section.


This project and its documentation are released under the MIT License.