Known limitations
Rough edges
Section titled “Rough edges”- Wide images are cropped at the right edge of the terminal instead of scaled down. This keeps the one-time, high-quality downscale and avoids blurry rescaling on every redraw.
- Changing the font size re-renders everything. Output scroll positions reset and images are sent to the terminal again.
- The help screen needs about 33 rows; shorter terminals cut it off.
- Neovim backend: no plugin windows. Pickers, floating windows, file explorers and splits are closed as soon as they open. Popups that don’t take focus, like nvim-cmp’s menu, are invisible. See Embedded Neovim.
- No key remapping yet.
Not planned
Section titled “Not planned”These are deliberate choices, to keep jOtter small, fast and reliable:
- Interactive widgets (ipywidgets). They need a browser-like runtime. jOtter shows a placeholder.
- HTML and JavaScript outputs. jOtter shows the text version when the kernel sends one.
- Multiple notebooks in tabs. Use your terminal’s tabs or splits, or a terminal multiplexer.
- Connecting to existing or remote kernels. jOtter must own its kernel process so that interrupts and restarts always work. Run jOtter on the remote machine instead.
- Saving image outputs to files. Use
plt.savefigin the notebook. - Jupytext and percent-format scripts. Convert them with
jupytext --to ipynb. - Restoring the terminal after a hard kill. If jOtter is killed with
SIGKILLorSIGABRT, it can’t switch off mouse capture and its other terminal modes, so you can’t select text and images may stay on screen. Runreset, or start jOtter and quit normally. Closing the terminal and the usualkill(SIGTERM) are handled: jOtter autosaves first. - Windows. Use WSL.