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.PATH.
The installer downloads the release binary and checks its SHA-256 hash against the release checksums when available. If it cannot download the checksums, it warns and proceeds without verification; it does not create a key in ~/.observal/config.json.
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:

