Marimo Flow - Interactive ML notebooks with MLflow integration
Project description
Marimo Flow ๐
Modern reactive ML development with Marimo notebooks and MLflow experiment tracking
Why Marimo Flow is Powerful ๐
Marimo Flow combines the best of reactive notebook development with robust ML experiment tracking:
- ๐ Reactive Development: Marimo's dataflow graph ensures your notebooks are always consistent - change a parameter and watch your entire pipeline update automatically
- ๐ค AI-Enhanced Workflow: Built-in GitHub Copilot support and AI assistants accelerate your ML development
- ๐ Seamless ML Pipeline: MLflow integration tracks every experiment, model, and metric without breaking your flow
This combination eliminates the reproducibility issues of traditional notebooks while providing enterprise-grade experiment tracking.
Features โจ
- ๐ Marimo Reactive Notebooks: Git-friendly
.pynotebooks with automatic dependency tracking - ๐ฌ MLflow Experiment Tracking: Complete ML lifecycle management with model registry
- ๐ณ Docker Deployment: One-command setup with docker-compose
- ๐พ SQLite Backend: Lightweight, file-based storage for experiments
- ๐ฏ Interactive ML Development: Real-time parameter tuning with instant feedback
Quick Start ๐โโ๏ธ
With Docker (Recommended)
# Clone and start services
git clone <repository-url>
cd marimo-flow
docker-compose up -d
# Access services
# Marimo: http://localhost:2718
# MLflow: http://localhost:5000
Local Development
# Install dependencies
uv sync
# Start MLflow server
uv run mlflow server --host 0.0.0.0 --port 5000 --backend-store-uri sqlite:///data/mlflow/db/mlflow.db --default-artifact-root ./data/mlflow/artifacts
# Start Marimo (in another terminal)
uv run marimo edit examples/
Example Notebooks ๐
Explore our focused, production-ready notebooks:
๐ Basic ML Workflow
- Simple classification with Random Forest
- Real-time parameter tuning
- MLflow experiment tracking
- Interactive visualizations
๐ Model Comparison
- Compare multiple algorithms (RF, GB, LR, SVM)
- Cross-validation analysis
- Performance benchmarking
- Built-in datasets (Wine, Iris, Breast Cancer)
๐ Data Exploration
- Interactive statistical analysis
- Correlation heatmaps
- Distribution visualizations
- PCA and t-SNE dimensionality reduction
Each notebook demonstrates reactive development principles and follows Marimo best practices for maintainable, reproducible ML code.
Project Structure ๐
marimo-flow/
โโโ examples/ # Marimo notebooks
โ โโโ 01_basic_ml_workflow.py # Basic ML pipeline
โ โโโ 02_model_comparison.py # Multi-model comparison
โ โโโ 03_data_exploration.py # Interactive data analysis
โโโ data/
โ โโโ mlflow/ # MLflow storage
โ โโโ artifacts/ # Model artifacts
โ โโโ db/ # SQLite database
โ โโโ prompts/ # Prompt templates
โโโ docker-compose.yaml # Service orchestration
โโโ Dockerfile # Container definition
โโโ pyproject.toml # Dependencies
โโโ README.md # This file
Configuration โ๏ธ
Environment Variables
MLFLOW_TRACKING_URI: MLflow server URL (default:http://localhost:5000)MLFLOW_BACKEND_STORE_URI: Database connection stringMLFLOW_DEFAULT_ARTIFACT_ROOT: Artifact storage location
Docker Services
- Marimo: Port 2718 - Interactive notebook environment
- MLflow: Port 5000 - Experiment tracking UI
Pre-installed ML & Data Science Stack ๐ฆ
Machine Learning & Scientific Computing
- scikit-learn
^1.5.2- Machine learning library - NumPy
^2.1.3- Numerical computing - pandas
^2.2.3- Data manipulation and analysis - PyArrow
^18.0.0- Columnar data processing - SciPy
^1.14.1- Scientific computing - matplotlib
^3.9.2- Plotting library
High-Performance Data Processing
- Polars
^1.12.0- Lightning-fast DataFrame library - DuckDB
^1.1.3- In-process analytical database - Altair
^5.4.1- Declarative statistical visualization
AI & LLM Integration
- OpenAI
^1.54.4- GPT API integration - FastAPI
^0.115.4- Modern web framework - Pydantic
^2.10.2- Data validation
Database & Storage
- SQLAlchemy
^2.0.36- SQL toolkit and ORM - Alembic
^1.14.0- Database migrations - SQLGlot
^25.30.2- SQL parser and transpiler
Web & API
Development Tools
- Black
^24.10.0- Code formatter - Ruff
^0.7.4- Fast Python linter - pytest
^8.3.3- Testing framework - MyPy
^1.13.0- Static type checker
API Endpoints ๐
MLflow REST API
- Experiments:
GET /api/2.0/mlflow/experiments/list - Runs:
GET /api/2.0/mlflow/runs/search - Models:
GET /api/2.0/mlflow/registered-models/list
Marimo Server
- Notebooks:
GET /- File browser and editor - Apps:
GET /run/<notebook>- Run notebook as web app
Contributing ๐ค
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes following the coding standards
- Test your changes:
uv run pytest - Submit a pull request
License ๐
This project is licensed under the MIT License - see the LICENSE file for details.
Built with โค๏ธ using Marimo and MLflow
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 marimo_flow-0.1.1.tar.gz.
File metadata
- Download URL: marimo_flow-0.1.1.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b4401143d8a9eed917de0030622baeab575d09a40a5a11d43aab58d831076fd
|
|
| MD5 |
4a4b01f8590d162f6ac955fb370d10a9
|
|
| BLAKE2b-256 |
4e7e6f514576e5a23537d4a61d43eab2a0694e44ea6db2e015beeb28756ec071
|
Provenance
The following attestation bundles were made for marimo_flow-0.1.1.tar.gz:
Publisher:
python-publish.yml on bjoernbethge/marimo-flow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
marimo_flow-0.1.1.tar.gz -
Subject digest:
9b4401143d8a9eed917de0030622baeab575d09a40a5a11d43aab58d831076fd - Sigstore transparency entry: 234161099
- Sigstore integration time:
-
Permalink:
bjoernbethge/marimo-flow@915434c3fa7853dbc14cbd109636fff8aaa14b2d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/bjoernbethge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@915434c3fa7853dbc14cbd109636fff8aaa14b2d -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file marimo_flow-0.1.1-py3-none-any.whl.
File metadata
- Download URL: marimo_flow-0.1.1-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a14f9e0f110f34f6ae394c34268508a9dc29bc73247d3bc38f28fd647c865c6
|
|
| MD5 |
999355ec7651bac2571abfaa6e9e94d5
|
|
| BLAKE2b-256 |
160dd0fc8a648f49b1c8817b1043687716ab57c365ea491299336f2937164901
|
Provenance
The following attestation bundles were made for marimo_flow-0.1.1-py3-none-any.whl:
Publisher:
python-publish.yml on bjoernbethge/marimo-flow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
marimo_flow-0.1.1-py3-none-any.whl -
Subject digest:
2a14f9e0f110f34f6ae394c34268508a9dc29bc73247d3bc38f28fd647c865c6 - Sigstore transparency entry: 234161102
- Sigstore integration time:
-
Permalink:
bjoernbethge/marimo-flow@915434c3fa7853dbc14cbd109636fff8aaa14b2d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/bjoernbethge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@915434c3fa7853dbc14cbd109636fff8aaa14b2d -
Trigger Event:
workflow_dispatch
-
Statement type: