s2client-proto is a protocol definition repository that enables external control of StarCraft II through a standardized API interface.
The project solves the problem of communicating with StarCraft II by providing Protobuf protocol definitions that allow developers to interact with the game engine. The API exposes full external control capabilities, enabling applications to send commands to and receive state information from the game client. This approach works by defining a common message format that both client applications and the StarCraft II engine understand, allowing any language with Protobuf support to build tools that control the game.
Developers building scripted bots, machine-learning agents, or replay analysis tools should consider this repository as the foundation for their work. The tool suits projects ranging from competitive AI development to tool-assisted human play. The project explicitly references a reference C++ implementation library designed for building scripted bots, and notes that DeepMind's PySC2 serves as a Python environment wrapper around these protocol definitions. The API is available in retail Windows and Mac clients, with self-contained headless Linux builds also provided. The repository includes access to ladder maps and replay packs for training and evaluation purposes, though these require agreement to a machine learning license.
The project maintains active engagement with its community through documented resources including protocol documentation, a reference implementation, and curated links to community-built tools and infrastructure. The repository provides comprehensive download access to multiple Linux client builds across different versions, indicating sustained support for the API across different game iterations. The project acknowledges and catalogs community contributions including alternative bot frameworks, unofficial competitive ladders, and community discussion spaces, demonstrating awareness of the ecosystem built around these protocol definitions.