Metaflow: a Python framework for running ML workflows from notebook to cluster
Build, Manage and Deploy AI/ML Systems
At a glance
- What is it?
- Metaflow is Netflix's Apache-2.0 Python framework for building and managing AI and ML systems. It keeps flow definitions in plain Python, adds versioned runs and a client API, and scales the same code from a laptop to cloud compute and production orchestrators.
- Who is it for?
- Adopt Metaflow if your team writes Python and wants one artifact that runs locally, scales to cloud compute, and deploys to a production orchestrator without rewriting the flow. Skip it if your work is a fixed schedule of shell and SQL steps, where a general-purpose orchestrator fits better.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 15 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem Metaflow solves for Python ML teams
A typical ML project starts in a notebook and ends as a scheduled job on a cluster, and the code rarely survives the trip. Local experiments have no versioning, so nobody can say which run produced a model. Scaling means rewriting loops into something a scheduler understands. Metaflow's answer is to keep the flow in Python and let the same definition run locally or remotely.
The README frames it as a framework for scientists and engineers to "build and manage real-life AI and ML systems," covering rapid prototyping in notebooks through to production deployment. The intended user is a data scientist or ML engineer who writes Python and does not want to learn a separate DSL or a YAML workflow format to get to production.
The repository is not archived, and the last push was on 2026-09-08. Releases have been frequent, with 2.19.39 published on 2026-09-02, 2.19.38 on 2026-08-18, and 2.19.37 on 2026-08-11. The project was originally developed at Netflix and is now supported by Outerbounds, which also runs a hosted sandbox mentioned in the README.
How a Metaflow flow is structured and what runs where
A flow is a Python class with a start step, zero or more middle steps, and an end step. Steps are connected with self.next(). The README points to a tutorial that walks through creating and running a first flow, and to a basics page for the mechanics.
What makes the model distinctive is the boundary between the control process and the work. The local process orchestrates the graph and records metadata, while each step can execute on a remote compute environment. The README lists horizontal and vertical scaling in your cloud with CPUs and GPUs, fast data access, foreach loops for embarrassingly parallel work, gang-scheduled distributed compute, failure handling, and checkpointing.
State moves between steps through the artifact store rather than through memory, which is why a step can run on a different machine than its predecessor. The client API documented under metaflow/client is the read side: it lets you inspect runs, versions, and artifacts after the fact instead of digging through log files.
Notebook runs are supported as a first-class path, not a workaround. That matters because the README explicitly describes rapid local prototyping and notebook support as part of the same lifecycle as production deployment.
Installing Metaflow and running a first flow
Install from PyPI into the Python environment you intend to use. The README gives this as the primary path:
pip install metaflowA conda-forge package exists as an alternative, and the README gives it as:
conda install -c conda-forge metaflowOnce installed, the README directs you to the getting-started tutorial, which walks through creating and running your first flow step by step. The README does not print a full flow definition, so the shape of one has to come from the tutorial rather than from this page. What the README does state is that the tutorial covers creating and running the flow.
After a run completes, the client API is how you inspect what happened, and the README points to a visualizing-results page for the UI side. If you want to try the framework without installing anything, the README mentions the Metaflow sandbox at outbounds.com/sandbox as a way to start exploring in seconds.
The README is explicit that the main benefits appear only after infrastructure is configured. Scaling to external compute clusters and deploying to production orchestrators both require following the infrastructure guide; a laptop install gives you the local experience and the metadata model, not the cluster.
Where Metaflow stops and infrastructure work begins
The most honest limitation is stated by the project itself. While you can get started on a laptop, the README says the main benefits lie in scaling out to external compute clusters and deploying to production-grade workflow orchestrators, and that benefiting from these features requires configuring Metaflow and the infrastructure behind it. There is no single command that turns a laptop install into a production setup.
That means the framework is the easy part and the cloud configuration is the real project. Remote task execution, data access, and production deployment each have their own documentation page, which is a signal about how much surface area is involved.
A second boundary is language. Metaflow is a Python framework first. The repository does contain an R/ directory, so R users are not ignored entirely, but the README's examples, tutorial, and API reference are Python. Teams whose modeling work lives in R or Scala will be working against the grain.
Finally, this is a workflow and orchestration framework, not a model registry or a serving stack. The README talks about managing models and artifacts and about versioned runs, but nothing in it describes an inference server or a model marketplace. If that is what you need, Metaflow is the wrong layer.
Metaflow versus Airflow and MLflow
The comparison people search for most is Metaflow against Airflow. The difference is where the workflow is defined. Airflow workflows are DAGs of tasks written in Python but expressed as an orchestration graph, with scheduling as the central concern. Metaflow flows are Python programs whose steps carry their own data and execution environment, with the developer's iteration loop as the central concern. The README's emphasis on rapid local prototyping, notebook runs, and running the same flow locally before deploying it reflects that priority.
Against MLflow the split is different again. MLflow is primarily an experiment-tracking and model-registry layer that you integrate into existing training code. Metaflow is the execution structure itself: the flow defines the steps, the artifact store carries state between them, and the versioning comes from the run model rather than from explicit logging calls. A team already committed to MLflow for tracking can still use Metaflow for execution, but the two overlap in what they record about a run.
Neither comparison is settled by a feature list. The practical question is whether your team's bottleneck is scheduling heterogeneous tasks (Airflow's territory) or iterating on a single Python pipeline that must move from laptop to cluster (Metaflow's).
Licence, maintenance and upgrade cost
Metaflow is licensed under Apache-2.0, and setup.py declares "Apache Software License" with the "License :: OSI Approved :: Apache Software License" classifier. Apache-2.0 is permissive and includes a patent grant, which is generally friendlier for commercial adoption than a copyleft licence. This is a description of the licence text, not legal advice; if your organization has specific obligations around attribution or notices, have counsel review them.
The repository is not archived and the last push was on 2026-09-08. Release cadence over the visible window is roughly every one to two weeks, which means upgrades arrive often. That is a cost as well as a benefit: pinning a version and reading the release notes between upgrades is cheaper than tracking master.
setup.py reads the version from metaflow/version.py and declares support for Python 3.6 through 3.11 in its classifiers. If your interpreter is outside that range, check what actually resolves before assuming compatibility. The setup.py also packages devtools files into share/metaflow, which is worth knowing if you build your own distributions and wonder why devtools show up in the installed tree.
Editorial conclusion
Adopt Metaflow if your team writes Python and wants one artifact that runs locally, scales to cloud compute, and deploys to a production orchestrator without rewriting the flow. Skip it if your work is a fixed schedule of shell and SQL steps, where a general-purpose orchestrator fits better. Before committing, verify which version pip resolves for your Python interpreter, and check that the dependency and deployment paths for your target cloud are documented for that version.
Frequently asked questions
What is Metaflow used for?
Metaflow is a Python framework for building and managing AI and ML systems, from rapid prototyping in notebooks to production deployment. The README describes scaling to cloud compute with CPUs and GPUs, running parallel and gang-scheduled workloads, and deploying to production orchestrators with one click.
What is Netflix Metaflow?
Metaflow was originally developed at Netflix and is now supported by Outerbounds. The README states that at Netflix it supports over 3000 AI and ML projects and executes hundreds of millions of data-intensive compute jobs.
What are the key differences between Metaflow and MLflow?
MLflow centers on experiment tracking and a model registry that you add to existing training code. Metaflow is the execution structure itself, where the flow defines steps and versioning comes from the run model and artifact store. The two overlap in what they record about a run.
How do I install Metaflow?
The README gives pip install metaflow as the primary path from PyPI, with conda install -c conda-forge metaflow as an alternative. After installing, the README points to the getting-started tutorial for creating and running a first flow.
Is Metaflow open source and free?
Metaflow is open source under the Apache-2.0 licence, and setup.py declares the Apache Software License classifier. The README also mentions a hosted sandbox at outbounds.com/sandbox for exploring without a local install.
What is a Metaflow pipeline?
A pipeline is a flow: a Python class with a start step, middle steps connected by self.next(), and an end step. The same flow definition can run locally during development and then be scaled to remote compute or deployed to a production orchestrator.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/netflix-metaflow)