Easy-ML Studio
Easy-ML Studio is a no-code machine learning studio that runs on your own machine. Upload a dataset in the browser, train several models side by side, compare their metrics, make predictions, explain them with SHAP, and export a trained model as a ready-to-run FastAPI service.
It covers three workflows:
- Tabular classification and regression (CSV / Excel)
- Text classification (TF-IDF or sentence embeddings)
- Image classification (SimpleCNN, ResNet18, MobileNetV2, or your own CNN)
Everything stays local: the UI, the models and your data never leave your computer.
Install
pip install easy-ml-studio
The core install covers tabular ML with scikit-learn models and TF-IDF text classification. Add extras for more:
| Extra | Adds |
|---|---|
[boost] |
XGBoost, LightGBM, CatBoost models |
[nlp] |
Lemmatization (spaCy) and sentence-embedding features |
[cv] |
Image classification with PyTorch |
[eda] |
SHAP explanations and automatic EDA reports |
[all] |
Everything above |
pip install "easy-ml-studio[all]"
easy-ml download-models # spaCy English model, needed for lemmatization
Python 3.10 – 3.12 is supported. Features whose extra is not installed are greyed out in the UI with the command to enable them.
Launch
easy-ml
The studio opens in your browser at http://127.0.0.1:5010. Useful options:
easy-ml --port 8080 # use another port
easy-ml --no-browser # don't open a browser tab
easy-ml --host 0.0.0.0 # expose on your network (see Security below)
python -m easyml # same as easy-ml
Features
- Train several models in one run and compare accuracy, confusion matrices and classification reports
- Light or thorough hyperparameter search (GridSearchCV)
- Missing-value imputation, scaling, PCA, one-hot encoding, and SMOTE / Tomek Links for imbalanced classes
- Live progress and training curves while models train; stop a run at any time
- Run history stored in SQLite, so every model can be reused later
- Single-record and batch (CSV) predictions
- SHAP waterfall explanations for tabular predictions
- One-click export of a tabular model as a FastAPI app with Dockerfile
- Automatic EDA reports with ydata-profiling
Use it from Python
from easyml import MLTrainer
run = MLTrainer(
task="MLClassification", # or "MLRegression", "NLPTextClassification"
name="churn",
dataset_path="churn.csv",
target_column="churned",
models=["logistic_regression", "random_forest"],
).run()
print(run.run_id, run.performance)
Runs trained from Python appear in the studio's Run History and can be used for predictions there.
Where data is stored
Uploads, trained models, the run database and logs live outside the package, so upgrading never deletes them:
| OS | Default location |
|---|---|
| Windows | %LOCALAPPDATA%\easy-ml |
| macOS | ~/Library/Application Support/easy-ml |
| Linux | ~/.local/share/easy-ml |
Set the EASYML_DATA_DIR environment variable to use another folder. Settings → Clear Data in the studio deletes everything stored there.
Security
Easy-ML Studio is a local, single-user tool with no login.
- By default it only listens on
127.0.0.1, so other machines cannot reach it. - Requests from other websites are rejected, so a page you visit cannot drive the studio.
- Only use
--host 0.0.0.0on a network you trust: anyone who can reach the port can use the studio and its data.
Docker
docker compose up --build
The image targets base, ml, nlp, cv and full (default) select which extras are installed. Data is kept in the easyml-data volume.
Documentation
Development
git clone https://github.com/Yatrik07/easy-ml.git
cd easy-ml
python -m venv venv
venv\Scripts\activate # Windows; use `source venv/bin/activate` on macOS/Linux
pip install -e ".[all,dev]"
pytest
easy-ml
License
Apache License 2.0
Metadata
Release files for easy-ml-studio 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| easy_ml_studio-0.4.0.tar.gz | 456.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| easy_ml_studio-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 923.7 kB
Release files / easy_ml_studio-0.4.0.tar.gz
| Download URL | easy_ml_studio-0.4.0.tar.gz |
|---|---|
| Size | 456.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
45c09b3b405655979f615d513587ccdc7cb5b404dda901a195917bf954fd2663
|
|
BLAKE2b-256 checksum How to use checksums |
430b867f8ce7c9712aecf53452eccccb4e12e44860f216b4fc028aac6cf7b9c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency logRelease files / easy_ml_studio-0.4.0-py3-none-any.whl
| Download URL | easy_ml_studio-0.4.0-py3-none-any.whl |
|---|---|
| Size | 466.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a1fbab4ea70fd692c750c994ff3d5e0d526ebc1a1a861f5d1790e1033a2973b8
|
|
BLAKE2b-256 checksum How to use checksums |
2d8d64381fd15beac2111a8188516667f65beb9e70297288a096b58f031c4fc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 14, 2026.
Transparency log