Welcome to the documentation and tutorials for dynamic circuits! Dynamic circuits are quantum circuits (or programs!) with not just the ability to apply gates and measurements to your qubits, but also to apply operations that are conditional on classical computations and measurement results within the coherence time of your qubits. Dynamic circuits are a critical component of the IBM Quantum hardware roadmap.

We aim to provide access to real-time classical control and compute integrated in a seamless way with your quantum algorithms. IBM Quantum computers support programming dynamic circuits with both Qiskit and OpenQASM 3. To see what features of OpenQASM 3 are currently supported in hardware, please see the feature support table here.

Adding support for these new quantum hardware and software capabilities is a large effort that spans through Qiskit, the cloud, Qiskit Runtime, kernel-level compiler (more details coming soon!), hardware runtimes, and control systems. Development is still ongoing and feedback/discussion is encouraged in our Slack channel #dynamic-circuits in the Qiskit workspace. Development is happening at a rapid pace and we expect to incorporate feedback quickly.


As we integrate new features and address feedback, changes may be rapid and possibly breaking.

Tutorials and documentation

To learn more about dynamic circuits, explore the get-started pages, tutorials, and how-to guides available in the navigation menu. Be sure to start with the Getting started with Dynamic Circuits page, which includes installation instructions. You can read the tutorials here on the IBM Quantum platform, or you can open them as interactive Jupyter notebooks in IBM Quantum Lab (requires sign-in).


If you have a question first checkout the FAQ page and see if it has already been answered. If you can’t find the answer there, please ask in our Slack channel #dynamic-circuits in the Qiskit workspace.