Command Line Interface (CLI) executable
The main Cogment module is a multi-platform standalone executable usable through a Command Line Interface, it is referred as the Cogment CLI.
The Cogment CLI includes the following services:
- The Orchestrator, the heart of Cogment which executes the Trials by orchestrating the different user implemented services.
- The Directory is the "directory" of services, where services register and can be found by clients and other services.
- The Trial Datastore able to store and make available the data generated by the Trials.
- The Model Registry which let's user store AI models and makes them available to actor implementations during training and in production.
The Cogment CLI is available for the following OSes:
- Linux with
amd64architecture (also known as
x86_64), tested on Ubuntu 18.04 and 20.04, should be compatible with most recent distributions,
- macOS with
arm64(Apple Silicon) architectures, tested on macOS 12, should be compatible with any macOS version >= 10.15,
- Windows with
amd64architecture, should be compatible with any Windows version >= Windows 10 version 1809.
Installation script (compatible with linux and macOS)
This installation method is compatible with virtually any Linux distribution, macOS and WSL2 on Windows. It only requires
First, download the install script and make sure you can run it using
curl --silent -L https://raw.githubusercontent.com/cogment/cogment/main/install.sh --output install-cogment.sh
chmod +x install-cogment.sh
You can then download and install the latest version to
Other installation methods are available, for example:
- Install version 2.2.0
sudo ./install-cogment.sh --version 2.2.0
- Install prereleased version 2.3.1-beta3, useful because prereleases are not considered by default
sudo ./install-cogment.sh --version 2.2.0
- Download the cogment exec in the current folder, make sure it is executable but skip the installation
- Specify manually the arch and os
./install-cogment.sh --arch amd64 --os Windows
All install options can be listed using
Uninstall is as simple as running:
sudo rm $(which cogment)
Yes, it is possible to install Cogment as a one-line by piping the install script to
bash ... at the risk of angering your system admin.
curl --silent -L https://raw.githubusercontent.com/cogment/cogment/main/install.sh | sudo ./install-cogment.sh
If you are a Windows user (and also if you prefer to do a manual install), you can go through those instructions.
- Download the desired version from here for your platform.
- Copy it as
cogmentin a location that already belongs to your
/usr/local/bin) or that you'll add to your
PATH, and make sure it is executable (e.g. using
chmod +x /usr/local/bin/cogment).
A Cogment docker image is available on Docker Hub. It can be retrieved with the following:
docker pull cogment/cogment
The docker version of Cogment is very handy for server deployment, however, because of the nature of docker, users need to take care of port forwarding and volume mounting if needed.
Building from source
Building from sources is perfectly possible. Please refer to the build instructions for more information.
Test your installation
Depending on your platform and how you installed Cogment, it might be accessible as
docker run cogment/cogment. We will use
cogment for the rest of this page and throughout the documentation.
With a working installation you can run the following in a terminal:
You can then list all the commands by typing:
or for help on each individual command:
cogment help <command>
Launching a Cogment app
These instructions are only compatible with unix-like environments such as Linux, macOS and WSL2 on Windows.
In order to test that your installation is fully working, run an existing Cogment app, for example one of the steps of the tutorial.
Download or clone the sources for the official Rock-Paper-Scissors (RPS) tutorial from https://github.com/cogment/cogment-tutorial-rps.
To run this example you will need to have the following installed on top of Cogment:
Once it is done, run the following in the directory you retrieved:
The first call to
./run.sh command will copy the cogment.yaml, and every referenced proto file, to each module directory, create virtualenvs, and install the python dependencies.
The second will start Cogment and the different services for this app. In another terminal you can connect to it and play a few games of RPS against a simple AI agent.
Congratulations, you have a working installation of Cogment! We recommend you head to the Cogment tutorial to learn how to implement this RPS app from scratch.
pipe creation failed (24): Too many open files error on macOS
On macOS, it is possible that Cogment tries to open too many file handles. In this case, you'll get an error similar to
pipe creation failed (24): Too many open files.
You can access the current limit and update it using
ulimit -n. The default version should be something like 256, in most cases we found that Cogment requires 2048. You can set the limit with the following command:
$ ulimit -n 2048
This command changes the limit in the current shell session. This stackexchange question discusses different ways to make the change persist.
For debugging purposes, you can inspect the open file handles using
lsof -c cogment | wc -l will count the number of open file handles by Cogment processes.