Run Locally

Docker-compose (Option 1)

Run Keep full stack (Console & API)

docker-compose up


docker-compose -f up --build

If you want to run Keep in development mode (code compiles on changes)

OpenAPI Integration

Please note that some features used by Keep requires OpenAI API key to work. Export OPENAI_API_KEY=sk-YOUR_API_KEY before running docker-compose to make them available.

For example:

OPENAI_API_KEY=sk-YOUR_API_KEY docker-compose up

Clone and install (Option 2)

Try our first mock alert and get it up and running in

First, clone Keep repository:

git clone && cd keep

Install Keep CLI

pip install .


poetry install

From now on, Keep should be installed locally and accessible from your CLI, test it by executing:

keep version

Get a Slack Incoming Webhook using this tutorial and use use Keep to configure it

keep config provider --provider-type slack --provider-id slack-demo

Paste the Slack Incoming Webhook URL (e.g.…) and you’re good to go 👌

Let’s now execute our example “Paper DB has insufficient disk space” alert

keep run --alerts-file examples/alerts/db_disk_space.yml

Congrats 🥳 You should have received your first “Dunder Mifflin Paper Company” alert in Slack by now.

Wanna have your alerts up and running in production? Go through our more detailed Deployment Guide.

Enable Auto Completion

Keep’s CLI supports shell auto-completion, which can make your life a whole lot easier 😌

If you’re using zsh

eval "$(_KEEP_COMPLETE=zsh_source keep)"

If you’re using bash

eval "$(_KEEP_COMPLETE=bash_source keep)"

Using eval means that the command is invoked and evaluated every time a shell is started, which can delay shell responsiveness. To speed it up, write the generated script to a file, then source that.