Install the server
The server runs as a Docker Compose stack (API, web UI, PostgreSQL, ClickHouse, Redis, worker, load balancer). Prometheus and Grafana are optional deployment overlays.[!NOTE] Requires Docker Engine ≥ 24.0 with Compose v2 (One-line install:docker compose, notdocker-compose). Homebrew’s Docker formula is outdated. Install Docker Desktop or use your distro’s upstream packages. Verify withdocker versionanddocker compose version.
Install the CLI
The CLI is what you use to log in, instrument harness configs, pull agents, and query traces.Install (standalone binary)
The standalone binary is the simplest way to install. No Python required. macOS / Linux:PATH. On Windows it installs to %LOCALAPPDATA%\Programs\Observal and updates your user PATH (open a new terminal afterwards). Set OBSERVAL_VERSION or OBSERVAL_BIN_DIR before running to pin a version or change the install directory.
Connecting to a server your team already runs? See the Setup guide.
Verify it worked:
Alternative: install with Python
If you prefer to install via Python, use one of these methods. Requires Python 3.11 or newer. uv (recommended):Optional extras
The Python package includes the Docker SDK. Themigrate extra adds pyarrow for observal server migrate:
Install from source (for contributors)
What gets installed
The Python package provides three entry points:
You will almost never call the sandbox helpers directly. The CLI wires them into your harness config for you.
Upgrade
Uninstall
Standalone binary:~/.observal/). Delete that folder if you want a clean slate:

