Jupy: a lightweight, brutalist, local Python notebook server with terminal, environments, pip manager, widgets, debugger, and exports.
Project description
🟧 Jupy
Brutalist Local Python Notebook
A fast, self-contained notebook server with terminal, theme store, environments, debugger, widgets, and exports — all in one pip install.
✨ Features
| Category | What you get |
|---|---|
| Notebook | Code cells, markdown cells, rich output, plots (matplotlib/plotly/bokeh/altair), MathJax, drag-and-drop reorder, cell folding, collapsible headings |
| Terminal | Real PTY terminal (xterm.js + ConPTY on Windows) — tab completion, arrow history, colors, vim, python REPL |
| Theme Store | Browse, install, and apply community themes from themes_jupy — via CLI or the in-app 🎨 panel |
| Environments | Global, named, or per-project virtual environments — switch without restarting |
| Pip Manager | Install / uninstall / search packages from the UI or CLI |
| Debugger | Breakpoints, step over/into/out, call stack, post-mortem %debug |
| Widgets | Full ipywidgets-style system: sliders, dropdowns, checkboxes, tabs, accordions, interact() |
| Autocomplete | Jedi-powered completions + hover documentation tooltips |
| Exports | HTML, Python script, Markdown, PDF (print-ready) |
| Headless Run | Execute notebooks from the CLI: jupy run notebook.ipynb |
| Checkpoints | Snapshot and restore notebook versions |
| Git Integration | Branch status + one-click commit from the status bar |
| System Monitor | Live CPU / RAM / GPU footer bar |
| Command Palette | Ctrl+Shift+P for every action |
| Keyboard Shortcuts | Jupyter-style: Shift+Enter, A/B/D D, Ctrl+Enter, and more |
| Presentation Mode | Distraction-free fullscreen slides |
| Zen Mode | Hide all chrome, focus on code |
| Find & Replace | Ctrl+F across all cells |
| Themes | Light/dark toggle + custom theme engine (YAML/JSON tokens) |
| Magics | %time, %timeit, %run, %pip, %matplotlib, %who, %reset, %debug, and 30+ more |
📦 Installation
pip install jupy-notebook
Windows terminal (full ConPTY support):
pip install "jupy-notebook[terminal]"
Everything (terminal + file watching + headless execution):
pip install "jupy-notebook[all]"
Requirements
- Python 3.9+
- No other mandatory dependencies (psutil auto-installs)
🚀 Quickstart
# Start the notebook server (opens browser automatically)
jupy
# Or explicitly
jupy serve --port 8000
# Start without opening a browser
jupy serve --no-browser
# Serve a specific project folder
jupy serve --dir ./my_project
Then open http://localhost:8000 and start coding.
🖥️ CLI Reference
jupy Start the notebook server (default)
jupy serve [options] Start the notebook server
jupy doctor [--full] Check installation health
jupy status Show environment + version info
jupy theme add <name> Install a theme from the store
jupy theme browse List all available themes
jupy theme search <query> Search the theme store
jupy theme list List installed themes
jupy theme use <name> Activate a theme
jupy theme remove <name> Uninstall a theme
jupy theme update [--all] Update theme(s)
jupy theme import <file> Install from a local .yml/.json
jupy theme export <name> Export a theme to a file
jupy theme current Show the active theme
jupy theme reset Reset to the Jupy default
jupy theme new <name> Scaffold a new theme for contributors
jupy theme refresh Force-refresh the theme store cache
jupy env list List environments
jupy env create <name> Create a global environment
jupy env use <mode> [name] Set active environment (global/project/named)
jupy env info Show active environment details
jupy env path Print active environment path
jupy env delete <name> Delete an environment
jupy pip list List installed packages
jupy pip install <spec> Install a package
jupy pip uninstall <name> Uninstall a package
jupy run <notebook> [-o out] Execute a notebook headlessly
jupy export <notebook> --format html|py|md|pdf
jupy new <name> Create a new notebook
jupy init [--sample] Initialize a folder for Jupy
jupy combine [-o files.md] Compile project files into one Markdown
jupy config show|set Show or set per-folder config
🎨 Theme Store
Jupy connects to the themes_jupy community registry.
From the CLI:
jupy theme browse # see what's available
jupy theme add nord-frost # install
jupy theme use nord-frost # activate
From the browser: click the 🎨 icon on the left activity rail → STORE tab → browse previews → click INSTALL.
Create your own theme:
jupy theme new my-theme # scaffolds theme.yml + about.json
# edit the files, add a preview.png, then open a PR to themes_jupy
⌨️ Keyboard Shortcuts
Command Mode (press Esc first)
| Shortcut | Action |
|---|---|
Shift+Enter |
Run cell & select next |
Ctrl+Enter |
Run cell in place |
Alt+Enter |
Run cell & insert below |
Enter |
Enter edit mode |
A |
Insert cell above |
B |
Insert cell below |
D D |
Delete cell |
Z |
Undo delete |
↑ / K |
Select cell above |
↓ / J |
Select cell below |
Ctrl+Shift+↑/↓ |
Move cell up/down |
I I |
Interrupt kernel |
0 0 |
Restart kernel |
Ctrl+Shift+M |
Merge selected cells |
Ctrl+Shift+- |
Split cell at cursor |
Ctrl+Shift+P |
Command palette |
Ctrl+Shift+? |
Shortcuts help |
Edit Mode
| Shortcut | Action |
|---|---|
Esc |
Back to command mode |
Ctrl+Space |
Trigger autocomplete |
Ctrl+/ |
Toggle line comment |
Alt+↑/↓ |
Move line up/down |
Ctrl+F |
Find & replace |
Ctrl+S |
Save notebook to server |
📁 Project Structure
my_project/
├── .jupy/
│ ├── config.json # per-folder env config
│ └── checkpoints/ # notebook snapshots
├── my_notebook.ipynb
└── ...
Global data (environments, themes) lives in your OS app-data folder:
| OS | Path |
|---|---|
| Windows | %LOCALAPPDATA%\Jupy\ |
| macOS | ~/Library/Application Support/Jupy/ |
| Linux | ~/.local/share/jupy/ |
🛠️ Development
git clone https://github.com/hariomlohardev/jupy.git
cd jupy
pip install -e ".[all]"
jupy serve
Building & Publishing
pip install build twine
python -m build
twine check dist/*
twine upload dist/*
🤝 Contributing
- Fork the repo
- Create a feature branch:
git checkout -b feat/my-feature - Commit:
git commit -m "feat: add my feature" - Push:
git push origin feat/my-feature - Open a Pull Request
Contributing Themes
jupy theme new my-theme
# edit theme.yml + about.json, add preview.png
# open a PR to https://github.com/hariomlohardev/themes_jupy
📄 License
🙏 Acknowledgments
- Design inspired by Jupyter, Google Colab, and VS Code
- Terminal powered by xterm.js + pywinpty
- Theme store powered by themes_jupy
- Editor powered by CodeMirror 5
Made with 🟧 by hariomlohardev
Project details
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 jupy_notebook-0.2.0.tar.gz.
File metadata
- Download URL: jupy_notebook-0.2.0.tar.gz
- Upload date:
- Size: 143.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ade870ea24d8722e7c00bdfc22dbe2e2a269d4188fafd2f4181067f7efdf7a9f
|
|
| MD5 |
41978f51978f2a20ece3d650fcd9906d
|
|
| BLAKE2b-256 |
0939731c27e0bb675a66415e3c443e50c13dcfe9a3d8eff1f95edcc0b336b59c
|
File details
Details for the file jupy_notebook-0.2.0-py3-none-any.whl.
File metadata
- Download URL: jupy_notebook-0.2.0-py3-none-any.whl
- Upload date:
- Size: 186.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3132ba11d50b114364ea0542698ad25f7b818ebcd657c869a371dcc98416b66
|
|
| MD5 |
80312b27e6d7ebd5f57fb5b1ed78c83f
|
|
| BLAKE2b-256 |
f8f704b1805686f72f42e4c235553a07932e3679d340fb9b29651a3206422772
|