Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

✨ panel-reactflow

CI conda-forge pypi-version python-version

A Panel wrapper for the React Flow JS library.

panel-reactflow demo

Features

  • Python-first, JSON-serializable graph state
  • Panel viewables inside nodes via node view entries
  • Interactive editing (drag/select/connect/delete) with sync back to Python
  • Optional schema definitions for node/edge properties
  • Event callbacks via ReactFlow.on(...) for app-level handling (callback signature: callback(payload, flow))

Pin your version!

This project is in its early stages, so if you find a version that suits your needs, it’s recommended to pin your version, as updates may introduce changes.

Installation

Install it via pip:

pip install panel-reactflow

Usage

import panel as pn

from panel_reactflow import ReactFlow

pn.extension("jsoneditor")

nodes = [
    {
        "id": "n1",
        "position": {"x": 0, "y": 0},
        "type": "panel",
        "label": "Start",
        "data": {},
        "view": pn.pane.Markdown("Node 1 content"),
    },
    {
        "id": "n2",
        "position": {"x": 260, "y": 60},
        "type": "panel",
        "label": "End",
        "data": {},
        "view": pn.pane.Markdown("Node 2 content"),
    },
]
edges = [
    {"id": "e1", "source": "n1", "target": "n2"},
]

flow = ReactFlow(
    nodes=nodes,
    edges=edges,
)

flow

For property schemas and richer editors, provide node_types/edge_types with PropertySpec and handle changes via ReactFlow.on(...). .on callbacks receive the event payload as the first argument and can optionally accept the ReactFlow instance as a second argument.

Development

git clone https://github.com/panel-extensions/panel-reactflow
cd panel-reactflow

For a simple setup use uv:

uv venv
source .venv/bin/activate # on linux. Similar commands for windows and osx
uv pip install -e .[dev]
pre-commit run install
pytest tests

For the full Github Actions setup use pixi:

pixi run pre-commit-install
pixi run postinstall
pixi run test

This repository is based on copier-template-panel-extension (you can create your own Panel extension with it)!

To update to the latest template version run:

pixi exec --spec copier --spec ruamel.yaml -- copier update --defaults --trust

Note: copier will show Conflict for files with manual changes during an update. This is normal. As long as there are no merge conflict markers, all patches applied cleanly.

❤️ Contributing

Contributions are welcome! Please follow these steps to contribute:

  1. Fork the repository.
  2. Create a new branch: git checkout -b feature/YourFeature.
  3. Make your changes and commit them: git commit -m 'Add some feature'.
  4. Push to the branch: git push origin feature/YourFeature.
  5. Open a pull request.

Please ensure your code adheres to the project's coding standards and passes all tests.

Release files for panel-reactflow 0.5.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for panel-reactflow 0.5.0a1
File Size Uploaded
panel_reactflow-0.5.0a1.tar.gz 2.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for panel-reactflow 0.5.0a1
File Interpreter ABI Platform
panel_reactflow-0.5.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 2.2 MB

Release files / panel_reactflow-0.5.0a1.tar.gz

Download URL panel_reactflow-0.5.0a1.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
f400aeb75e100e1dbd08240298e4250df791a7082816edb9d373b4282a682e4e
BLAKE2b-256 checksum
How to use checksums
40bd75c8cacb9dad2eb870e1057c37918ada415cad7787cc1c77ddc5e5a854f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

Release files / panel_reactflow-0.5.0a1-py3-none-any.whl

Download URL panel_reactflow-0.5.0a1-py3-none-any.whl
Size 177.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c9e6e6fe67f302de45788984abfe6a563938601df7abe0ea240c89e79f3faa4e
BLAKE2b-256 checksum
How to use checksums
fa7d5b9b5a2d5217a5e70c70929501de974d52352fc89e513b772a1ab81775d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page