QuBins

Run Qiskit in your browser: nothing to install, free, no account. Or run the same image on your laptop with Docker.

cosign-signed Trivy-scanned daily-rebuilt multi-arch SLSA-attested

Build matrix status Qiskit Ecosystem member GitHub repo

Quick start

Launch latest Qiskit (…) in your browser Opens latest-xl on mybinder.org. First start is slow (image pull); subsequent launches are cached.

Or run locally with Docker:

docker run --rm -p 8888:8888 -v "$PWD:/home/jovyan/work" ghcr.io/qubins/images:latest-small

Open the http://127.0.0.1:8888/lab?token=… URL it prints. Save your notebooks in work/: that is the folder you ran the command in. Everything else is deleted when the container stops.

Podman, Windows, a busy port
  • Podman: the same command with podman instead of docker.
  • Windows PowerShell: -v "${PWD}:/home/jovyan/work"; cmd.exe: -v "%cd%:/home/jovyan/work".
  • Port 8888 already in use: -p 8899:8888, then open port 8899 instead.

Launch your repo or notebook on QuBins

Which flavor? xl for tutorials, addons + scientific stack (the usual pick). small for a lean image with just core Qiskit (bare launch or Docker; it can’t load a repo or notebook URL, so this form offers xl images). xxl adds the local AI transpiler (PyTorch + CUDA, ~4 GB, amd64); for now only 2.4-xxl has it, because the transpiler does not support Qiskit 2.5 yet.

Which tag? latest-xl and the newest minor (now 2.5-xl) are kept warm on mybinder, so readers start fastest. Other tags launch too, just slower the first time on each server. For a frozen environment (a course, a release), use a monthly snapshot such as 2.5-xl-20261008; it is never changed and kept for 12 months. More

Paste a GitHub repo URL (or a /blob/ URL, or a raw .ipynb URL). You get a launch link to share, and an optional Markdown badge for your README.

Why does this go through /launch/?

The link and the badge point at our /launch/ redirector rather than straight to mybinder.org. When mybinder's URL form changes (it has, historically), every link already in the wild keeps working with no edit needed on the reader's side. It also catches a mistyped or retired image tag and offers a working one.

All images

Every image is daily-rebuilt, Trivy-scanned (HIGH/CRITICAL gated), and cosign-signed via GitHub Actions OIDC. The Docker tag template for every row is: docker run --rm -p 8888:8888 -v "$PWD:/home/jovyan/work" ghcr.io/qubins/images:<tag>

small vs xl vs xxl — full comparison
small xl xxl
Use for Lean image, fast pull, core Qiskit work Tutorials, docs notebooks, addons, scientific stack (the usual pick) Everything in xl plus the local AI transpiler — currently 2.4-xxl only (2.5-xxl has the same content as 2.5-xl until the transpiler supports Qiskit 2.5)
Download ~0.4 GB ~0.9 GB ~4 GB (amd64)
Included qiskit
qiskit-aer
qiskit-ibm-runtime
Qiskit ecosystem: qiskit[all], all qiskit-addon-*, qiskit-experiments, qiskit-serverless, qiskit-ibm-catalog
Scientific stack: scipy, sklearn, pyscf, plotly, sympy, ffsim, pandas
Notebook tooling: pylatexenc, nbgitpuller, jupyterlab-open-url-parameter
Everything in xl, plus qiskit-ibm-transpiler[ai-local-mode] (pulls PyTorch + the full CUDA 13 wheelset)
Load a repo or notebook URL — (bare launch only) ✓ (via jupyterlab-open-url-parameter) ✓ (inherits from xl)
arm64 caveats none none from 2.5 on (packages without aarch64 wheels are built from source); 2.0–2.4 omit gem-suite the AI transpiler is amd64-only (no aarch64 wheels), so the arm64 build equals xl

For slideshows with interactive widgets, 2.5-xl also ships the classic Notebook frontend with classic RISE: launch it with ui=rise-classic, as the Quantum Coin Game above does. The older 2.1-xl-rise is kept for existing links.

Filter:
Qiskit Flavor Launch Docker tag

How it works

Dockerfile is parameterised by Qiskit version × flavor and installs the matching versions/<target>/requirements.txt. A GitHub Actions workflow builds per-arch (amd64 + arm64), gates on a Trivy scan, publishes the multi-arch manifest to GHCR with a SLSA provenance attestation, signs it with cosign, and force-pushes a tiny stub branch (the image reference plus a welcome notebook) that mybinder.org consumes to skip the dependency-tree rebuild.

A daily cron rebuilds everything against the current base image to absorb upstream CVE fixes. Dependabot watches the docker base, GitHub Action versions, and the latest Qiskit minor's pip pins.

Why trust these images

QuBins — the place for your QuBits: prebuilt quantum compartments, pick one, run your Qiskit notebook on (my)binder or as a container (“bin”).

More in the repository README.