jupyterlab-workshop
Guided, interactive workshops inside JupyterLab.
Workshop instructions are shown in a JupyterLab side panel and contain clickable actions that drive the live session: terminals, the file browser, the editor, notebooks, kernels and layout. Workshops can check what the learner has done, ask questions, collect values, hold pages until requirements are met, and snapshot the working directory. The concept comes from the Educates Training Platform, re-imagined so that a single workshop runs wherever JupyterLab runs, without Kubernetes or containers.
A workshop is a directory with a workshop.yaml manifest and Markdown
pages. The format is text based and git friendly, and a workshop can
also be published as a static JupyterLite site that runs entirely in the
browser.
Warning: This project is in an early phase of development. The documentation is still being improved, the experience is still being polished, and the workshop format, settings and command line can change between releases without a compatibility path.
Install
pip install jupyterlab-workshop
The package is a prebuilt JupyterLab 4 extension with its server extension; nothing else needs installing. Open the Workshop panel from the right sidebar, or right-click a workshop directory in the file browser and choose "Open as Workshop".
Writing a workshop
pip install "jupyterlab-workshop[test]"
playwright install chromium
jupyter workshop init my-workshop
jupyter workshop lint my-workshop
jupyter workshop test my-workshop
lint needs Node.js on the path; test runs every action of the
workshop in a real JupyterLab and reports each one. Inside JupyterLab,
"Workshop: Author Mode" adds an editing toolbar to the panel, and
jupyter workshop mcp (with the mcp extra) serves the same tools to AI
agents. The lite extra adds jupyter workshop lite for building a
JupyterLite site.
Learn more
-
Documentation: the actions a page can use, checks, forms and checkpoints, platforms, JupyterLite, the manifest reference, trust, the command line and authoring in JupyterLab.
-
Try the demo: the example workshop running in JupyterLite.
-
Launch on Binder: pick one of the example workshops in a full JupyterLab with a real terminal.
-
Source, issues and contributing: see
CONTRIBUTING.mdin the repository for the development setup.
License
Apache License 2.0.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jupyterlab_workshop-0.1.4.tar.gz.
File metadata
- Download URL: jupyterlab_workshop-0.1.4.tar.gz
- Upload date:
- Size: 661.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cb6a24e070f0e4fedc00a4208598737fea13bfe5086686ae4e31ac13a76f277
|
|
| MD5 |
696556aaadbb5a34261811c16ae43262
|
|
| BLAKE2b-256 |
785e3ebe9934c27cdba6b3ce3de8f20f41ddb884b7acefe38965a3a9035f4d9b
|
Provenance
The following attestation bundles were made for jupyterlab_workshop-0.1.4.tar.gz:
Publisher:
release.yml on GrahamDumpleton/jupyterlab-workshop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jupyterlab_workshop-0.1.4.tar.gz -
Subject digest:
5cb6a24e070f0e4fedc00a4208598737fea13bfe5086686ae4e31ac13a76f277 - Sigstore transparency entry: 2735739758
- Sigstore integration time:
-
Permalink:
GrahamDumpleton/jupyterlab-workshop@8b5f02bcfb690c6f58d958ff0b4b79b32491f0b6 -
Branch / Tag:
refs/tags/0.1.4 - Owner: https://github.com/GrahamDumpleton
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8b5f02bcfb690c6f58d958ff0b4b79b32491f0b6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file jupyterlab_workshop-0.1.4-py3-none-any.whl.
File metadata
- Download URL: jupyterlab_workshop-0.1.4-py3-none-any.whl
- Upload date:
- Size: 387.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e78ac63444c0be6edb79e3587c4e12142e2f782866ddcf94e78da9a80a352d9e
|
|
| MD5 |
117c087ed9d67637cd7d318294c0b256
|
|
| BLAKE2b-256 |
804638cf94b38fa279889e3a87451efa45f68916981c31e88014e586addbbac8
|
Provenance
The following attestation bundles were made for jupyterlab_workshop-0.1.4-py3-none-any.whl:
Publisher:
release.yml on GrahamDumpleton/jupyterlab-workshop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jupyterlab_workshop-0.1.4-py3-none-any.whl -
Subject digest:
e78ac63444c0be6edb79e3587c4e12142e2f782866ddcf94e78da9a80a352d9e - Sigstore transparency entry: 2735739791
- Sigstore integration time:
-
Permalink:
GrahamDumpleton/jupyterlab-workshop@8b5f02bcfb690c6f58d958ff0b4b79b32491f0b6 -
Branch / Tag:
refs/tags/0.1.4 - Owner: https://github.com/GrahamDumpleton
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8b5f02bcfb690c6f58d958ff0b4b79b32491f0b6 -
Trigger Event:
push
-
Statement type: