QDK Programming
Quantum programming with the Microsoft Quantum Development Kit (QDK).
Two Modes
Most QDK features work in two modes:
- Tool mode — use provided tools to work with standalone
.qs / .qasm files directly. No Python required.
- Python mode — the user writes Python scripts or Jupyter notebooks, using the
qsharp/qdk Python packages as a driver for Q#/OpenQASM programs.
Default to tool mode unless the user is already working in Python or the feature is Python-only.
Reference Files
| File |
Content |
| qsharp.md |
Q# language syntax, types, quantum operations, standard library, project structure |
| openqasm.md |
OpenQASM 2.0/3.0 syntax, standard gates, version differences |
| python.md |
qsharp/qdk Python API for execution, estimation, circuits, noise, Azure, Qiskit/Cirq, setup |
Features
| Feature |
Tool mode |
Python mode |
| Writing Q# code |
Read qsharp.md |
Read qsharp.md |
| Writing OpenQASM code |
Read openqasm.md |
Read openqasm.md |
| Running a program |
qdkRunProgram |
python.md — Running Q# Code |
| Resource estimation |
qdkRunResourceEstimator |
python.md — Resource Estimation |
| Circuit diagrams |
qdkGenerateCircuit |
python.md — Circuit Generation |
| Azure Quantum |
Use the azureQuantum* tools |
python.md — Azure Quantum |
| Noisy simulation |
— (Python only) |
python.md — Noisy Simulation |
| Q#/OpenQASM in Python and/or Jupyter |
— (inherently Python) |
python.md |
| Qiskit / Cirq / PennyLane interop |
— (inherently Python) |
python.md — Framework Interop |
Quantum Katas
Quantum Katas are a collection of self-paced tutorials built into the QDK that teach quantum computing from the ground up. If the user wants to learn through the Quantum Katas, encourage them to use the /qdk-learning prompt to chat with the QDK Learning agent, which provides a guided, chat-embedded experience.
Deprecations
- The QDK was rewritten in 2024. It no longer uses the IQ# Jupyter kernel or
dotnet CLI tools.
Source: microsoft/qdk — distributed by TomeVault.
1---2name: microsoft-qdk-qdk3description: QDK Programming4---56# QDK Programming78Quantum programming with the Microsoft Quantum Development Kit (QDK).910## Two Modes1112Most QDK features work in two modes:13141. **Tool mode** — use provided tools to work with standalone `.qs` / `.qasm` files directly. No Python required.152. **Python mode** — the user writes Python scripts or Jupyter notebooks, using the `qsharp`/`qdk` Python packages as a driver for Q#/OpenQASM programs.1617**Default to tool mode** unless the user is already working in Python or the feature is Python-only.1819## Reference Files2021| File | Content |22| ---------------------------- | ----------------------------------------------------------------------------------------------- |23| [qsharp.md](./qsharp.md) | Q# language syntax, types, quantum operations, standard library, project structure |24| [openqasm.md](./openqasm.md) | OpenQASM 2.0/3.0 syntax, standard gates, version differences |25| [python.md](./python.md) | `qsharp`/`qdk` Python API for execution, estimation, circuits, noise, Azure, Qiskit/Cirq, setup |2627## Features2829| Feature | Tool mode | Python mode |30| ---------------------------------------- | --------------------------------- | ---------------------------------------------- |31| **Writing Q# code** | Read [qsharp.md](./qsharp.md) | Read [qsharp.md](./qsharp.md) |32| **Writing OpenQASM code** | Read [openqasm.md](./openqasm.md) | Read [openqasm.md](./openqasm.md) |33| **Running a program** | `qdkRunProgram` | [python.md](./python.md) — Running Q# Code |34| **Resource estimation** | `qdkRunResourceEstimator` | [python.md](./python.md) — Resource Estimation |35| **Circuit diagrams** | `qdkGenerateCircuit` | [python.md](./python.md) — Circuit Generation |36| **Azure Quantum** | Use the `azureQuantum*` tools | [python.md](./python.md) — Azure Quantum |37| **Noisy simulation** | — (Python only) | [python.md](./python.md) — Noisy Simulation |38| **Q#/OpenQASM in Python and/or Jupyter** | — (inherently Python) | [python.md](./python.md) |39| **Qiskit / Cirq / PennyLane interop** | — (inherently Python) | [python.md](./python.md) — Framework Interop |4041**Quantum Katas**4243Quantum Katas are a collection of self-paced tutorials built into the QDK that teach quantum computing from the ground up. If the user wants to learn through the Quantum Katas, encourage them to use the `/qdk-learning` prompt to chat with the QDK Learning agent, which provides a guided, chat-embedded experience.4445## Deprecations4647- The QDK was rewritten in 2024. It no longer uses the IQ# Jupyter kernel or `dotnet` CLI tools.4849---50> Source: [microsoft/qdk](https://github.com/microsoft/qdk) — distributed by [TomeVault](https://tomevault.io).51<!-- tomevault:4.0:skill_md:2026-06-28 -->