Skip to main content
By the end of this guide you will have MonoRelay running locally, connected to at least one LLM provider, and you will have sent a successful chat completion request through the relay. The whole process takes under five minutes.
1

Clone MonoRelay

Clone the repository from GitHub and change into the project directory.
If you prefer not to use Git, download the latest source archive from the Releases page and extract it.
2

Install dependencies

Install the Python packages listed in requirements.txt. Using a virtual environment is recommended.
Python 3.11 or later is required. Run python3 --version to check. Python 3.12 is recommended.
3

Configure config.yml

Copy the example configuration file and open it in your editor.
At minimum, set your access_key and enable at least one provider. Here is a minimal configuration using OpenRouter:
config.yml
Change access_key before exposing MonoRelay to any network. This key is the only credential protecting your relay endpoint.
4

Start the server

Run MonoRelay directly with Python. The server starts on port 8787 by default.
You should see output similar to:
To run in the background immediately, use ./start-bg.sh start instead. See the deployment guide for all production options.
5

Send your first API call

With the server running, send a chat completion request using curl. Replace my-secret-relay-key with the access_key you set in config.yml.
A successful response looks like this:

Admin dashboard

Once the server is running, open http://localhost:8787 in your browser and log in with your access_key. The dashboard shows request counts, error rates, token usage, provider health, and a live request log.
The Swagger API explorer is available at http://localhost:8787/docs. It lists every endpoint and lets you test requests directly in the browser.

Next steps

Now that MonoRelay is running locally, read the deployment guide to choose the right method for production — including Docker, systemd, and PM2.