Need help with pytket?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

143 Stars 42 Forks Other 230 Commits 3 Opened issues


Python module for interfacing with the CQC t|ket> library of quantum software

Services available


Need anything else?

Contributors list


PyPI version Binder

is a python module for interfacing with CQC tket, a set of quantum programming tools.

This repo contains API documentation and example notebooks to get you started using

. It does not contain source code.

Getting Started

is available for
or higher, on Linux, MacOS and Windows. To install, ensure that you have
version 19 or above, and run

pip install pytket

Note: attempting to install from source will not set up the required binaries for the tket compiler, so we recommend the PyPI installation.

See the Getting Started page for a quick introduction to using


Documentation can be found at

To get more in depth on features, see the examples.


We currently support circuits and device architectures from Google Cirq, IBM Qiskit, Pyzx, ProjectQ, Rigetti pyQuil, AQT, Honeywell, Microsoft QDK, Amazon Braket, and Qulacs, allowing the tket tools to be used in conjunction with projects on these platforms.

To use

in conjunction with other platforms you must download an additional separate module for each. This can be done from

For each subpackage:

  • Qiskit:
    pip install pytket-qiskit
  • Cirq:
    pip install pytket-cirq
  • PyQuil:
    pip install pytket-pyquil
  • ProjectQ:
    pip install pytket-projectq
  • PyZX:
    pip install pytket-pyzx
  • AQT:
    pip install pytket-aqt
  • Honeywell:
    pip install pytket-honeywell
  • Q#:
    pip install pytket-qsharp
  • Braket:
    pip install pytket-braket
  • Qulacs:
    pip install pytket-qulacs


Copyright 2019-2021 Cambridge Quantum Computing

You may not use this product except in compliance with the Licence. You may obtain a copy of the Licence in the LICENCE file accompanying these documents or view them here.

How To Cite

If you wish to cite tket in any academic publications, we generally recommend citing our software overview paper for most cases.

If your work is on the topic of specific compilation tasks, it may be more appropriate to cite one of our other papers:

We are also keen for others to benchmark their compilation techniques against us. We recommend checking our benchmark repository for examples on how to run basic benchmarks with the latest version of

. Please list the release version of
with any benchmarks you give, and feel free to get in touch for any assistance needed in setting up fair and representative tests.


features a telemetry module which can be used to keep track of
usage and will provide usage analytics and error reporting at a later date. Telemetry is disabled by default, but may be enabled either through function calls or in the pytket configuration file.

In order to opt in to telemetry a helper function is provided in the

module that need only be run once.
from pytket import telemetry

Similarly the

function will allow a user to opt out.

Alternatively the config file located either at

is set can be edited manually.

Once a user has opted in to telemetry they will be assigned a telemetry ID by making an HTTP request to a CQC server with some information about their system.

Telemetry Data Policy

Our telemetry data policy can be viewed here.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.