Skip to main content

Quantum experiment tracking library

Project description

CI PyPI Python Docs License

devqubit

Local-first experiment tracking for quantum computing.

Capture circuits, backend state, and configuration automatically — runs are reproducible, comparable, and easy to share. Access your data via Python API, CLI, or Web UI.

[!WARNING] Status: Alpha — devqubit APIs may evolve in 0.x releases. Users should expect frequent changes that are likely to be incompatible with previously published versions.

Why devqubit?

General-purpose experiment trackers (MLflow, W&B, neptune.ai) work well for classical ML, but quantum workloads need structure they don't provide out of the box: what actually executed (program + compilation), where it ran (backend/device), and how it ran (runtime options, calibration state).

Challenge MLflow / W&B / neptune.ai devqubit
Circuit artifacts Manual file logging OpenQASM 3 + SDK-native formats (automatic)
Device context Manual Backend snapshots, calibration/noise context (automatic)
Reproducibility Depends on what you log Program + device + config fingerprints (automatic)
Result comparison Metric/table-oriented Distribution-aware TVD, structural diff, drift detection
Noise-aware verification Requires custom code Configurable policies with noise tolerance
Portable sharing Artifact/version workflows Self-contained bundles (manifest + SHA-256 digests)

Same circuit, same backend, different day — different results. devqubit helps you track why.

Features

  • Automatic circuit capture — QPY, OpenQASM 3, SDK-native formats
  • Multi-SDK support — Qiskit, Qiskit Runtime, Braket, Cirq, PennyLane, CUDA-Q
  • Content-addressable storage — deduplicated artifacts with SHA-256 digests
  • Reproducibility fingerprints — detect changes in program, device, or config
  • Run comparison — TVD analysis, structural diff, calibration drift detection
  • CI/CD verification — baselines with configurable noise-aware policies
  • Portable bundles — export/import runs as self-contained ZIPs
  • Web UI — browse runs, view artifacts, compare experiments

Documentation

📚 https://devqubit.readthedocs.io

Installation

Python 3.11+ required.

pip install devqubit

Install with an SDK adapter:

pip install "devqubit[qiskit]"          # Qiskit + Aer
pip install "devqubit[qiskit-runtime]"  # IBM Quantum Runtime
pip install "devqubit[braket]"          # Amazon Braket
pip install "devqubit[cirq]"            # Google Cirq
pip install "devqubit[pennylane]"       # PennyLane
pip install "devqubit[cudaq]"           # NVIDIA CUDA-Q
pip install "devqubit[all]"             # all adapters

Optional extras:

pip install "devqubit[ui]"              # local web UI

Quick Start

Track an experiment

from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
from devqubit import track

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

with track(project="bell-state", run_name="baseline-v1") as run:
    backend = run.wrap(AerSimulator())
    job = backend.run(qc, shots=1000)
    counts = job.result().get_counts()

    run.log_param("shots", 1000)
    run.log_metric("p00", counts.get("00", 0) / 1000)

print(f"Run saved: {run.run_id}")

The adapter automatically captures the circuit, backend config, job metadata, and results.

Compare runs

from devqubit.compare import diff

result = diff("baseline-v1", "experiment-v2", project="bell-state")

print(result.identical)                 # False
print(result.program.structural_match)  # True — same circuit structure
print(result.tvd)                       # 0.023
devqubit diff baseline-v1 experiment-v2 --project bell-state

CI/CD verification

from devqubit.compare import verify_baseline, VerifyPolicy

result = verify_baseline(
    "nightly-run",
    project="bell-state",
    policy=VerifyPolicy(tvd_max=0.05, noise_factor=1.2),
)

assert result.ok
# With JUnit output for CI pipelines
devqubit verify nightly-run --project bell-state --junit results.xml

CLI

devqubit list                            # list runs
devqubit show <run> --project <proj>     # run details
devqubit diff <a> <b> --project <proj>   # compare runs
devqubit baseline set <proj> <run>       # set baseline
devqubit verify <run> --project <proj>   # verify against baseline
devqubit pack <run> -o bundle.zip        # export bundle
devqubit ui                              # launch web UI

See the CLI reference for all commands.

Web UI

pip install "devqubit[ui]"

devqubit ui
# → http://127.0.0.1:8080

Runs list    Run detail

Browse runs, view artifacts, compare experiments, and manage baselines.

Architecture

devqubit is a monorepo with multiple packages:

Package Description
devqubit Public Python API (thin facade)
devqubit-engine Core logic: tracking, storage, comparison, CLI
devqubit-ui Web UI (optional)
devqubit-qiskit Qiskit adapter
devqubit-qiskit-runtime Qiskit Runtime adapter
devqubit-braket Amazon Braket adapter
devqubit-cirq Google Cirq adapter
devqubit-pennylane PennyLane adapter
devqubit-cudaq NVIDIA CUDA-Q adapter

Users install devqubit (plus optional extras). All public API lives in the devqubit namespace; engine internals are not part of the public API.

Contributing

We welcome contributions — bug fixes, docs, new adapters, or feature ideas.

  1. Read CONTRIBUTING.md for setup and guidelines
  2. Check open issues or start a discussion
  3. Fork, branch, and submit a PR
git clone https://github.com/devqubit-labs/devqubit.git
cd devqubit
uv sync --all-packages
uv run pre-commit install
uv run pytest

Early project — high impact contributions. Jump in!

Community

  • 💬 Discussions — questions, ideas, feedback
  • 🐛 Issues — bug reports, feature requests
  • 📚 Docs — guides and API reference

License

Apache 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devqubit-0.1.12.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devqubit-0.1.12-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file devqubit-0.1.12.tar.gz.

File metadata

  • Download URL: devqubit-0.1.12.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devqubit-0.1.12.tar.gz
Algorithm Hash digest
SHA256 f9b7ba5d019f16ee6dc00581d296fb3b2b114215fc3de348c92c8f6a78b34b03
MD5 e6f5375743f6fdf3969c935eae899558
BLAKE2b-256 3b08d78ccb3446a487773957830c800b63d4ca2e4252dea85fa5fceab5710b52

See more details on using hashes here.

Provenance

The following attestation bundles were made for devqubit-0.1.12.tar.gz:

Publisher: release.yaml on devqubit-labs/devqubit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file devqubit-0.1.12-py3-none-any.whl.

File metadata

  • Download URL: devqubit-0.1.12-py3-none-any.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devqubit-0.1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 e80ab847108b63c70be5cf44655db61d1692e4926639160ae031e1db2d89a48c
MD5 b837810be48c88c7d374ab2ed1a0ace1
BLAKE2b-256 26e463f5c3538c56d9a678a59619aec8385f8814a7b7b9d52de68ca46a8bfdb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for devqubit-0.1.12-py3-none-any.whl:

Publisher: release.yaml on devqubit-labs/devqubit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page