A native cross-platform desktop application for supervised learning (classification, regression) and unsupervised clustering — with team model sharing via PostgreSQL-backed MLflow.
- Python 3.11+
- PostgreSQL (optional, for team sharing)
Using uv (recommended — fast):
pip install uv
uv venv
source .venv/bin/activate # Linux / macOS
.venv\Scripts\activate # Windows
uv pip install -e .Or with pip:
python -m venv .venv
source .venv/bin/activate
pip install -e .On your team's shared PostgreSQL server:
CREATE DATABASE mlflow_db;
CREATE USER mlforge_user WITH PASSWORD 'admin123';
GRANT ALL PRIVILEGES ON DATABASE mlflow_db TO mlforge_user;python -m mlforge.main
# or if installed as script:
mlforgeOn first launch, go to Settings → MLflow & Team Sharing and enter your PostgreSQL URI:
postgresql+psycopg://mlforge_user:yourpassword@your-server:5432/mlflow_db
All teammates point to the same URI — runs and registered models are shared automatically.
Random Forest, XGBoost, LightGBM, Logistic Regression, SVM, KNN, Decision Tree, Extra Trees, AdaBoost, Naive Bayes
Random Forest, XGBoost, LightGBM, Linear, Ridge, Lasso, ElasticNet, SVR, KNN, Decision Tree, Extra Trees, Gradient Boosting
K-Means, DBSCAN, Agglomerative, Gaussian Mixture, OPTICS, Birch, Mean Shift, Spectral Clustering
mlforge/
├── main.py # Entry point
├── core/
│ ├── constants.py # Algorithms, hyperparams, config
│ ├── connection.py # Postgres/SQLite/CSV/Parquet connector
│ ├── tracker.py # MLflow wrapper
│ ├── trainer.py # Supervised training engine
│ ├── clusterer.py # Clustering engine
│ └── analysis.py # Feature analysis utilities
├── workers/
│ ├── training_worker.py # QRunnable for background training
│ └── clustering_worker.py # QRunnable for background clustering
└── ui/
├── main_window.py # Main window + navigation
├── styles.py # Dark / light Qt stylesheets
├── panels/
│ ├── data_panel.py # Connection + feature selector
│ ├── preview_panel.py # Tabular data preview
│ ├── analysis_panel.py # EDA workbench
│ ├── training_panel.py # Training console
│ ├── clustering_panel.py # Clustering workbench
│ └── registry_panel.py # Model registry
└── dialogs/
├── connection_dialog.py
└── settings_dialog.py
pip install pyinstaller
pyinstaller --onefile --windowed --name MLForge mlforge/main.pypyinstaller --onefile --windowed --name MLForge mlforge/main.pyUse pyinstaller then wrap with appimagetool.
- DBA creates
mlflow_dbon shared Postgres server - Each team member installs MLForge, enters the same
postgresql+psycopg://...URI in Settings - Team member A trains a model → it appears in everyone's Registry panel
- Team member B opens Registry, promotes it to Production stage
- Everyone can export .pkl from the Registry for deployment
