Skip to main content

Quantum experiment tracking library

Project description

devqubit

Local-first experiment tracking for quantum computing. Capture code + circuits + backend/device context + configuration so runs are reproducible, comparable, and easy to share.

Status: Alpha. APIs and bundle formats may evolve in 0.x releases.

Documentation

📚 Read the Docs: https://devqubit.readthedocs.io

The documentation source lives in this repository under docs/, but the canonical, rendered docs are on Read the Docs.

Features

  • Automatic circuit capture — QPY, OpenQASM 3, and native SDK formats
  • SDK adapters — Qiskit, Qiskit Runtime, Amazon Braket, Cirq, PennyLane
  • Content-addressable storage — deduplicated artifacts with SHA-256 digests
  • Reproducibility fingerprints — detect changes in program, device, or configuration
  • Run comparison — TVD analysis, drift detection
  • CI/CD verification — verify runs against baselines in pipelines
  • Portable bundles — export/import runs for collaboration

Installation

Requirements

  • Python 3.11+ (tested on 3.11–3.13)

Install from PyPI

pip install devqubit

# With SDK adapters
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[all]"             # All adapters

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

Install from source (recommended for development)

This repo is a uv workspace (monorepo). For a complete local dev environment:

git clone <REPO_URL>
cd <REPO_DIR>

# Core dev (fast)
uv sync --all-packages

# Full dev (adapters + UI extras)
uv sync --all-packages --all-extras

Quick start

from devqubit import track

with track(project="my-experiment") as run:
    # Parameters
    run.log_param("shots", 1000)
    run.log_param("backend", "xyz_backend")

    # ... execute your circuit ...

    # Metrics
    run.log_metric("fidelity", 0.95)
    run.log_metric("execution_time_ms", 1234.5)

    # Tags
    run.set_tag("backend_type", "simulator")
    run.set_tag("experiment_phase", "calibration")

    # JSON artifacts
    run.log_json(name="counts", obj=counts, role="results")

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

SDK adapters

Adapters automatically capture circuits, results, and device information. Use run.wrap() to wrap your backend.

Qiskit example

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") as run:
    backend = run.wrap(AerSimulator())
    job = backend.run(qc, shots=1000)
    counts = job.result().get_counts()
    run.log_json(name="counts", obj=counts, role="results")

Adapters for Qiskit Runtime, Amazon Braket, Cirq, and PennyLane follow the same pattern.

CLI

devqubit list                              # List recent runs
devqubit show <run_id>                     # Show run details
devqubit diff <run_a> <run_b>              # Compare two runs
devqubit verify <run_id> --project myproj  # Verify against baseline
devqubit pack <run_id> -o experiment.zip   # Export portable bundle

Web UI

devqubit ui

Starts a local web interface (default: http://127.0.0.1:8080) for browsing runs, viewing artifacts, and comparing experiments.

Configuration

export DEVQUBIT_HOME=~/.devqubit          # Workspace directory
export DEVQUBIT_CAPTURE_GIT=true          # Capture git info
export DEVQUBIT_CAPTURE_PIP=true          # Capture installed packages

See the configuration docs in docs/guides/configuration.md.

Development and contribution

  1. Install uv: https://docs.astral.sh/uv/getting-started/installation/
  2. Create / sync the dev environment:
    uv sync --all-packages --all-extras
    
  3. Install git hooks:
    uv run pre-commit install
    
  4. Run checks and tests:
    uv run pre-commit run --all-files
    uv run pytest
    

For full contributor guidance, see CONTRIBUTING.md.

License

Apache 2.0

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.1.tar.gz (622.5 kB 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.1-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for devqubit-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2fef25431d71bdfd73ef26cf736dfc48bb170eaf0ced888b6a77a203b66c06e1
MD5 5b4a47725a8d7d397c14a8aac6927594
BLAKE2b-256 30986dab77a93b94b0f217e5fd9485db32ddd33ffc48f8256962cf004ed86be9

See more details on using hashes here.

Provenance

The following attestation bundles were made for devqubit-0.1.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: devqubit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 14.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ef0053143f99fb781c9b8f475cf3c60948de8e38a9c9e62ce816450cb189346d
MD5 900f0454c1ab2307281ddfb65bed22f2
BLAKE2b-256 a41fac636aced824adc6af4cc1e7f8d04ce5cfe249ad0c7014e9644ff268245e

See more details on using hashes here.

Provenance

The following attestation bundles were made for devqubit-0.1.1-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