Poke-env: Python Interface for Pokemon Showdown Bots
poke-env is a Python library for building scripted agents, self-play
experiments, and reinforcement learning workflows on
Pokemon Showdown.
Installation
This project requires Python >= 3.10 and access to a Pokemon Showdown server. For training and local development, running your own server is strongly recommended.
pip install poke-env
You can use smogon's server to try out your agents against humans, but having a development server is strongly recommended. In particular, it is recommended to use the --no-security flag to run a local server with most rate limiting and throttling turned off. Please refer to the docs for detailed setup instructions.
git clone https://github.com/smogon/pokemon-showdown.git
cd pokemon-showdown
npm install
cp config/config-example.js config/config.js
node pokemon-showdown start --no-security
First local battle
Once your local server is running, the quickest way to verify your setup is to
run two built-in players against each other. RandomPlayer uses the default
localhost server configuration, so this script should work as-is:
import asyncio
from poke_env.player import RandomPlayer
async def main():
player_1 = RandomPlayer(max_concurrent_battles=1)
player_2 = RandomPlayer(max_concurrent_battles=1)
await player_1.battle_against(player_2, n_battles=1)
print(f"Finished battles: {player_1.n_finished_battles}")
print(f"Player 1 wins: {player_1.n_won_battles}")
if __name__ == "__main__":
asyncio.run(main())
To build your own bot, subclass Player and override choose_move. The
quickstart guide walks through that step by step.
Documentation and examples
Documentation, detailed examples, and starting code are available on Read the Docs.
Useful entry points:
Development version
You can also clone the latest master version with:
git clone https://github.com/hsahovic/poke-env.git
Dependencies and development dependencies can then be installed with:
cd poke-env
uv sync --dev
Run development commands through uv run, for example uv run pytest unit_tests/.
Acknowledgements
This project is a follow-up of a group project from an artificial 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.
Team data comes from Smogon forums' RMT section.
Data
Data files are adapted versions of the js data files from
Pokemon Showdown.
License
Citing poke-env
@misc{poke_env,
author = {Haris Sahovic},
title = {Poke-env: pokemon AI in python},
url = {https://github.com/hsahovic/poke-env}
}
Metadata
Release files for poke-env 0.16.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| poke_env-0.16.1.tar.gz | 1.3 MB | Without provenance | Details for poke_env-0.16.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| poke_env-0.16.1-py3-none-any.whl | Python 3 | none | any | Details for poke_env-0.16.1-py3-none-any.whl |
Total release size: 2.7 MB
Release files / poke_env-0.16.1.tar.gz
| Download URL | poke_env-0.16.1.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b2b8453d3670b39929606a08bd35538202d4568cc2017e9d7c4884869dcad5b8
|
|
BLAKE2b-256 checksum How to use checksums |
5b7e67a2db17fe509860d0478da687c36d744ef818288f69cd6365f961cdf0ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / poke_env-0.16.1-py3-none-any.whl
| Download URL | poke_env-0.16.1-py3-none-any.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e61c548fddabfcf73f4eaa5ccfa2c0d52b0582433805fba96385275dc52b41a4
|
|
BLAKE2b-256 checksum How to use checksums |
e30b841ed145f6060aa35de2a28f703a76087ff7b7a19ea2cd2de5f8d08cccea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Security for poke-env 0.16.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.