Quick start
…) in your browser
Opens latest-xl on mybinder.org.
First start is slow (image pull); subsequent launches are
cached.
- Sessions are temporary. Nothing is saved: download your notebooks (File → Download) before you close the tab. An idle session shuts down after about 10 minutes.
- Memory is limited (1–2 GB), so large simulations can restart the kernel.
- Stuck on “Waiting” for more than 3 minutes? Reload the page; mybinder tries another server. mybinder’s user guidelines
New here? Open a ready-made notebook in your browser:
save_account() (see below).
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
podmaninstead ofdocker. - 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 |
qiskitqiskit-aerqiskit-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.
| 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
- Scanned: every build is scanned with Trivy, and an image with a fixable HIGH or CRITICAL vulnerability is not published.
- Rebuilt daily: security fixes in the base image and packages arrive within a day.
- Signed and traceable: each image is signed with cosign (keyless, via GitHub Actions) and carries a SLSA build-provenance attestation, so you can check it was built from this repository (how to verify).
- Multi-arch: linux/amd64 and linux/arm64 (Apple Silicon, Raspberry Pi 5, Graviton).
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.