ipyflow-core
Backend package for ipyflow's dataflow functionality
What it is and what it does
ipyflow-core is the backend package for a next-generation Python kernel for Jupyter that replaces the default ipykernel with one that understands dataflow relationships between cells and symbols. When you execute a cell, it automatically re-runs only the minimal set of upstream and downstream cells needed to keep the notebook consistent, so outputs always reflect what you'd see from a top-to-bottom "restart and run all" operation. This eliminates the common notebook problem where cell execution order gets tangled and outputs become stale or inconsistent.
The package ships with a JupyterLab extension that color-codes cell dependencies and supports both reactive (automatic re-execution on change) and lazy (manual execution) modes. It includes utilities like `reproduce_cell` to recover prior cell outputs within a session, and respects in-order or any-order execution semantics depending on your configuration.
Use it for:
- Exploratory data analysis where you frequently modify earlier cells and need confidence that downstream results stay in sync.
- Teaching or sharing notebooks where readers can jump to any cell and run it without worrying about hidden dependencies or stale outputs.
- Debugging notebook state by using the color-coded dependency visualization to understand which cells will be affected by a change.
- Recovering accidentally overwritten cell outputs using `reproduce_cell` within the same kernel session.
- Switching between reactive and lazy execution modes on a per-cell basis using keyboard shortcuts.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A reactive Python kernel for Jupyter that tracks dataflow between cells and symbols, automatically re-executing only the minimal set of affected cells when you run code.
Yes, if you spend significant time in Jupyter notebooks and struggle with cell execution order or stale outputs. The low install friction, active maintenance, permissive license, and zero known vulnerabilities make it a safe addition. The trade-off is that it replaces your kernel entirely and introduces a new mental model; test it on a non-critical notebook first to see if the reactivity model fits your workflow.
Install
ipyflow-core on PyPI
pip
pip install ipyflow-coreuv
uv add ipyflow-corepoetry
poetry add ipyflow-coreInstalling ipyflow-core
Before you install
Low friction installation as a pure-Python wheel. Actively maintained with a recent release; the project has 1274 stars and a last commit on 2026-08-14. Nine runtime dependencies including ipykernel, ipywidgets, and black are all established packages.
License in practice
BSD-3-Clause is a permissive license with no copyleft obligations, allowing use in proprietary projects without requiring source disclosure.
Quickstart
pip install ipyflow-core
Then select 'Python 3 (ipyflow)' from the Jupyter kernel launcher or kernel switcher. In a cell:
from ipyflow import reproduce_cell
reproduce_cell(4, lookback=1) # recover prior execution of cell 4
Requires Jupyter (JupyterLab or Notebook 7) and Python 3.6 or later; this is a kernel replacement, not a standalone library.
Verify before relying
- Whether the reactive execution model works reliably across all supported Python versions (3.6–3.14).
- Performance impact of dataflow tracking on large notebooks or long-running cells.
- Compatibility with common Jupyter extensions and third-party kernels.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — astunparse, black, contextvars, ipykernel, ipython, ipywidgets, nest_asyncio, pyccolo, traitlets |
| Maintenance | actively maintained — 38 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 126,363/month — #11,779 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ipyflow_core-0.0.230-py2.py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
marimoA reactive Python notebook environment that…
permissive · top 5,000 on PyPI
jupyterJupyter is a metapackage that installs the core…
permissive · top 5,000 on PyPI
jupyter-ui-pollBlocks Jupyter cell execution while waiting for…
permissive · top 15,000 on PyPI
ipykernelProvides the IPython kernel backend that powers…
permissive · top 1,000 on PyPI
pyccoloPyccolo is a library for declarative…
permissive · top 15,000 on PyPI
jupyter-nbmodel-clientProgrammatically interact with live Jupyter…
permissive · top 15,000 on PyPI
nbvalA pytest plugin that treats Jupyter notebooks…
permissive · top 15,000 on PyPI
jupyter-kernel-gatewayJupyter Kernel Gateway is a web server that…
permissive · top 5,000 on PyPI
jupyterlite-pyodide-kernelProvides a Python kernel for JupyterLite that…
permissive · top 15,000 on PyPI
nbclientnbclient executes Jupyter notebooks…
permissive · top 1,000 on PyPI