Welcome to OpenML Flow! This tutorial will guide you through installing the platform on your local machine using Docker, and building your very first visual Machine Learning pipeline.
OpenML Flow is a local-first visual ML IDE. This means all your data, model training, and code execution happen directly on your machine—no cloud servers, no subscription fees.
Using Docker ensures you don't have to install Python, Node.js, or any complex dependencies manually.
If you don't have them already, download and install:
- Docker Desktop (Available for Windows, Mac, and Linux)
- Create a new, empty folder on your computer (e.g.,
openml-flow). - Inside that folder, create a file named
docker-compose.yml. - Open the file in a text editor and paste the following configuration:
services:
backend:
image: loisekk/openml-flow-backend:latest
container_name: openml-flow-backend
ports:
- "3001:3001"
volumes:
# Mount directories, not files. This prevents the Windows mount bug.
- ./uploads:/app/uploads
- ./data:/app/data
environment:
- PYTHONUNBUFFERED=1
frontend:
image: loisekk/openml-flow-frontend:latest
container_name: openml-flow-frontend
ports:
- "8080:80"
depends_on:
- backend-
Open your terminal (or Command Prompt / PowerShell).
-
Navigate to the folder where you saved
docker-compose.yml. -
Run the following command:
docker-compose up -d
(The
-dflag runs it in the background. Docker will now download the images and start the platform). -
Open your web browser and go to: http://localhost:8080
You should see the OpenML Flow login screen! 🎉
- On the login screen, click Register.
- Create a username and password. (Don't worry, this is stored locally on your machine in the
data/openmlpipe.dbfile we set up in Docker. It is not sent to any external servers). - Log in with your new credentials. You will arrive at the Dashboard.
Let's build a simple pipeline that loads a dataset, cleans it, and trains a Random Forest model.
- On the Dashboard, click the orange "+ Create Workflow" button.
- You will be taken to the Studio—an infinite visual canvas.
On the left side, you have the Node Library.
- Click the Data Loading category to expand it.
- Click Load CSV. A node will appear on the canvas.
- Next, expand the Data Cleaning category and click Drop Nulls.
- Expand the Split & Validation category and click Train/Test Split.
- Finally, expand the Models category and click Random Forest.
Click and drag from the small dot (output port) on the right side of a node to the input port on the left side of the next node. Connect them in this order:
Load CSV ➜ Drop Nulls ➜ Train/Test Split ➜ Random Forest
To make our Load CSV node work, we need to give it a dataset.
- Double-click the
Load CSVnode on the canvas. - A floating Node Studio window will open. This is your dedicated IDE for this specific node.
- Click the Parameters tab if you aren't already there.
- Under the UPLOAD LOCAL DATASET section, click Choose File.
- Select any
.csvfile from your computer. - Once it says "Selected: your_file.csv", the upload is complete. The file is now stored securely on your local machine.
- Click the Code tab in the Node Studio. You will see that the Python code has automatically updated to read your specific file!
- Close the Node Studio window using the X in the top right.
The Random Forest node requires the scikit-learn library.
- Double-click the
Random Forestnode to open its Node Studio. - Click the Environment tab.
- Here you will see a list of required packages and whether they are installed. (Note:
scikit-learncomes pre-installed in the Docker image, so it should show a green "Ready" checkmark). - Close the Node Studio.
It's time to run the Python code we just visually generated!
- In the top right corner of the screen, click the orange "Execute Workflow ▶" button.
- Look at the Bottom Panel (specifically the Console tab).
- You will see real-time Python execution logs streaming in, just like a Jupyter Notebook or terminal.
- Look at the nodes on the canvas. You will see their borders glow orange while running, and turn green when they finish successfully!
- If an error occurs (e.g., your CSV has a formatting issue), the node will turn red, and the error message will appear in the console.
OpenML Flow is designed to give you total control over your environment.
Need a library that isn't pre-installed?
- Click the ⚙️ Settings icon in the top navigation bar.
- Ensure you are on the Environment tab.
- In the "Install new package" box, type a package name (e.g.,
xgboost) and click Install. - The backend will securely run
pip install xgboostin your Docker container, and it will immediately appear in your installed packages list!
Want the built-in AI Copilot to help you debug your pipeline?
- Go to Settings ➜ AI Providers.
- Fill out the form with your API Key (e.g., from OpenAI or Groq). Your keys are stored locally in your SQLite database and never exposed to the internet.
- Click Add Provider and set it as Active.
- Now, if you open any node's Node Studio and go to the AI Assistant tab, you can ask it questions about your specific ML pipeline!
When you are done working, you can stop the platform by opening your terminal and running:
docker-compose downYour workflows and datasets are safely saved in your folder. Next time you run docker-compose up -d, everything will be exactly as you left it!
Welcome to OpenML Flow. Happy building! 🚀