Metadata-Version: 2.4
Name: notebookflow-app
Version: 0.1.0
Summary: Visual pipeline editor and local execution engine for JupyterLab
Project-URL: Homepage, https://notebookflow.app
Project-URL: Repository, https://github.com/NoelHuibers/notebookflow
Project-URL: Issues, https://github.com/NoelHuibers/notebookflow/issues
Author: NotebookFlow contributors
License-Expression: MIT
License-File: LICENSE
Keywords: jupyter,jupyterlab,notebook,pipeline,workflow
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Jupyter
Classifier: Framework :: Jupyter :: JupyterLab
Classifier: Framework :: Jupyter :: JupyterLab :: 4
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: <3.14,>=3.11
Requires-Dist: anthropic>=0.100.0
Requires-Dist: croniter>=6.2.2
Requires-Dist: fastapi>=0.139.2
Requires-Dist: httpx>=0.28.1
Requires-Dist: jupyter-server-proxy<5,>=4.5
Requires-Dist: jupyterlab<5,>=4.6.1
Requires-Dist: litellm<1.92,>=1.91.4
Requires-Dist: matplotlib>=3.11.1
Requires-Dist: nbformat>=5.10.4
Requires-Dist: pandas>=3.0.3
Requires-Dist: pyarrow>=24.0.0
Requires-Dist: pydantic>=2.13.4
Requires-Dist: pyjwt[crypto]>=2.10.1
Requires-Dist: python-dotenv>=1.1.1
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: uvicorn[standard]>=0.51.0
Requires-Dist: watchfiles>=1.2.0
Requires-Dist: websockets>=16.0.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=1.3.0; extra == 'dev'
Requires-Dist: pytest>=9.1.1; extra == 'dev'
Requires-Dist: ruff>=0.15.22; extra == 'dev'
Requires-Dist: ty>=0.0.61; extra == 'dev'
Description-Content-Type: text/markdown

# NotebookFlow for JupyterLab

NotebookFlow adds a visual pipeline editor and local execution engine to
JupyterLab.

## Install

```bash
pip install notebookflow-app
jupyter lab
```

Open a notebook and launch NotebookFlow from the command palette. The Python
package contains both the prebuilt JupyterLab extension and the engine; a Node
installation and a repository checkout are not required. The engine starts
automatically through `jupyter-server-proxy` when the extension first connects.

NotebookFlow supports Python 3.11–3.13 and JupyterLab 4.6 or newer.

The PyPI distribution is named `notebookflow-app`; the `notebookflow` command
and Python import package keep their shorter names.

## Engine

The engine is a FastAPI and WebSocket server that builds DAGs from notebooks,
runs them through a data bus, and exposes pipelines to platform adapters
(JupyterLab, VS Code, and the web app).

## Layout

```text
notebookflow/
├── core/          # DAG, executor, data bus, triggers
├── nodes/         # Built-in node implementations
├── protocol/      # Extension manifest, registry, loader
├── llm/           # Pipeline author, code synthesis, explainer
└── server.py      # FastAPI + WebSocket entry point
```

## Development

```bash
cd engine
uv sync --all-extras
uv run pytest
uv run ruff check .
uv run ty check
```

Build the prebuilt extension from the repository root:

```bash
pnpm --filter @notebookflow/jupyterlab-extension build:lab
uv build engine
```

The complete Trusted Publishing, upgrade, and rollback procedure is in
[`docs/releases/jupyterlab.md`](../docs/releases/jupyterlab.md).

## Run the engine directly

```bash
uv run notebookflow
# Or directly:
uv run uvicorn notebookflow.server:app --reload
```
