Skip to content

Quick start

You can learn Themis in the hosted workspace. You can also run the full evidence plane on a local machine.

Fastest path: hosted workspace

  1. Open the Themis workspace.
  2. Choose a scenario template.
  3. Read the baseline, candidate, dataset, and context fields.
  4. Select run release gate.
  5. Wait for the receipt.
  6. Read the decision and the evidence panels.

The workspace must show the returned API state. It must not show a decision before the run returns a receipt.

Try all three checked-in stories:

Scenario Expected decision Reason
Promote PROMOTE The candidate matches the independent oracle and required evidence passes.
Quarantine QUARANTINE The candidate uses a deprecated field.
Review REVIEW DataHub is deliberately unavailable in the ablation run.

Full local path

Run these commands from the Themis project folder.

1. Install the project

python3 -m venv .venv
.venv/bin/python -m pip install -e ".[dev,bootstrap]"
cp .env.example .env

Keep .env private. The repository ignores it.

2. Start DataHub and load the fixture metadata

./scripts/bootstrap.sh
DATAHUB_GMS_URL=http://localhost:8080 \
  .venv/bin/python scripts/bootstrap_datahub.py

The bootstrap creates fixture metadata. The runner reads the metadata through the MCP boundary. It does not treat the bootstrap script as evidence.

3. Start OpenTelemetry and download the approved dataset

docker compose up -d
./scripts/download_nyc_taxi.sh

The local Jaeger UI is available at http://localhost:16686. The dataset is downloaded into an ignored cache.

4. Run the decision matrix

# Expected: QUARANTINE
.venv/bin/themis run --manifest data/releases/quarantine.yaml

# Expected: PROMOTE
.venv/bin/themis run --manifest data/releases/promote.yaml

# Expected: REVIEW
.venv/bin/themis run --manifest data/releases/review.yaml --ablation

The exit code is part of the contract. A successful PROMOTE run exits 0. The expected negative decisions use the documented non-zero result.

5. Start the local console

.venv/bin/themis serve --host 127.0.0.1 --port 8787

Open http://127.0.0.1:8787/workspace.

What counts as proof

A fresh receipt should include the release ID, decision, dataset identity, selected cases, passed cases, DataHub state, trace IDs, and write-back state. Historical sample receipts are examples. They are not current runtime proof.

Do not skip the independent oracle

A model can produce valid SQL that answers the wrong question. The oracle is a separate calculation. Themis compares the two results.