This release is a pre-release and may not be stable for production use.
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
Release files for apibean-jupyter 0.1.0a4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| apibean_jupyter-0.1.0a4.tar.gz | 15.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| apibean_jupyter-0.1.0a4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.2 kB
Release files / apibean_jupyter-0.1.0a4.tar.gz
| Download URL | apibean_jupyter-0.1.0a4.tar.gz |
|---|---|
| Size | 15.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2359f811585db1fe6f21e485ad5603c175d0d504b86546836b9c2bd46a53b356
|
|
BLAKE2b-256 checksum How to use checksums |
d0277713e51db7d69e70039b8307e181e45b35ae2cde8b01761bfea5bf304a4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.5
|
Release files / apibean_jupyter-0.1.0a4-py3-none-any.whl
| Download URL | apibean_jupyter-0.1.0a4-py3-none-any.whl |
|---|---|
| Size | 13.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2d7c84ac887392d7a6c2ceeef34e028166ff07571bac873424548f7afd05fe94
|
|
BLAKE2b-256 checksum How to use checksums |
cb8a6454eac9850796809be3706eccdd9c9fcb0709fdff4ab757f9f6fe411625
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.5
|