A modern low-code visual programming IDE built on NodeGraphQt and qfluentwidgets, supporting drag-and-drop component orchestration, asynchronous execution, file operations, loop control, and one-click export of workflows into standalone runnable projects—enabling seamless transition from development to deployment.
441
stars
1,833
commits
Python
primary language
Aug 8, 2026
updated
A modern low-code visual programming platform built on NodeGraphQt and qfluentwidgets, supporting drag-and-drop component orchestration, asynchronous execution, file operations, control flow logic, and one-click export of workflows into standalone, executable projects—enabling seamless transition from development to deployment.





| Traditional Low-Code Tools | CanvasMind |
|---|---|
| Static component assembly | Dynamic expressions + global variables drive parameters |
| Only serial execution | Full conditional branching, iteration, and loops |
| No custom logic | Embedded code editor for writing Python components freely |
| Execution = endpoint | One-click export to standalone projects (API, CLI, Docker) |
| AI disconnected from canvas | Deep LLM integration: yellow jump / purple create buttons for canvas-aware intelligent completion |
| Fixed Runtime Environment | Supports remote execution via SSH: Features integrated Python environment management for SSH servers and supports dispatching nodes to the server-side for execution. |
| No Trigger Node or Hard-coded Trigger Options | Extensible Plugin Trigger System: Decoupled architecture allowing dynamic loading of Cron, Webhook, and File-watchers; UI auto-syncs with backend logic |


pyarrow and pickle for low-latency data transfer between local and remote environments.A powerful built-in coding assistant with OpenCode-style agent architecture and comprehensive tool system.
| Category | Tools |
|---|---|
| File Operations | read, write, edit, multiedit, patch, grep, glob, list, diff_files |
| Terminal | bash, run_verify |
| Web | webfetch, websearch |
| Code Analysis | get_diagnostics (Python/JS/TS/Shell) |
| Task Management | todowrite, todoread, ask_question |
| Skills | skill, list_skills, scan_repo, stage_files |
| Memory | memory_list, memory_search, memory_save, memory_consolidate |
| Canvas Integration | list_webhooks, trigger_webhook |
| Sub-Agents | task (distribute work to build/plan/skillful/explore agents) |
$...$ expressions (if/else logic)env (environment), custom (user-defined), and node_vars (node outputs)$env_user_id$ or $custom_threshold * 2$ in any parameter fieldasteval; prevents unsafe operations and isolates environments via contextmanagerrun() methods and helper functions inside nodescomponents/ directory and loads new componentsrequirements; missing packages are auto-installed at runtimerequirements.txt enables deployment to servers, Docker, or CLI environments# Clone the repository
git clone https://github.com/martin98-afk/CanvasMind.git
cd CanvasMind
# Create virtual environment (recommended)
python -m venv .venv
# Activate virtual environment
# Linux/Mac:
source .venv/bin/activate
# Windows:
.venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
python main.py
python build.py
| Type | Description | Example |
|---|---|---|
TEXT | Text input | String parameters |
LONGTEXT | Long text input | Multi-line strings |
INT | Integer | Numeric values |
FLOAT | Floating point | Decimal numbers |
BOOL | Boolean | Toggle switches |
CSV | CSV list data | Column selections |
JSON | JSON structure | Dynamic nested data |
EXCEL | Excel data | Cell ranges |
FILE | File path | Local file reference |
UPLOAD | Document upload | User-uploaded files |
SKLEARNMODEL | Scikit-learn model | Trained .pkl models |
TORCHMODEL | PyTorch model | .pt or .pth models |
IMAGE | Image data | Base64 or file paths |
| Type | Description | Example |
|---|---|---|
TEXT | Text input | Short strings |
LONGTEXT | Long text input | Code snippets, prompts |
INT / FLOAT | Numeric input | Thresholds, counts |
BOOL | Toggle | Enable/disable flags |
CHOICE | Dropdown | Predefined options |
DYNAMICFORM | Dynamic form | Variable-length lists |
RANGE | Numeric range | Min/max sliders |
VARIABLE | variable selector | global_variable |
FILE SELECT | Select file | canvas_files/model.pth |
requirementsCtrl+R – Run workflowCtrl+S – Save workflowCtrl+O – Load workflowCtrl+A – Select all nodesDel – Delete selected nodesself.logger in componentsprint() output is automatically capturedExport any subgraph as a self-contained project that runs in any Python environment—no CanvasMind required.
✅ Smart Dependency Analysis – Copies only necessary component code
✅ Path Rewriting – Model/data files copied and converted to relative paths
✅ Column Selection Preserved – CSV column config fully retained
✅ Environment Isolation – Auto-generated requirements.txt
✅ Ready-to-Run – Includes run.py and api_server.py
# Install dependencies
pip install -r requirements.txt
# Run model
python run.py
model_xxxxxxxx/
├── model.workflow.json # Full workflow definition (nodes, connections, column selections)
├── project_spec.json # Input/output schema
├── preview.png # Canvas preview snapshot
├── README.md # Project overview
├── requirements.txt # Auto-analyzed dependencies
├── run.py # CLI entrypoint
├── api_server.py # FastAPI microservice
├── scan_components.py # Component loader
├── runner/
│ ├── component_executor.py
│ └── workflow_runner.py
├── components/ # Original component code (preserved structure)
│ ├── base.py
│ └── your_components/
└── inputs/ # Bundled models/data files
| Status | Feature |
|---|---|
| 🚧 In Progress | Code-to-canvas auto-creation (from editor → new node) |
| 📋 Planned | Enhanced visualization for large-scale workflows |
| 📋 Planned | Cloud execution support |
Contributions are welcome! Please feel free to submit a Pull Request.
# 1. Fork and clone the repository
git clone https://github.com/martin98-afk/CanvasMind.git
cd CanvasMind
# 2. Create a virtual environment
python -m venv .venv
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows
# 3. Install dependencies
pip install -r requirements.txt
# 4. Run in development mode
python main.py
# 5. Run tests (if available)
pytest
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)For full documentation, visit: CanvasMind Docs
This project is licensed under the GPLv3 License.
928 commits
905 commits
Python
99.8%
A modern low-code visual programming IDE built on NodeGraphQt and qfluentwidgets, supporting drag-and-drop component orchestration, asynchronous execution, file operations, loop control, and one-click export of workflows into standalone runnable projects—enabling seamless transition from development to deployment.
441
stars
1,833
commits
Python
primary language
Aug 8, 2026
updated
A modern low-code visual programming platform built on NodeGraphQt and qfluentwidgets, supporting drag-and-drop component orchestration, asynchronous execution, file operations, control flow logic, and one-click export of workflows into standalone, executable projects—enabling seamless transition from development to deployment.





| Traditional Low-Code Tools | CanvasMind |
|---|---|
| Static component assembly | Dynamic expressions + global variables drive parameters |
| Only serial execution | Full conditional branching, iteration, and loops |
| No custom logic | Embedded code editor for writing Python components freely |
| Execution = endpoint | One-click export to standalone projects (API, CLI, Docker) |
| AI disconnected from canvas | Deep LLM integration: yellow jump / purple create buttons for canvas-aware intelligent completion |
| Fixed Runtime Environment | Supports remote execution via SSH: Features integrated Python environment management for SSH servers and supports dispatching nodes to the server-side for execution. |
| No Trigger Node or Hard-coded Trigger Options | Extensible Plugin Trigger System: Decoupled architecture allowing dynamic loading of Cron, Webhook, and File-watchers; UI auto-syncs with backend logic |


pyarrow and pickle for low-latency data transfer between local and remote environments.A powerful built-in coding assistant with OpenCode-style agent architecture and comprehensive tool system.
| Category | Tools |
|---|---|
| File Operations | read, write, edit, multiedit, patch, grep, glob, list, diff_files |
| Terminal | bash, run_verify |
| Web | webfetch, websearch |
| Code Analysis | get_diagnostics (Python/JS/TS/Shell) |
| Task Management | todowrite, todoread, ask_question |
| Skills | skill, list_skills, scan_repo, stage_files |
| Memory | memory_list, memory_search, memory_save, memory_consolidate |
| Canvas Integration | list_webhooks, trigger_webhook |
| Sub-Agents | task (distribute work to build/plan/skillful/explore agents) |
$...$ expressions (if/else logic)env (environment), custom (user-defined), and node_vars (node outputs)$env_user_id$ or $custom_threshold * 2$ in any parameter fieldasteval; prevents unsafe operations and isolates environments via contextmanagerrun() methods and helper functions inside nodescomponents/ directory and loads new componentsrequirements; missing packages are auto-installed at runtimerequirements.txt enables deployment to servers, Docker, or CLI environments# Clone the repository
git clone https://github.com/martin98-afk/CanvasMind.git
cd CanvasMind
# Create virtual environment (recommended)
python -m venv .venv
# Activate virtual environment
# Linux/Mac:
source .venv/bin/activate
# Windows:
.venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
python main.py
python build.py
| Type | Description | Example |
|---|---|---|
TEXT | Text input | String parameters |
LONGTEXT | Long text input | Multi-line strings |
INT | Integer | Numeric values |
FLOAT | Floating point | Decimal numbers |
BOOL | Boolean | Toggle switches |
CSV | CSV list data | Column selections |
JSON | JSON structure | Dynamic nested data |
EXCEL | Excel data | Cell ranges |
FILE | File path | Local file reference |
UPLOAD | Document upload | User-uploaded files |
SKLEARNMODEL | Scikit-learn model | Trained .pkl models |
TORCHMODEL | PyTorch model | .pt or .pth models |
IMAGE | Image data | Base64 or file paths |
| Type | Description | Example |
|---|---|---|
TEXT | Text input | Short strings |
LONGTEXT | Long text input | Code snippets, prompts |
INT / FLOAT | Numeric input | Thresholds, counts |
BOOL | Toggle | Enable/disable flags |
CHOICE | Dropdown | Predefined options |
DYNAMICFORM | Dynamic form | Variable-length lists |
RANGE | Numeric range | Min/max sliders |
VARIABLE | variable selector | global_variable |
FILE SELECT | Select file | canvas_files/model.pth |
requirementsCtrl+R – Run workflowCtrl+S – Save workflowCtrl+O – Load workflowCtrl+A – Select all nodesDel – Delete selected nodesself.logger in componentsprint() output is automatically capturedExport any subgraph as a self-contained project that runs in any Python environment—no CanvasMind required.
✅ Smart Dependency Analysis – Copies only necessary component code
✅ Path Rewriting – Model/data files copied and converted to relative paths
✅ Column Selection Preserved – CSV column config fully retained
✅ Environment Isolation – Auto-generated requirements.txt
✅ Ready-to-Run – Includes run.py and api_server.py
# Install dependencies
pip install -r requirements.txt
# Run model
python run.py
model_xxxxxxxx/
├── model.workflow.json # Full workflow definition (nodes, connections, column selections)
├── project_spec.json # Input/output schema
├── preview.png # Canvas preview snapshot
├── README.md # Project overview
├── requirements.txt # Auto-analyzed dependencies
├── run.py # CLI entrypoint
├── api_server.py # FastAPI microservice
├── scan_components.py # Component loader
├── runner/
│ ├── component_executor.py
│ └── workflow_runner.py
├── components/ # Original component code (preserved structure)
│ ├── base.py
│ └── your_components/
└── inputs/ # Bundled models/data files
| Status | Feature |
|---|---|
| 🚧 In Progress | Code-to-canvas auto-creation (from editor → new node) |
| 📋 Planned | Enhanced visualization for large-scale workflows |
| 📋 Planned | Cloud execution support |
Contributions are welcome! Please feel free to submit a Pull Request.
# 1. Fork and clone the repository
git clone https://github.com/martin98-afk/CanvasMind.git
cd CanvasMind
# 2. Create a virtual environment
python -m venv .venv
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows
# 3. Install dependencies
pip install -r requirements.txt
# 4. Run in development mode
python main.py
# 5. Run tests (if available)
pytest
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)For full documentation, visit: CanvasMind Docs
This project is licensed under the GPLv3 License.
928 commits
905 commits
Python
99.8%