☰ Documentation menu
Introduction

Getting started

Record and reproduce quantum runs in about five minutes — fully offline, no account required. Follow the steps on the left; the commands are on the right.

1. Install

Create a virtualenv and install the provenance engine (ql-core) plus the client and ql CLI (ql-sdk). The [aer] extra pulls in Qiskit Aer so you can run circuits on a local simulator.

Other connector extras: [qiskit_runtime], [braket], [azure].

2. Capture your first run

Wrap any function that submits a quantum job with @ql.capture. When it returns, the SDK records the circuit, backend, calibration and result to a local ledger.

Capture writes to a local SQLite ledger — nothing leaves your machine and no account is needed.

3. Explore what you recorded

Every run carries its full provenance: circuit, backend, the calibration snapshot it ran against, the result distribution, and a portable run_hash.

4. Reproduce with drift — the "aha"

Re-run the stored circuit against a device state drifted forward in time, then score how much the result changed with a Hellinger fidelity and a plain-language verdict. Deterministic and offline.

5. Push to a server (optional)

To publish Result Cards, run compliance, or compare against the public corpus, push your local runs to a hosted or self-hosted server. Create an API key under Settings → API keys, then:

ql push is idempotent — it keys on run_hash, so re-pushing the same run is a no-op.

python3.12 -m venv .venv && source .venv/bin/activate
pip install -e packages/ql-core -e "packages/ql-sdk[aer]"
# examples/bell.py
import quantumledger as ql
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator

@ql.capture(project="bell")
def run_bell():
    qc = QuantumCircuit(2)
    qc.h(0)
    qc.cx(0, 1)
    qc.measure_all()
    return AerSimulator().run(qc, shots=4096)

run_bell()
ql list                 # every recorded run
ql show <run_id>        # circuit + backend + calibration + result + hash
ql reproduce <run_id> --days 90 --profile bad_day --html report.html
ql login --token <api-key> --endpoint http://localhost:8000
ql push

Running the full platform locally

To bring up the web app + API (dashboard, compliance, leaderboard, cards):

pip install -e packages/ql-core -e packages/ql-sdk -e packages/ql-crawler -e server
PYTHONPATH=server python scripts/seed_demo.py       # seed a walkable demo
PYTHONPATH=server uvicorn app.main:app --port 8000  # web + API at :8000

Already signed in and staring at an empty dashboard? Use Load demo data to populate your workspace with sample runs, a reproduction, a published card and an evaluated framework — no CLI required.

Next: Core concepts · Product tour.