Jupyter notebook for terminal
Project description
About
A Jupyter notebook client for your terminal. It aims to emulate the functionality of the classic Jupyter notebook. Built on the excellent textual framework with image support from textual-image.
Demo
Getting started
The easiest way to get started is with uv. To try without installing
uvx --from netbook jupyter-netbook [my_notebook.ipynb]
Or install it with
uv tool install netbook
jupyter-netbook [my_notebook.ipynb]
Terminal Support
| Terminal | Status | Image Support | Shift/Ctrl+Enter Support | Notes |
|---|---|---|---|---|
| Kitty | ✅ | ✅ TGP | ✅ Out of the box | Remap some keybindings |
| Foot | ✅ | ✅ Sixel | ✅ Out of the box | Sixel support is flaky |
| Contour | ✅ | ✅ Sixel | ✅ Out of the box | |
| ITerm2 | ✅ | ✅ Sixel | ✅ Out of the box | ITerm2 image protocal would probably be supported in the future |
| Wezterm | ✅ | ✅ TGP | ✅ Requires remapping | |
| Windows Terminal | ✅ | ✅ Sixel | ✅ Requires remapping | Things kind of work, sometimes... |
| Ghosty | 🤷 | ✅ TGP | ✅ Out of the box | I expect textual support of ghosty to improve |
| Alacritty | 🤷 | ❌ | ✅ Requires remapping | It is quite unlikely that alacritty will support images |
| Tmux | 🤷 | ✅ Sixel | 🤷 Not out of the box | Not sure how to remap the key bindings |
| Zellij | ❌ | ❌ | ✅ Out of the box | Sixels seems to confuse it quite a bit |
Frequently asked questions
Q: Why are icons in the toolbar all jumbled up?
A: You need to have Font Awesome installed. Or you can download nerd fonts that already have the glyphs patched in.
Q: How can I start other kernels?
A: You can use --kernel argument. It accepts kernel names shown by jupyter-kernelspec list.
Q: How to remap the keys in my terminal?
A: Here are snippets for a selection of terminal emulators:
-
Kitty. Add the following to
~/.config/kitty/kitty.conf# Send ctrl+shift+minus to netbook map --when-focus-on title:netbook kitty_mod+minus -
Wezterm. Add the following to
~/.config/wezterm/wezterm.lualocal wezterm = require 'wezterm'; return { -- ... keys = { {key="Enter", mods="CTRL", action=wezterm.action{SendString="\x1b[13;5u"}}, {key="Enter", mods="SHIFT", action=wezterm.action{SendString="\x1b[13;2u"}}, {key="Enter", mods="ALT", action=wezterm.action{SendString="\x1b[13;3u"}}, }, } -
Windows Terminal. Add the following to
settings.jsonfile{ // ... "keybindings": [ { "command": { "action": "sendInput", "input": "\u001b[13;5u" }, "keys": "ctrl+enter" }, { "command": { "action": "sendInput", "input": "\u001b[13;2u" }, "keys": "shift+enter" }, { "command": { "action": "sendInput", "input": "\u001b[13;3u" }, "keys": "alt+enter" } ] }
Euporie, a related project, has some examples
Development
To get set up just run
uv sync
uv run jupyter-netbook
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file netbook-0.3.1.tar.gz.
File metadata
- Download URL: netbook-0.3.1.tar.gz
- Upload date:
- Size: 2.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63cd8f4a661a140b2ba95944a65437c305ef35784dcc4565ffd5e3fd7bfcb2c3
|
|
| MD5 |
c77a7e6496b5aba5706116a7e9afeb06
|
|
| BLAKE2b-256 |
9853b084eebe895e50395ca97b5cf913f2fca560fbec4b01f95fdb3301927113
|
Provenance
The following attestation bundles were made for netbook-0.3.1.tar.gz:
Publisher:
python-publish.yml on lyovushka/netbook
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netbook-0.3.1.tar.gz -
Subject digest:
63cd8f4a661a140b2ba95944a65437c305ef35784dcc4565ffd5e3fd7bfcb2c3 - Sigstore transparency entry: 423469954
- Sigstore integration time:
-
Permalink:
lyovushka/netbook@5830a2b31f1b30308f087b764c0960979a0431b1 -
Branch / Tag:
refs/tags/0.3.1 - Owner: https://github.com/lyovushka
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@5830a2b31f1b30308f087b764c0960979a0431b1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file netbook-0.3.1-py3-none-any.whl.
File metadata
- Download URL: netbook-0.3.1-py3-none-any.whl
- Upload date:
- Size: 24.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21634d4807cbc620cab3618efbd86110cde49670ccc9f75d083400ffeda481c9
|
|
| MD5 |
509b32f6643f52fc2428cf21de72ab5e
|
|
| BLAKE2b-256 |
4e82ca2c08f5b200912f395a5839164003fc7a5d647fa00bd2350e2e4565f3dc
|
Provenance
The following attestation bundles were made for netbook-0.3.1-py3-none-any.whl:
Publisher:
python-publish.yml on lyovushka/netbook
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netbook-0.3.1-py3-none-any.whl -
Subject digest:
21634d4807cbc620cab3618efbd86110cde49670ccc9f75d083400ffeda481c9 - Sigstore transparency entry: 423469961
- Sigstore integration time:
-
Permalink:
lyovushka/netbook@5830a2b31f1b30308f087b764c0960979a0431b1 -
Branch / Tag:
refs/tags/0.3.1 - Owner: https://github.com/lyovushka
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@5830a2b31f1b30308f087b764c0960979a0431b1 -
Trigger Event:
release
-
Statement type: