A local-first, node-based ML orchestrator with a visual pipeline builder
Project description
NeuroFlow
A local-first, node-based ML orchestrator with a visual pipeline builder.
Features
- Visual Pipeline Builder - Drag-and-drop nodes to create ML workflows
- Node-Based Architecture - Connect data loaders, preprocessors, models, and evaluators
- Custom Python Nodes - Inject custom Python code directly into your workflows
- Code View Toggle - Switch between visual editor and code representation (Overleaf-style)
- Built-in Visualizations - View metrics, charts, and model performance
- Local-First - All data stays on your machine
- Export/Import - Save and share workflows as JSON
- One Command - Install and run with a single command
Quick Start
Installation
# Install from PyPI
pip install neuroflow-ml
# Or install from source
git clone https://github.com/aayushgokhale/neuroflow.git
cd neuroflow/NeuroFlow
pip install -e .
Running NeuroFlow
# Start NeuroFlow (opens browser automatically)
neuroflow
# Or specify a custom port
neuroflow --port 3000
# Don't open browser automatically
neuroflow --no-browser
Visit http://localhost:8000 to access the visual pipeline builder.
Usage
Building a Pipeline
- Drag nodes from the left sidebar onto the canvas
- Connect nodes by dragging from output ports to input ports
- Configure nodes by clicking on them and editing parameters
- Run the workflow by clicking the "Run Workflow" button
- View results in the Results Panel with metrics and charts
Custom Python Nodes
NeuroFlow supports custom Python nodes for maximum flexibility:
- Click "Add Custom Node" in the left sidebar
- Write your Python code with access to
input_data,pd,np, andsklearn - Set the
outputvariable with your results - Connect to other nodes and run
View Toggle (Overleaf-Style)
Switch between visual and code views using the toggle in the top navigation:
- Visual: Drag-and-drop node canvas
- Code: VS Code-style syntax-highlighted view of all nodes
Node Types
| Category | Nodes |
|---|---|
| Data | CSV Loader, SQL Query, API Fetch |
| Preprocessing | Normalize, Encode, Split Data, Handle Missing |
| Models | Random Forest, Neural Net, XGBoost, Gradient Boosting |
| Evaluate | Accuracy Chart, Loss Curve, Confusion Matrix |
| Custom | Custom Python Node |
Example Workflow
CSV Loader -> Split Data -> Random Forest -> Evaluator
Development
Prerequisites
- Python 3.9+
- Node.js 18+
- pnpm (recommended)
Setup
# Clone the repository
git clone https://github.com/aayushgokhale/neuroflow.git
cd neuroflow
# Install backend dependencies
cd NeuroFlow
pip install -e ".[dev]"
# Install frontend dependencies
cd ../Frontend
pnpm install
# Run development servers
# Terminal 1: Backend
cd NeuroFlow && uvicorn app.main:app --reload
# Terminal 2: Frontend
cd Frontend && pnpm dev
Building for Distribution
cd NeuroFlow
./build.sh
pip install -e .
Project Structure
neuroflow/
|-- Frontend/ # Next.js frontend
| |-- app/ # App router pages
| |-- components/ # React components
| | |-- neuroflow/ # NeuroFlow-specific components
| |-- public/ # Static assets
|-- NeuroFlow/ # Python backend package
| |-- app/ # FastAPI application
| | |-- cli.py # CLI entry point
| | |-- main.py # FastAPI app
| | |-- engine.py # Workflow execution engine
| | |-- schemas.py # Pydantic models
| | |-- executors/ # Node executors
| |-- data/ # Demo datasets
| |-- static/ # Built frontend (after build)
| |-- pyproject.toml # Package configuration
API Reference
REST Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET |
/health |
Health check |
POST |
/api/workflows/execute/sync |
Execute a workflow synchronously |
POST |
/api/workflows/execute |
Execute a workflow asynchronously |
GET |
/api/workflows/{id}/status |
Get execution status |
POST |
/api/data/upload |
Upload data files |
GET |
/api/models/{id}/download |
Download trained model |
WebSocket
Connect to /ws/workflow/{run_id} for real-time execution progress updates.
Changelog
v0.2.0 (2026-03-04)
New Features
- Added Overleaf-style view toggle between visual editor and code view
- Added custom Python node support with inline code execution
- Added custom node drawer for creating nodes with configurable inputs/outputs
- Added "Load Custom Nodes Demo" workflow showcasing custom node capabilities
- Added edit/save functionality in code view
Improvements
- Improved JSON serialization for pandas/numpy objects in workflow results
- Enhanced storage manager with proper type conversion
- Updated node icons - custom nodes now use Code2 icon
- Better error handling in workflow execution
Bug Fixes
- Fixed async executor issues with custom Python nodes
- Fixed pandas Series serialization errors in API responses
- Fixed connection line rendering on canvas zoom
v0.1.0 (2026-02-15)
Initial Release
- Visual drag-and-drop pipeline builder
- Node-based ML workflow architecture
- Built-in node types: Data, Preprocessing, Models, Evaluation
- Local-first execution with FastAPI backend
- Demo workflow with auto-mpg dataset
- Export/import workflows as JSON
- Real-time execution progress via WebSocket
License
MIT License - see LICENSE for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Contact
Created by Aayush Gokhale
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neuroflow_ml-0.2.0.tar.gz.
File metadata
- Download URL: neuroflow_ml-0.2.0.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65ab06e955bd3ae19acaf21a3ec558ae89c5cb75951e03fd12c061d43318187e
|
|
| MD5 |
8df585727f1fe626bcc8a36aa0e5987d
|
|
| BLAKE2b-256 |
713b101b5a404402edf950c18ca8e637dda57234e1cfaef9f5d6bf6afddf4835
|
File details
Details for the file neuroflow_ml-0.2.0-py3-none-any.whl.
File metadata
- Download URL: neuroflow_ml-0.2.0-py3-none-any.whl
- Upload date:
- Size: 1.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ee501ecc954a6b7df22eb5741ca445012be81de9a956e9953b2379d5dc18edc
|
|
| MD5 |
95b98d9b30487c405a599be27d8911ab
|
|
| BLAKE2b-256 |
9b8893d7621a5643651d18631824eba63f1aee9ed5de807678e43ff2dfa924b9
|