Metadata-Version: 2.4
Name: provenova
Version: 0.1.0
Summary: Provenova open-source client: capture quantum runs + their calibration state, reproducibly.
Author-email: Provenova <hi@ben.gy>
License: Apache-2.0
Project-URL: Homepage, https://provenova.net
Project-URL: Documentation, https://provenova.net/docs
Project-URL: Source, https://github.com/ben-gy/quantumledger
Keywords: quantum,provenance,reproducibility,qiskit,calibration
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: provenova-core<0.2,>=0.1.0
Requires-Dist: typer>=0.12
Requires-Dist: rich>=13
Requires-Dist: httpx>=0.27
Requires-Dist: qiskit<2,>=1.0
Provides-Extra: aer
Requires-Dist: qiskit-aer>=0.14; extra == "aer"
Provides-Extra: qiskit-runtime
Requires-Dist: qiskit-ibm-runtime>=0.20; extra == "qiskit-runtime"
Provides-Extra: braket
Requires-Dist: amazon-braket-sdk>=1.70; extra == "braket"
Provides-Extra: azure
Requires-Dist: azure-quantum>=1.0; extra == "azure"
Provides-Extra: all
Requires-Dist: provenova[aer,azure,braket,qiskit_runtime]; extra == "all"
Dynamic: license-file

# provenova — SDK & CLI

The open-source client for [Provenova](https://provenova.net), the
vendor-neutral system of record for quantum computing. Capture every quantum
run — circuit, backend, calibration snapshot and result — into an immutable,
offline-verifiable local ledger, then reproduce, score and publish.

```bash
pip install "provenova[aer]"
```

```python
import provenova as ql
from qiskit_aer import AerSimulator

@ql.capture(project="bell")
def run():
    return AerSimulator().run(qc, shots=4096)
```

```console
$ ql list                                  # inspect your local ledger
$ ql reproduce <id> --days 90 --profile bad_day
$ ql push                                  # sync to a hosted / self-hosted server
```

## What you get

- **`@ql.capture`** decorator / context manager — records runs from existing
  code with no rewrites; fully offline, no account required.
- **Vendor connectors** (plugin system): Qiskit Aer, IBM Qiskit Runtime,
  Amazon Braket, Azure Quantum, IonQ. Extras: `[aer]`, `[qiskit_runtime]`,
  `[braket]`, `[azure]`.
- **Local ledger** — SQLite, schema-identical to the hosted store; every run
  bound to the exact calibration that produced it via a Merkle `run_hash`
  that verifies offline.
- **`ql` CLI** — list, show, reproduce (with deterministic drift profiles),
  and content-hash-idempotent push.
- **Open provenance format** (`qlprov/run/1.0`) — portable JSON that verifies
  its own hash without any server.

## Learn more

- Quickstart: https://provenova.net/docs/getting-started
- Capturing runs: https://provenova.net/docs/capturing-runs
- Open schemas: https://provenova.net/docs/open-schemas

License: Apache-2.0. Part of the Provenova monorepo (`packages/ql-sdk`).
