Notebook Lab
ivyx✓
Adds runnable lesson notebooks to the Learn extension, with cells your tutor can gate
Notebook Lab
The lesson runtime. It renders a lesson notebook, runs its cells against a Python kernel, and runs its agent tasks against an MCP server you wrote. On its own it teaches nothing — the Learn extension supplies the pedagogy.
What you can do
- Open a
*.lesson.ipynbfile and work through it cell by cell - Run cells against the kernel you pick, with streaming output
- Watch a real agent decide whether to call the tool you wrote
- Ask the tutor about the cell you are stuck on
Requirements
- The Learn extension. It plans every lesson: which cells are gated, which hints exist, what your tutor says. Without it a lesson does not open, because a lesson with its gates silently switched off is not a lesson.
- A Python kernel, for lessons that run code
- A connected MCP server, for lessons that test one
How it fits together
This extension reads no pedagogy. When you open a lesson it hands the notebook to the Learn extension and gets back per-cell directives — gated or not, read-only or not, where to mount the prediction box and the diagnosis. That is why the lesson format can grow without this extension changing.
| Direction | Surface |
|---|---|
| Lab asks Learn to plan a lesson | edu.lesson.plan |
| Lab reports a run | edu.progress.recordRun, edu.progress.recordAgentRun |
| Lab asks Learn to render a surface | edu.ui.mountStrip, edu.ui.mountPredict, edu.ui.mountDiagnosis |
| Learn re-resolves a gate | edu.lesson.updated event |
| Learn writes authored pedagogy | edu.lab.notebook.applyCellMeta |
Status
Progress is single-user: it belongs to whoever has the workspace open, because there is no learner identity yet. That lives in the Learn extension.
Getting started
Double-click a *.lesson.ipynb file, or pick a lesson from the Learn sidebar.
A plain .ipynb still opens in the professional notebook editor.