Skip to content
The Arimaa Engine Interface provides a standard method to communicate and control an Arimaa bot.
Branch: master
Clone or download
Pull request Compare This branch is 57 commits behind Janzert:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


AEI Readme

This package provides a specification for the Arimaa Engine Interface (AEI). It also includes some tools for using engines that implement AEI. Including an interface to the gameroom. A full description of AEI can be found in the file aei-protocol.txt.

The link used for communication is not specified by the AEI protocol. This implementation uses either stdio or a socket for the communication. Stdio is the preferred method for general operation, but in certain programming languages or environments it may be easier to use socket communication.

When using a socket the controller will listen on an ip and port given to the engine by adding "--server <dotted quad ip>" and "--port <port number>" options to its command line. The engine should connect to the specified address and expect the AEI protocol identifier from the controller.

The scripts included for working with an AEI engine are:

A simple script that runs an engine and has it search a given position or move sequence.
AEI controller that connects to the gameroom and plays a game.
Keeps a bot making moves as needed in any postal games it is a participant in.
Plays engines against each other in a round robin tournament.
Very basic AEI engine, just plays random step moves.

Basic examples of using the scripts can be found in the file usage.rst.

The pyrimaa package also includes modules implementing the controller side of the AEI protocol (, the Arimaa position representation (as bitboards in and x88 in, and a few utility functions for handling Arimaa timecontrols (

You can’t perform that action at this time.