Qamomile is a quantum programming SDK. Write quantum circuits as typed Python functions and run them on quantum SDKs like Qiskit, CUDA-Q, QURI Parts, and qBraid. Furthermore, Qamomile supports symbolic algebraic resource estimation and can estimate resources for circuits containing black-box oracles — even when the circuit itself cannot be executed.
Note Qamomile is under active development, and breaking changes may be introduced between releases. If you find a bug, we’d really appreciate it if you could let us know via GitHub Issues.
sample() vs run(), observables, bit orderingqaoa_stateQamomile supports multiple quantum SDKs as execution backends. Qiskit is included by default; the others are optional extras.
Included with pip install qamomile. No extra flags needed.
from qamomile.qiskit import QiskitTranspiler, QiskitExecutor
CUDA-Q supports Linux and macOS ARM64 (Apple Silicon). Choose the extra that matches your CUDA version:
pip install "qamomile[cudaq-cu12]" # CUDA 12.x, Linux
pip install "qamomile[cudaq-cu13]" # CUDA 13.x, Linux or macOS ARM64
from qamomile.cudaq import CudaqTranspiler, CudaqExecutor
pip install "qamomile[quri_parts]"
from qamomile.quri_parts import QuriPartsTranspiler, QuriPartsExecutor
Runs Qiskit circuits on qBraid-supported devices and simulators.
pip install "qamomile[qbraid]"
from qamomile.qbraid import QBraidExecutor
pip install qamomile
import qamomile.circuit as qmc
from qamomile.qiskit import QiskitTranspiler
@qmc.qkernel
def bell_state() -> tuple[qmc.Bit, qmc.Bit]:
q0 = qmc.qubit(name="q0")
q1 = qmc.qubit(name="q1")
q0 = qmc.h(q0)
q0, q1 = qmc.cx(q0, q1)
return qmc.measure(q0), qmc.measure(q1)
transpiler = QiskitTranspiler()
exe = transpiler.transpile(bell_state)
result = exe.sample(transpiler.executor(), shots=1000).result()
for outcome, count in result.results:
print(f" {outcome}: {count}")