View Detailed Test Report - Complete test results with individual test details
A universal, node-based visual scripting editor built with Python and PySide6 that bridges traditional data-flow programming with interactive application development. Create, connect, and execute Python code as nodes using either batch processing for data pipelines or live event-driven execution for interactive applications.

PyFlowGraph implements a hybrid execution model that combines two powerful paradigms:
This dual approach makes PyFlowGraph uniquely versatile - use the same visual programming environment to build everything from complex workflow automations and API integrations to data transformation pipelines and business process automation. The application provides a Qt-based interface for creating and connecting Python functions as nodes in a directed graph, with automatic pin generation from function signatures and type annotations.
The core architecture follows a "Code as Nodes" philosophy where each node contains actual Python code that can be edited in a built-in IDE. Input and output pins are automatically generated by parsing function signatures and type hints, eliminating manual configuration while maintaining type safety. The innovative Markdown-based file format (.md) stores graphs in a human-readable format that can be version controlled, edited manually, and even processed by AI assistants and LLMs.
int, str, float, bool, Tuple) define the data type and color of each pin.Ctrl+C) and paste (Ctrl+V) multiple nodes and groups with preserved relationships.PyFlowGraph uses a innovative Markdown-based file format (.md) that combines human readability with structured data storage. This format makes graphs both machine-readable for the application and easily editable by humans or AI assistants. The format includes embedded metadata for node positions, connections, and execution requirements while presenting the code in a clean, readable format.

For detailed information about the file format specification, see flow_spec.md.
The examples/ directory contains sample graphs demonstrating various capabilities:
data_analysis_dashboard.md - Interactive data visualization dashboardfile_organizer_automation.md - Automated file organization systeminteractive_game_engine.md - Interactive game with event-driven executionpassword_generator_tool.md - Secure password generation utilitypassword_generator_tool_group.md - Password generator with group organization demonstrationpersonal_finance_tracker.md - Personal finance management systemrecipe_nutrition_calculator.md - Recipe analysis and nutrition calculatorsocial_media_scheduler.md - Social media content scheduling tooltext_processing_pipeline.md - Advanced text processing workflowweather_data_processor.md - Weather data analysis and processingThe integrated Python code editor provides a professional development environment within PyFlowGraph. Features include syntax highlighting with custom color schemes, line numbering, smart auto-indentation, and tab support. The modal dialog design gives developers ample space to write and edit node logic while maintaining the visual context of the graph workflow.

The Python Environment Manager dialog enables sophisticated dependency management for each graph project. Users can specify custom pip requirements that are automatically installed in isolated virtual environments. This ensures each graph has its own clean dependency space, preventing conflicts between different projects while maintaining security through subprocess isolation.

The Node Properties dialog provides comprehensive configuration options for individual nodes. Users can modify node appearance, behavior settings, and metadata through an intuitive interface. This dialog supports real-time property updates and integrates seamlessly with the undo/redo system for reliable editing workflows.

The Node History dialog provides complete visibility into node evolution and changes over time. Users can review edit history, compare different versions of node code, and track modifications through an intuitive timeline interface. This feature supports development workflow tracking and enables easy rollback to previous node states.

The project is organized into modular, single-responsibility Python files:
src/main.py: The main entry point for the application. Handles application setup and loads the stylesheet.dark_theme.qss: The global Qt Style Sheet that defines the application's dark theme.src/core/)node_graph.py: The QGraphicsScene that manages all nodes, connections, groups, and clipboard logic.node.py: Defines the main Node class, including visual appearance and Python code parsing for pin generation.pin.py: Defines the input/output pins on nodes with type-safe connections.connection.py: Defines the visual Bezier curve connections between pins.reroute_node.py: Special organizational nodes for managing connection routing.group.py: Visual container system for organizing related nodes with customizable appearance.src/ui/)editor/node_editor_window.py: Main QMainWindow hosting all UI elements.editor/node_editor_view.py: QGraphicsView handling mouse/keyboard interactions (pan, zoom, copy/paste).dialogs/: All dialog components including code editor, settings, node properties, and group management.code_editing/: Python code editor with syntax highlighting and smart indentation.src/execution/)graph_executor.py: Engine that executes node graphs based on data dependencies.environment_manager.py: Virtual environment management for graph-specific dependencies.execution_controller.py: Controls batch and live mode execution with subprocess isolation.src/commands/)node/: Node-specific operations (create, delete, move, property changes)color_utils.py: Color manipulation utilities for the interface.environment_manager.py: Virtual environment management dialog for graph-specific dependencies.settings_dialog.py: Application settings configuration interface.node_properties_dialog.py: Node property editing interface.run.sh / run.bat: Helper scripts for running the application within its virtual environment.run_test_gui.bat: Professional GUI test runner launcher.This is the easiest way to run the application without needing to install Python or any dependencies.
.zip file (e.g., NodeEditor_Windows_v1.0.0.zip).main.exe executable.File > Load Graph... and open one of the .md files from the examples folder.Clone the Repository:
bash
git clone [https://github.com/bhowiebkr/PyFlowGraph.git](https://github.com/bhowiebkr/PyFlowGraph.git)
cd PyFlowGraph
Create a Virtual Environment:
bash
python3 -m venv venv
Activate the Environment:
source venv/bin/activatevenv\Scripts\activateInstall Dependencies:
bash
pip install PySide6
Run the Application: Use the provided scripts, which will automatically activate the environment and run the main script.
Linux/macOS:
bash
./run.sh
Windows:
cmd
run.bat
DeleteF5 or use "Run > Execute Graph" menu$ claude mcp add PyFlowGraph \
-- python -m otcore.mcp_server <graph>