@narumitw/pi-jupyter
Pi extension: right-side Jupyter notebook preview while editing .ipynb files.
Package details
Install @narumitw/pi-jupyter from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@narumitw/pi-jupyter- Package
@narumitw/pi-jupyter- Version
0.1.1- Published
- May 5, 2026
- Downloads
- not available
- Author
- narumitw
- License
- unknown
- Types
- extension
- Size
- 28.8 KB
- Dependencies
- 0 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./extensions"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-jupyter
A Pi extension that shows a right-side, terminal-native preview for Jupyter notebooks (.ipynb) while you edit them with Pi.
The preview is a static text rendering of notebook cells and selected text outputs. It is not a running Jupyter kernel or browser webview.
Features
- Right-side notebook preview overlay in Pi's TUI.
- Auto-updates when Pi reads, writes, or edits an
.ipynbfile. - Watches the selected notebook on disk and refreshes after external saves.
- Displays markdown cells, code cells, execution counts, common text outputs/errors, and inline image outputs when the terminal supports images.
- Non-capturing by default, so you can keep typing in Pi while the panel stays visible.
- Focus mode for scrolling the preview.
Install
Install from npm globally:
pi install npm:@narumitw/pi-jupyter
Or pin a version:
pi install npm:@narumitw/pi-jupyter@0.1.1
Install for the current project only:
pi install npm:@narumitw/pi-jupyter -l
If npm returns E404, the scoped package has not been published yet. Until then, install from GitHub/tag:
pi install git:github.com/narumiruna/pi-jupyter@v0.1.1
If you previously installed the unscoped package, remove it before installing the scoped package:
pi remove npm:pi-jupyter
pi install npm:@narumitw/pi-jupyter
Local development install
Use one source at a time. If npm:@narumitw/pi-jupyter is installed globally and this repo is also installed locally with -l, Pi will load both and report shortcut conflicts.
For temporary local testing, prefer:
pi -e .
For a persistent project-local install:
pi install . -l
If you also have an npm package installed globally, remove one source before starting Pi:
# Keep the npm package; remove the project-local package from this repo
pi remove . -l
# Or keep the local package; remove the global npm package
pi remove npm:@narumitw/pi-jupyter
# If you installed the older unscoped package, remove that too
pi remove npm:pi-jupyter
Development
npm install
just check
just format
pre-commit install
Publish to npm. This runs biome check . first via the justfile, then npm publish --access public:
npm login
just publish
If npm requires two-factor authentication, pass the one-time password:
just publish 123456
After publishing succeeds, this install command will work:
pi install npm:@narumitw/pi-jupyter
Preview the npm package without publishing:
just publish-dry-run
Commands
/jupyter-preview [path]— open or refresh the right-side notebook preview./jupyter-preview-toggle [path]— toggle the preview./jupyter-preview-focus— focus the panel so arrow keys can scroll it./jupyter-preview-refresh— reload the current notebook from disk./jupyter-preview-close— close the preview.
Shortcuts
F8— toggle preview.Shift+F8— focus preview for scrolling.Ctrl+Alt+J/Ctrl+Alt+K— scroll preview down/up without focusing it.Ctrl+Alt+D/Ctrl+Alt+U— page down/up without focusing it.- In focused preview:
↑,↓,PgUp,PgDn,Homeorj,k,u,d,gscroll;EscorF8returns focus to the editor.
Notes
PNG outputs are rendered as truecolor ANSI thumbnails, so matplotlib-style image/png output is visible in Ghostty even inside the right-side overlay. Other image formats use @mariozechner/pi-tui terminal image support when available, otherwise they fall back to an image placeholder.
The panel auto-hides on narrow terminals (< 90 columns). Resize wider if it does not appear.
If shortcuts conflict with Pi/editor keybindings, use the slash commands:
/jupyter-preview-down [lines]/jupyter-preview-up [lines]/jupyter-preview-page-down/jupyter-preview-page-up/jupyter-preview-top