Jupyter Slide Navigator
A minimal VS Code extension for navigating Jupyter notebooks slide-by-slide
using the standard slideshow cell metadata (the same metadata used by RISE and
nbconvert --to slides).
Features
- Next / Previous Slide — jump to the next or previous cell tagged as
slide or subslide, scrolling it to the top of the editor.
- Next / Previous Fragment — finer-grained navigation that also stops at
cells tagged as
fragment.
- First / Last Slide — jump to the beginning or end of the deck.
- Toggle Slide View — insert spacer cells between slide boundaries so each
slide fills roughly one viewport height, creating a "slide deck" feel. Each
boundary gets a small sentinel cell (so Shift+Enter doesn't scroll the slide
away) followed by a large spacer. Spacers persist to disk (marked as
slide_type: "skip" so RISE and nbconvert ignore them) and are automatically
detected on reload.
- Status bar indicator — shows your current position (e.g. "Slide 12/47").
Displays a layout icon when slide view is active.
Keybindings
| Command |
Windows / Linux |
macOS |
| Next Slide |
Ctrl+Shift+PageDown |
Cmd+Shift+PageDown |
| Previous Slide |
Ctrl+Shift+PageUp |
Cmd+Shift+PageUp |
| Next Fragment |
Ctrl+Shift+Down |
Cmd+Shift+Down |
| Previous Fragment |
Ctrl+Shift+Up |
Cmd+Shift+Up |
| Go to Slide… |
Ctrl+Shift+O |
Cmd+Shift+O |
| Go Back |
Ctrl+Shift+Backspace |
Cmd+Shift+Backspace |
| First Slide |
(unbound) |
(unbound) |
| Last Slide |
(unbound) |
(unbound) |
| Toggle Slide View |
Ctrl+Shift+/ |
Cmd+Shift+/ |
Go to Slide… opens a filterable overview of every slide — type part of a
slide's title to jump straight to it. Go Back returns to your previous
position, which is handy for recovering from an accidental jump. First Slide
and Last Slide have no default keys (to avoid accidental jumps) but remain
available from the Command Palette; bind them yourself if you want shortcuts.
Slide navigation (next/previous slide and fragment) works whether a cell is in
command mode, in edit mode, or while the rendered slide output is focused. The
overview and Go Back commands are active in command mode and over slide output
(not while typing inside a cell).
Configuration
| Setting |
Default |
Description |
jupyterSlideNav.includeSubslides |
true |
Whether slide navigation stops at subslides too. |
jupyterSlideNav.showStatusBar |
true |
Show the slide position indicator in the status bar. |
jupyterSlideNav.skipCellTypes |
[] |
Slide types to skip (e.g. ["skip", "notes"]). |
jupyterSlideNav.slideViewSpacerLines |
40 |
Number of blank lines in spacer cells for slide view. |
The extension reads the standard Jupyter slideshow metadata from each cell:
{
"slideshow": {
"slide_type": "slide"
}
}
Valid slide_type values: slide, subslide, fragment, skip, notes, -.
You can set these tags using:
- The built-in Jupyter extension's "Slide Type" toolbar button
- The Jupyter Slide Show extension
- Any notebook editor that supports slideshow metadata
- Your own tooling (e.g.
clm)
Installation
From VS Code Marketplace
Install
Jupyter Slide Navigator
directly from the Marketplace, or search for "Jupyter Slide Navigator" in the
Extensions view (Ctrl+Shift+X).
From Open VSX Registry (VS Codium, Theia, Gitpod)
Install from the
Open VSX Registry,
or search for "Jupyter Slide Navigator" in your editor's Extensions view.
From GitHub Release
Download the latest .vsix from the
Releases page and
install it:
code --install-extension jupyter-slide-nav-0.2.4.vsix
Or using the GitHub CLI:
gh release download v0.2.4 --repo hoelzl/jupyter-slide-nav --pattern '*.vsix'
code --install-extension jupyter-slide-nav-0.2.4.vsix
From Source
git clone https://github.com/hoelzl/jupyter-slide-nav.git
cd jupyter-slide-nav
npm install
npm run compile
npm run package
code --install-extension jupyter-slide-nav-0.2.4.vsix
For Development
git clone https://github.com/hoelzl/jupyter-slide-nav.git
cd jupyter-slide-nav
npm install
Open the folder in VS Code, then press F5 to compile and launch an Extension
Development Host with the extension loaded. Use npm run watch for automatic
recompilation during development.
Publishing
To publish a new version to the VS Code Marketplace:
npx @vscode/vsce publish patch # or minor / major
The extension is also published to the Open VSX Registry
automatically via CI when pushing a version tag (requires the OVSX_TOKEN secret).
See PUBLISHING.md for the full setup and publishing guide.
License
MIT