
Keep your hardware-aware Cirq circuits, swap in one sampler, and run on real QPUs from IonQ, Rigetti, IQM, and AQT. Running in under a minute.
The Cirq plugin is in beta. Tell us what works and what doesn’t in the Open Quantum community.
Cirq is an open-source Python framework for writing, manipulating, and optimizing quantum circuits, created and maintained by Google Quantum AI. Rather than abstracting the hardware away, Cirq gives you direct control over the circuit itself, which is exactly what you need for NISQ-era algorithms where the precise arrangement of gates drives fidelity.
Its distinguishing strength is fine-grained, hardware-aware control: explicit qubit placement with LineQubit and GridQubit, precise Moment-level scheduling that dictates when each gate executes, and device and gate-set constraints that mirror real hardware. Cirq is the native framework behind Google’s quantum processors and experiments, and it underpins libraries like OpenFermion for quantum chemistry, TensorFlow Quantum for quantum machine learning, and ReCirq for research.
Open Quantum provides OpenQuantumSampler, a drop-in cirq.Sampler that plugs into the standard execution paths — run, sample, run_sweep, and run_batch. Your cirq.Circuit stays exactly the same; you simply hand it an Open Quantum sampler and it executes on real QPUs.
pip install "openquantum-sdk[cirq]". Set your OPENQUANTUM_CLIENT_ID and OPENQUANTUM_CLIENT_SECRET environment variables. Done.
Use LineQubit, GridQubit, and Moments for hardware-aware control. No vendor-specific code, no new syntax to learn. Your existing cirq.Circuit objects work as-is.
Pick a backend (IonQ, Rigetti, IQM, or AQT) and call sampler.run(). Open Quantum handles conversion, submission, and result formatting.
A complete example: pip install the plugin, build a Bell state with Cirq LineQubits, and run it on IonQ Forte-1 trapped ion hardware. No credit card required.
pip install "openquantum-sdk[cirq]"import cirq
from cirq_openquantum import OpenQuantumSampler
# Auth via OPENQUANTUM_CLIENT_ID and OPENQUANTUM_CLIENT_SECRET env vars
sampler = OpenQuantumSampler(backend="ionq:forte-1")
q = cirq.LineQubit.range(2)
circuit = cirq.Circuit([cirq.H(q[0]), cirq.CNOT(q[0], q[1]), cirq.measure(*q, key="m")])
result = sampler.run(circuit, repetitions=1024)
print(result.histogram(key="m"))Run your Cirq circuits on trapped ion and superconducting QPUs from IonQ, Rigetti, IQM, and AQT. No vendor lock-in — switch backends with a single string change.
| QPU | Qubits | Technology | Highlights | Provider |
|---|---|---|---|---|
| IonQ Forte-1 | 36 qubits | Trapped Ion | 99.6% 2Q fidelity, software-configurable topology | Learn more |
| Rigetti Cepheus-1 | 108 qubits | Superconducting | 99.1% CZ fidelity, modular chiplet architecture | Learn more |
| IQM Emerald | 54 qubits | Superconducting | 99.5% CZ fidelity, European HPC integration | Learn more |
| IQM Garnet | 20 qubits | Superconducting | 99.5% CZ fidelity, European HPC integration | Learn more |
| AQT Ibex-Q1 | 12 qubits | Trapped Ion | Fully-connected, room temperature, rack-mounted | Learn more |
IBM's quantum SDK
Run Qiskit circuits on real QPUs with full BackendV2 support — SamplerV2 and EstimatorV2 primitives work out of the box.
Learn moreXanadu's quantum ML framework
Run PennyLane circuits on real QPUs with native qml.device integration for quantum machine learning and variational algorithms.
Learn moreHigh-level quantum programming
Run Qrisp programs on real QPUs. Program with QuantumVariables and high-level types, then pass one Open Quantum backend to get_measurement.
Learn more