Quickstart

July 22, 2026 · View on GitHub

Go from zero to "my first trace in the Observal dashboard" in about five minutes. This assumes you have Docker running.

By the end of this guide you will have:

  • The Observal CLI installed
  • An Observal server running locally
  • The CLI logged in as an admin
  • At least one MCP server instrumented
  • A live trace visible in the web UI

1. Install the CLI

curl -fsSL https://raw.githubusercontent.com/Observal/Observal/main/install.sh | bash

No Python required. For alternative install methods, see Installation.

[!NOTE] You need Docker Engine ≥ 24.0 with Compose v2 (docker compose, not docker-compose). Homebrew's Docker formula is outdated. Install Docker Desktop or use your distro's upstream packages. Verify with docker version and docker compose version.

2. Start the server

git clone https://github.com/Observal/Observal.git
cd Observal
cp .env.example .env

docker compose -f docker/docker-compose.yml up --build -d

That's it. The .env.example ships with working defaults. The core services come up:

ServiceURLPurpose
observal-lb (nginx)http://localhostReverse proxy (API + Web)
observal-webhttp://localhost:3000Web UI (Next.js, direct)
observal-apiinternalFastAPI backend
observal-workerinternalBackground jobs (arq)
observal-initinternalRuns DB migrations, then exits
observal-dblocalhost:5432PostgreSQL 16
observal-clickhouselocalhost:8123ClickHouse
observal-redislocalhost:6379Redis

Optional monitoring can be enabled with make up-prometheus or make up-observability. Prometheus listens on http://localhost:9090; Grafana listens on http://localhost:3001 when the Grafana profile is enabled.

The API waits for Postgres, ClickHouse, and Redis to pass health checks before starting. Expect 15–30 seconds. Confirm it is up:

curl http://localhost/health
# → {"status": "ok"}

Hitting a port conflict? See Self-Hosting → Ports and volumes.

3. Log in

observal auth login

Prompts:

  1. Server URL: press Enter for http://localhost
  2. Login method: pick [E]mail
  3. Email / password: use one of the seeded demo accounts:
RoleEmailPassword
Super Adminsuper@demo.examplesuper-changeme
Adminadmin@demo.exampleadmin-changeme
Reviewerreviewer@demo.examplereviewer-changeme
Useruser@demo.exampleuser-changeme

Log in as super admin for the fewest restrictions while exploring. Credentials land in ~/.observal/config.json (mode 0600).

Check it worked:

observal auth whoami
# → super@demo.example (super_admin)

4. Discover and instrument your harness

If you already have MCP servers configured in Claude Code, Kiro, Cursor, VS Code, or Copilot, first see what's there:

observal scan

Expected output lists detected harnesses, MCP servers, skills, hooks, and agents. MCP commands and remote URLs are shown exactly as configured.

scan is read-only: it shows what you have without modifying anything. Install session telemetry hooks:

observal doctor patch --all-harnesses

doctor patch installs supported session hooks and extensions. It does not rewrite MCP configuration. Restart your harness so the hook changes take effect, then begin a coding session.

5. See your first trace

Open http://localhost/traces in your browser. Start a prompt in your harness and let the session complete. Refresh to see the indexed session and its parsed events.

Or use the CLI:

observal ops traces --limit 5

6. (Optional) Pull an agent

Browse what the community has published:

observal agent list
observal agent show <agent-name>

Install one into your harness:

observal agent pull <agent-name> --harness <harness-name>

This writes agent files, skills, hooks, and direct MCP configs into the right places for your harness.

What you just built

flowchart LR
    harness[Your harness]
    transcript[Local session transcript]
    hook[Session hook or extension]
    api[Session ingest API]
    ch[(ClickHouse)]
    ui[Web UI]

    harness --> transcript
    hook --> transcript
    hook --> api
    api --> ch
    ch --> ui

Observal indexes session transcript records into canonical events and aggregates.

Where to next

You want to...Go to
Understand registry identityCore concepts
Understand session trackingSession tracking and reconciliation
Learn what to do with tracesUse Cases
Configure the server for productionSelf-Hosting
Deep-dive on a CLI commandCLI Reference