Your notebooks, untouched
Opens and saves .ipynb losslessly. Cell ids, metadata and fields written by other tools survive the round trip, so collaborators on JupyterLab never notice.

.ipynb notebooks in your terminal, with vim keys, inline plots and rendered LaTeX.Your notebooks, untouched
Opens and saves .ipynb losslessly. Cell ids, metadata and fields written by other tools survive the round trip, so collaborators on JupyterLab never notice.
Fast
Redraws take single-digit microseconds. Cells are rendered once and cached, so holding a key down is a non-event, even in long notebooks full of plots.
Vim keys everywhere
Move between cells with j/k, edit with a modal editor, or let an embedded Neovim with your own config drive cell editing.
Plots and math in the terminal
matplotlib figures render inline through the kitty graphics protocol, and $…$ math renders as real equations. No TeX installation needed.
Any kernel
Runs any Jupyter kernelspec and finds your project’s virtualenv on its own: uv, poetry, conda, pixi, or anything else that installs ipykernel.
Hard to lose work
Atomic saves, autosave outside your repository, crash recovery, and a warning instead of a silent overwrite when the file changed on disk.
# download jotter_<version>_amd64.deb from the latest release, then:sudo apt install ./jotter_*_amd64.debsudo dnf install ./jotter-*.x86_64.rpmnix run github:samox73/jotter -- notebook.ipynbcargo install jotter-tui --lockedcurl -L https://github.com/samox73/jotter/releases/latest/download/jotter-x86_64-linux.tar.gz | tar xz jotterAll options, including Alpine and aarch64, are in the installation guide.