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.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 https://github.com/devqubit-labs/devqubit.git
cd devqubit

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: devqubit-0.1.3.tar.gz
  • Upload date:
  • Size: 623.1 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.3.tar.gz
Algorithm Hash digest
SHA256 5c4531fa5a2e1866061247e9c20dc06573bccfeff40dc7f4ddbdcf683e6d5ecd
MD5 79e5691f3db497f3d9f74c5e3ee9607f
BLAKE2b-256 b35097a5aa1aec270556a9041c08c2319198a2206cae86746e1b5bb3f38ce4cf

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: devqubit-0.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 567c753eb82ba2b2fa3de196926caeda29ac91f0c191cc40938d07ffa5f96550
MD5 514fb086773ae8d0a02c71a7a9a76fbd
BLAKE2b-256 e0c45711598e2754c63c4c1e241785507860d4b64be572263c56c0a6aed524f1

See more details on using hashes here.

Provenance

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