⚙️ doQumentation Settings
Configure the Jupyter server used for executing Python code in tutorials.
IBM Quantum Account
save_account() method described below instead.Enter your IBM Quantum credentials once here. They will be auto-injected via save_account() when the kernel starts, so you don't need to enter them in every notebook. This applies to embedded code execution on this site only — opening a notebook in JupyterLab requires calling save_account() manually.
- Register at quantum.cloud.ibm.com/registration — no credit card required for the first 30 days
- Sign in at quantum.cloud.ibm.com
- Instance — Create a free Open Plan instance at Instances if you don't have one yet
- API Token — Click your profile icon (top right), then "API token". Copy the key.
- CRN — Copy the CRN string from your Instances page
For detailed steps, see IBM's Set up authentication guide (step 2).
Alternative: Run save_account() manually in a notebook cell
If you prefer not to store credentials in this browser, paste this into any code cell and run it. Credentials are saved in the Binder kernel's temporary storage and lost when the session ends.
from qiskit_ibm_runtime import QiskitRuntimeService
QiskitRuntimeService.save_account(
token="YOUR_API_TOKEN",
instance="YOUR_CRN",
overwrite=True
)Simulator Mode
Enable to run notebooks without an IBM Quantum account. All QiskitRuntimeService calls are redirected to a local simulator. No cell modifications needed. This applies to embedded code execution on this site only — opening a notebook in JupyterLab uses the standard Qiskit runtime.
Transpiled circuits and backend-specific results will differ from real hardware when using simulator mode. Static expected outputs shown on pages reflect real IBM backends.
Learning Progress
Your reading and execution progress is tracked locally in your browser. Visited pages show a ✓ in the sidebar; executed notebooks show a ▶.
Display Preferences
Code Font Size
from qiskit import QuantumCircuitPre-computed Outputs
Each notebook page shows pre-computed outputs (images, tables, text) from IBM's original runs. When you click Run to execute code live, both the original outputs and your new live results are shown side by side. Enable this toggle to hide the original outputs during live execution, keeping only your results visible.
Python Warnings
By default, Python warnings (deprecation notices, runtime hints) are suppressed for cleaner notebook output. Disable this to see all warnings — useful for debugging or learning about API changes.
Other
Binder Packages
When running on GitHub Pages, code executes via MyBinder. The Binder environment includes core Qiskit packages pre-installed:
qiskit[visualization], qiskit-aer,
qiskit-ibm-runtime, pylatexenc,
qiskit-ibm-catalog, qiskit-addon-utils, pyscfSome notebooks require additional packages. You can install them on demand by running this in a code cell:
!pip install -q <package>Or install all optional packages at once:
!pip install -q scipy scikit-learn qiskit-ibm-transpiler \
qiskit-experiments plotly sympy qiskit-serverless \
qiskit-addon-sqd qiskit-addon-mpf \
qiskit-addon-aqc-tensor[aer,quimb-jax] \
qiskit-addon-obp qiskit-addon-cutting ffsim \
gem-suite python-satAdvanced
Custom Jupyter Server
Setup Help
RasQberry Setup
If you're running on a RasQberry Pi, the Jupyter server should be automatically detected. If not, ensure the jupyter-tutorials service is running:
sudo systemctl status jupyter-tutorialsLocal Jupyter Setup
Start a Jupyter server with CORS enabled:
jupyter server --ServerApp.token='rasqberry' \
--ServerApp.allow_origin='*' \
--ServerApp.disable_check_xsrf=TrueDocker Setup
The Docker container generates a random Jupyter token at startup. Code execution through the website (port 8080) works automatically — no token needed. The token is only required for direct JupyterLab access on port 8888.
To retrieve the token from container logs:
docker compose --profile jupyter logs | grep "Jupyter token"To set a fixed token:
JUPYTER_TOKEN=mytoken docker compose --profile jupyter upRemote Server
For remote servers, ensure CORS is configured to allow connections from this site. Add the following to your jupyter_server_config.py:
c.ServerApp.allow_origin = '*'
c.ServerApp.allow_credentials = True