Thin control plane for Jupyter notebook execution with jobs, attribution, and runtime lifecycle
Project description
Hypernote
- Notebook-first - Hypernote is a thin execution control plane on top of Jupyter shared documents.
- One notebook truth - notebook edits, execution, and late-open JupyterLab views all operate on the same logical document.
- Agent-first surface - the Python SDK is primary, and the CLI is a thin shell over it.
- Ephemeral control plane - Jupyter owns durable
.ipynbcontents and outputs; Hypernote owns in-memory runtimes, jobs, and attribution.
What it ships
- notebook-first SDK in
hypernote/sdk.py - agent-first CLI in
hypernote/cli/main.py - Jupyter server extension for execution and runtime control
- experimental VS Code extension in
vscode-extension/for embedding JupyterLab in VS Code - notebook-scoped runtime lifecycle with attach, detach, recovery, and stop
- job polling and
input()round-trips for headless execution - live-server and browser regression coverage for shared-document behavior
Quick start
uv sync
uv run hypernote --help
uv run hypernote setup serve
uv run hypernote setup doctor
uv run hypernote create tmp/demo.ipynb
uv run hypernote ix tmp/demo.ipynb -s 'value = 20 + 22\nprint(value)'
uv run hypernote status tmp/demo.ipynb --full
For another repo's environment, install Hypernote there (uv add hypernote --dev) and run
the same bootstrap command from that repo.
Install tiers
hypernote- core + server + shared-doc runtime
- use this for real Hypernote SDK/server usage
hypernote[lab]- adds the JupyterLab collaboration bundle
- use this when you want the full collaborative JupyterLab experience
hypernote[dev]- adds test, lint, browser, and local dev tooling
- use this for local development and CI
Examples:
uv sync
uv sync --extra lab
uv sync --extra dev
Mental model
Jupyter owns:
- notebook persistence
- shared YDoc document state
- kernel and session primitives
- notebook rendering in JupyterLab
Hypernote owns:
- runtime lifecycle around a notebook
- job coordination and stdin round-trips
- actor attribution
- SDK, CLI, and thin REST handlers
Documentation
VS Code
The repository now includes a minimal VS Code extension under vscode-extension/.
- It embeds JupyterLab inside a VS Code custom editor or panel.
- It can reuse an existing Jupyter server via settings.
- If no server is reachable, it can start a managed local
jupyter labprocess. - It stays decoupled from Hypernote-specific UI so Hypernote can connect to the same server separately.
Verification
For local development and CI, install the dev tier first:
uv sync --extra dev
uv run ruff check hypernote tests
uv run python -m pytest -q
Extension build:
cd vscode-extension
npm install
npm run compile
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 hypernote-0.1.3.tar.gz.
File metadata
- Download URL: hypernote-0.1.3.tar.gz
- Upload date:
- Size: 161.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a23bb4206172889e79f4853b7d4dfbe782c647fd2954b54ce4d325f62e20fb0
|
|
| MD5 |
51a82a2fa5c6672766b7b7f385c4780e
|
|
| BLAKE2b-256 |
fded47562f6a517ac45b86c0b38cf23ad77f6fdabe28c5ccca3b920ab2b9aae1
|
File details
Details for the file hypernote-0.1.3-py3-none-any.whl.
File metadata
- Download URL: hypernote-0.1.3-py3-none-any.whl
- Upload date:
- Size: 34.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b7e0e047725c828fe9c8f06334cb92f085a46d0246dcfad7a188a274578f050
|
|
| MD5 |
006660e30896de0919c5243211831f51
|
|
| BLAKE2b-256 |
60257705ec996b9b2a279e7f39041a4d604008bcd78a46a4b0eeeb0abb141a9d
|