Embed and manage Jupyter Server as a reusable Python component for applications and tools.
Project description
apibean-jupyter
apibean-jupyter is an infrastructure library for embedding and managing a Jupyter Server as a reusable Python component.
Instead of treating Jupyter as a standalone application, apibean-jupyter allows you to launch, configure, and control a Jupyter Server programmatically, making it suitable for tools, GUIs, notebooks automation, and managed processes.
Why apibean-jupyter?
Jupyter is often started as a CLI tool (jupyter lab, jupyter server),
which makes it difficult to:
- Embed Jupyter inside another application
- Manage its lifecycle from Python code
- Integrate it with process managers or dashboards
- Reuse the same configuration across tools
apibean-jupyter solves this by exposing Jupyter Server as a first-class Python object with a clear lifecycle and extension points.
Features
- Embed Jupyter Server via a simple Python API
- Optional CLI for quick launching
- Clean separation between core logic and UI/tooling
- Plugin hooks for customization (kernels, extensions, reporters)
- Designed for
uv runworkflows and managed environments - No dependency on GUI frameworks
Installation
pip install apibean-jupyter
Or run it directly with uv:
uv run --with apibean-jupyter apibean-jupyter --root notebooks
Quick Start (Python API)
from apibean_jupyter import JupyterServer
server = JupyterServer(
root_dir="notebooks",
ip="127.0.0.1",
)
print("Starting Jupyter at:", server.url)
server.start()
Command Line Usage
apibean-jupyter --root notebooks
Show server information without starting:
apibean-jupyter --info
Using with uv run
apibean-jupyter is designed to work well with uv:
uv run --with apibean-jupyter apibean-jupyter --root notebooks
It can also be embedded into other tools that depend on it.
Extending via Plugins
apibean-jupyter provides a lightweight plugin system to hook into the server lifecycle:
- Pre/post initialization
- Pre/post server start
- Shutdown handling
This allows you to implement features such as:
- Kernel mapping
- JupyterLab extension configuration
- Metrics and reporting
- Integration with process managers
Relationship to the apibean ecosystem
apibean-jupyter is part of the apibean ecosystem, a collection of libraries and tools focused on testability, automation, and developer tooling.
It is designed to be used alongside:
- apibean-notebook – notebook automation and analysis
- apibean-client – API and service interaction
Design Philosophy
- Prefer composition over inheritance
- Keep CLI logic thin and reusable
- Avoid tight coupling with UI frameworks
- Make production behavior explicit and reproducible
License
MIT License
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 apibean_jupyter-0.1.0a4.tar.gz.
File metadata
- Download URL: apibean_jupyter-0.1.0a4.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2359f811585db1fe6f21e485ad5603c175d0d504b86546836b9c2bd46a53b356
|
|
| MD5 |
738d2c6629ee0fe9265692345077f6fa
|
|
| BLAKE2b-256 |
d0277713e51db7d69e70039b8307e181e45b35ae2cde8b01761bfea5bf304a4a
|
File details
Details for the file apibean_jupyter-0.1.0a4-py3-none-any.whl.
File metadata
- Download URL: apibean_jupyter-0.1.0a4-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d7c84ac887392d7a6c2ceeef34e028166ff07571bac873424548f7afd05fe94
|
|
| MD5 |
76287317d9dd6e0f9c3bc453dfdbf61d
|
|
| BLAKE2b-256 |
cb8a6454eac9850796809be3706eccdd9c9fcb0709fdff4ab757f9f6fe411625
|