Skip to main content

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 .ipynb contents and outputs; Hypernote owns in-memory runtimes, jobs, and attribution.

What it ships

  • notebook-first SDK in src/hypernote/sdk.py
  • agent-first CLI in src/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

Design discipline

  • shared behavior should have one owner, usually the SDK for agent-facing observation rules
  • command and payload variants should preserve one contract unless a difference is explicit and documented
  • adapters should normalize valid upstream shape differences at the boundary
  • tests should cover invariants across variants, not only the main workflow

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 lab process.
  • 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 src/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

hypernote-0.2.0.tar.gz (190.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hypernote-0.2.0-py3-none-any.whl (49.8 kB view details)

Uploaded Python 3

File details

Details for the file hypernote-0.2.0.tar.gz.

File metadata

  • Download URL: hypernote-0.2.0.tar.gz
  • Upload date:
  • Size: 190.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","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

Hashes for hypernote-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3c42ec9c2fb977684aa5af4c7417bd2cdde177541920c2d84591e739c008207b
MD5 afb015dcee4d1274dde42044b552a606
BLAKE2b-256 4ea7339170576dc2f75f18dfa8b2484628db52d0698f249574bd1208c3b39c39

See more details on using hashes here.

File details

Details for the file hypernote-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: hypernote-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 49.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","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

Hashes for hypernote-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3bf9e01f1791f5a9266c1f7c02d03866a26489e277f5f7985de3fc43a37c4d0e
MD5 fbc43480ac9a3b7832fe915ab994effb
BLAKE2b-256 04b0653f82e9c5a5bf4fb6b2f6c36ccbd2d4992718e469f767d200485ae007ec

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page