[kiss-kit] noun, software
- open-source toolkit for useful quantum computing.
- production-ready circuit compiler.

![A laptop with the following code sample: # Build a circuit
from qiskit import QuantumCircuit
circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0,1)
circuit.measure([0,1], [0,1])
# Connect to your quantum provider
from <quantum provider> import Sampler
sampler = Sampler()
# Run the circuit and get the result
job = sampler.run(circuit)
quasi_dist = job.result().quasi_dists[0]
print(quasi_dist)](/_ipx/f_webp/images/landing-page/laptop.png)
# Build a circuit
from qiskit import QuantumCircuit
circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0,1)
circuit.measure([0,1], [0,1])
# Connect to your quantum provider
from <quantum provider> import Sampler
sampler = Sampler()
# Run the circuit and get the result
job = sampler.run(circuit)
quasi_dist = job.result().quasi_dists[0]
print(quasi_dist)
What Can Qiskit Do

Circuit Library

Qiskit includes a comprehensive set of quantum gates and a variety of pre-built circuits so users at all levels can use Qiskit for research and application development.
View the circuit library
Transpiler

The transpiler translates Qiskit code into an optimized circuit using a backend’s native gate set, allowing users to program for any quantum processor. Users can transpile with Qiskit's default optimization, use a custom configuration or develop their own plugin.
Read about transpilation
Run on any hardware

Qiskit helps users schedule and run quantum programs on a variety of local simulators and cloud-based quantum processors. It supports several quantum hardware designs, such as superconducting qubits and trapped ions.
See all providers
Try it yourself

Ready to explore Qiskit’s capabilities for yourself? Learn how to run Qiskit in the cloud or your local Python environment.
Get started here Qiskit is getting a new documentation
and learning experience!
Documentation
We are reorganizing Qiskit documentation on IBM Quantum to better support your research and development workflows.
Learning
We are building a new learning application with courses and tutorials to help you learn the basics and start experimenting with Qiskit.

Backend compatibility
You can use Qiskit to construct quantum programs and run them on simulators or real quantum computers. With our extensive network of providers you can compile your Qiskit code for a huge range of different backends, more than any other quantum framework!
Select a provider below and explore code examples of how to use it with Qiskit:
- Qiskit (with built-in simulator) View docs
- IBM Quantum View docs
- Aer View docs
- Amazon Braket View docs
- AQT View docs
- Azure Quantum View docs
- Gaqqie View docs
- IonQ View docs
- IQM View docs
- MQT DDSIM View docs
- NVIDIA cuStateVec View docs
- QC Ware Forge View docs
- QuaC View docs
- Quantinuum View docs
- Rigetti View docs
- Strangeworks View docs
Install
pip install qiskit
Build and run
# Build circuit
from qiskit.circuit.library import QuantumVolume
circuit = QuantumVolume(5)
# Transpile circuit
from qiskit import transpile
transpiled_circuit = transpile(circuit, basis_gates=['sx', 'rz', 'cx'])
transpiled_circuit.draw()
from qiskit.primitives import Sampler
sampler = Sampler()
# Build circuit
from qiskit import QuantumCircuit
circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0,1)
circuit.measure([0,1], [0,1])
# Run the circuit and get result distribution
job = sampler.run(circuit)
quasi_dist = job.result().quasi_dists[0]
print(quasi_dist)
from qiskit.primitives import Estimator
estimator = Estimator()
# Specify problem hamiltonian
from qiskit.quantum_info import SparsePauliOp
hamiltonian = SparsePauliOp.from_list([
("II", -1.052373245772859),
("IZ", 0.39793742484318045),
("ZI", -0.39793742484318045),
("ZZ", -0.01128010425623538),
("XX", 0.18093119978423156)
])
# Define VQE ansatz, initial point and cost function
from qiskit.circuit.library import TwoLocal
ansatz = TwoLocal(num_qubits=2, rotation_blocks="ry", entanglement_blocks="cz")
initial_point = initial_point = [0] * 8
def cost_function(params, ansatz, hamiltonian, estimator):
energy = estimator.run(ansatz, hamiltonian, parameter_values=params).result().values[0]
return energy
# Run VQE using SciPy minimizer routine
from scipy.optimize import minimize
result = minimize(cost_function, initial_point, args=(ansatz, hamiltonian, estimator), method="cobyla")
# Print minimum eigenvalue
print(result.fun)