Cirq is a Python framework for creating, editing, and running quantum circuits on quantum computers and simulators.
Cirq addresses the challenge of programming noisy intermediate-scale quantum computers, where hardware-specific details significantly impact results. The framework provides abstractions tailored to NISQ devices, including flexible gate definitions, parameterized circuits with symbolic variables, circuit transformation and optimization capabilities, hardware device modeling, and noise modeling. It includes multiple built-in quantum circuit simulators and integrates with qsim for high-performance simulation, while maintaining interoperability with NumPy and SciPy.
Cirq suits developers and researchers working on near-term quantum algorithms and applications who need fine-grained control over circuit construction and hardware-specific optimizations. It is particularly valuable for those targeting specific quantum hardware platforms where noise characteristics and device constraints are central to achieving good results. The framework supports Python 3.11 and later across Linux, macOS, Windows, and Google Colab, making it accessible across different development environments. The project provides extensive learning resources including video tutorials, interactive Jupyter notebooks, and text-based documentation, alongside numerous examples ranging from textbook algorithms to advanced methods.
The project maintains active development with regular releases and a comprehensive changelog documenting changes across versions. Documentation is continuously updated and available both for stable releases and pre-release versions, supporting developers at different stages of adoption. The codebase includes an examples subdirectory with programs demonstrating applications across various quantum computing techniques, and a dedicated experiments page provides additional reference implementations from simple to advanced use cases.