Installation
ipyflow ships as a single PyPI distribution that pulls in the ipyflow-core
backend, the JupyterLab/Notebook 7 extension, and a Jupyter kernelspec:
pip install ipyflow
This registers a kernel named Python 3 (ipyflow). In JupyterLab or Notebook 7
pick it from the Launcher, or switch an open notebook to it via Kernel → Change
Kernel. Because ipyflow is a strict superset of ipykernel, existing
notebooks run unchanged – you simply gain the dataflow features on top.
Requirements
ipyflow supports CPython 3.7+ (declared support goes back to 3.6; CI exercises 3.7 through 3.14). The frontend features target JupyterLab 3/4 and Notebook 7.
Installing the kernelspec manually
pip install ipyflow installs the kernelspec for you. If you need to
(re)install it into a specific environment – for example inside a container, or
after moving a virtualenv – invoke the installer module directly:
python -m ipyflow.install --sys-prefix
--sys-prefix installs into the active environment’s prefix (the usual choice
inside a virtualenv or conda env); omit it to install into the user location, or
pass --prefix to target an arbitrary directory. This is the same entry point
the packaging invokes, exposed as ipyflow.install.
Using ipyflow outside JupyterLab
The reactive UI (dependency dots, reactive re-execution, autosave) requires the JupyterLab/Notebook 7 extension. On surfaces where that extension is not yet available – Colab, VS Code, a plain terminal IPython, or a raw Jupyter Console – you can still load ipyflow’s tracer and use its full dataflow API by loading it as an IPython extension:
%pip install ipyflow
%load_ext ipyflow
%load_ext ipyflow swaps in ipyflow’s kernel/shell machinery for the current
session (see ipyflow.load_ipython_extension()), after which deps,
users, code, %flow, %%memoize, and the rest behave as documented
here. Reactive execution and the visual highlights, however, remain a
frontend-driven feature.
Trying it without installing
A zero-install build runs entirely in the browser via JupyterLite (Pyodide):
It is the quickest way to get a feel for reactive execution before adopting ipyflow locally.
Next: Your first reactive notebook walks through building a small reactive notebook and inspecting the dataflow graph it produces.