Prompt flow is being retired on April 20, 2027: what the toolkit does and what to move to
Build high-quality LLM apps - from prototyping, testing to production deployment and monitoring.
At a glance
- What is it?
- Microsoft's prompt flow is an MIT licensed Python toolkit and pf CLI for building, testing and evaluating LLM apps as YAML defined flows. Microsoft now says not to start new projects on it, so this analysis covers how it works for teams that still run it and what the migration path looks like.
- Who is it for?
- Do not start a new LLM application on prompt flow: Microsoft has said it is no longer recommended for new development, its runtime images get no security updates, and the hosted and VS Code experiences end on April 20, 2027. Teams already running flows should keep using it only long enough to migrate, starting with the Microsoft Agent Framework guide and the code samples in migration-guide/PromptFlow-to-MAF.
- Can I use it commercially?
- Yes. MIT 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 3 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 November 14, 2026, and from our analysis. They are not legal advice.
Star history
- microsoft/promptflow11,265 ★ · +29
| Repository | 2026-09-10 | 2026-11-14 |
|---|---|---|
| microsoft/promptflow | 11.2k | 11.3k |
29 Stars in the last 65 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
Microsoft has set April 20, 2027 as the end date
The first thing on the project page is a retirement notice. Prompt flow in Microsoft Foundry and Azure Machine Learning will be retired on April 20, 2027, and Microsoft states that it is no longer recommended for new development. After that date, the web authoring experience in Foundry and Azure Machine Learning, the VS Code extensions and the related container images will no longer be supported or available.
That changes how to read everything else about the project. The features below still exist and the CLI still runs, but any time spent learning prompt flow now has a fixed expiry. If you are evaluating LLM tooling for a new application, this is the deciding fact: prompt flow is not a candidate. If you already run flows in production, the retirement date is your migration deadline, and the work has to be scheduled before it, not after.
Runtime container images no longer get security updates
The retirement is not only a future event. Prompt flow container images have already stopped receiving updates, including security and package updates. The notice names the affected runtime images: promptflow-runtime, promptflow-runtime-stable and promptflow-python.
The consequence for operators is direct. A deployment built on one of those images will carry whatever vulnerabilities are found in its base system or Python packages from now on, with no patched image coming from Microsoft. If you serve flows from these images today, you are already running unpatched infrastructure, and that risk grows every month until you move. Inventory which services use these images first, since they are the part of a prompt flow estate that is aging fastest, and treat them as the first workloads to migrate.
The last PyPI release is 1.17.1 from January 2025
The repository itself is not archived, and its last push was on 2026-10-31. The release history tells a different story. The most recent tagged releases are promptflow 1.17.1 on 2025-01-09, 1.17.0 on 2025-01-06 and 1.16.2 on 2024-11-25. Nothing newer has been tagged since January 2025.
So commits are still landing, including the migration guide, but the package you install from PyPI has not moved in a long time. Fixes merged to main after 1.17.1 do not reach a pip install unless you build from source. Combined with the retirement notice, this means you should not expect new features or new model support in the published packages, and you should pin the version you run rather than assume an upgrade will arrive.
Two pip packages and a narrow Python range
For local work the project asks for a Python environment and recommends python>=3.9, <=3.11. The core library and the built in tools are separate packages, installed together:
pip install promptflow promptflow-toolsThe recommended range stops at 3.11. On a newer interpreter you are outside what the project recommends, and given that releases stopped in early 2025, there is no sign that newer Python versions were added later. Keep a dedicated 3.9 to 3.11 environment for prompt flow work. The alternative entry point is a GitHub Codespaces quickstart that opens the repository in a pre-built development environment, which avoids the local Python question but ties you to Codespaces. A .devcontainer/ directory at the top level backs that setup.
A flow is a folder with a flow.dag.yaml at its center
Prompt flow models an LLM app as an executable flow that links LLMs, prompts, Python code and other tools. The pf CLI scaffolds one from a template. This command creates a my_chatbot folder and generates the required files in it:
pf flow init --flow ./my_chatbot --type chatInside that folder, flow.dag.yaml describes the flow: its inputs and outputs, its nodes, the connection each node uses and the LLM model. In the chat template, the chat node refers to a connection named open_ai_connection through its connection field, and to the gpt-35-turbo model through its deployment_name field. That field names either the OpenAI model or the Azure OpenAI deployment resource, so the same flow file can point at either service. You then talk to the flow from the terminal, ending the session with Ctrl + C:
pf flow test --flow ./my_chatbot --interactiveConnections keep API keys out of the flow file
Credentials do not live in flow.dag.yaml. They go into a named connection that the flow references. The chat template ships openai.yaml and azure_openai.yaml files for this, and the --set option overrides values such as the key and endpoint at creation time so you do not have to edit the YAML. For OpenAI:
pf connection create --file ./my_chatbot/openai.yaml --set api_key=<your_api_key> --name open_ai_connectionFor Azure OpenAI, an api_base is passed as well:
pf connection create --file ./my_chatbot/azure_openai.yaml --set api_key=<your_api_key> api_base=<your_api_base> --name open_ai_connectionBoth commands create a connection named open_ai_connection, which is the name the chat node expects. If you change the name here, you have to change the connection field in flow.dag.yaml to match, or the node will reference a connection that does not exist.
Evaluation and the examples tree are what you would be giving up
The part of prompt flow that set it apart was the path from prototype to evaluation. The project pitches evaluating a flow's quality and performance against larger datasets, wiring that testing and evaluation into a CI/CD system, and tracing interactions with LLMs while debugging. A 15-minute tutorial walks through prompt tuning, batch testing and evaluation, and a Chat with PDF tutorial covers an end-to-end application with metrics.
The examples/ directory holds the rest: flows/, flex-flows/, prompty/, tools/, connections/ and tutorials/, plus a setup.sh and requirements files. There is also a benchmark/ directory at the top level. When you migrate, list which of these patterns your team actually uses, especially batch evaluation in CI, and confirm that your replacement covers each one before you switch off the old pipeline.
The migration path points to Microsoft Agent Framework
Microsoft names Microsoft Agent Framework as the supported alternative and asks teams to move existing prompt flow applications and deployments there before April 20, 2027. Two resources come with that advice: a migration guide on Microsoft Learn under the Foundry classic documentation, and code samples in this repository under migration-guide/PromptFlow-to-MAF.
The VS Code extension, a flow designer installed from the Visual Studio Marketplace, is covered by the same retirement, so a team that edits flows visually loses that tool on the same date. The cloud version of prompt flow in Azure AI, which the project once described as optional but highly recommended for collaboration, is also included. Plan the migration as a move of authoring, testing and serving together, since none of the three prompt flow surfaces will remain after the cutoff.
Editorial conclusion
Do not start a new LLM application on prompt flow: Microsoft has said it is no longer recommended for new development, its runtime images get no security updates, and the hosted and VS Code experiences end on April 20, 2027. Teams already running flows should keep using it only long enough to migrate, starting with the Microsoft Agent Framework guide and the code samples in migration-guide/PromptFlow-to-MAF. Before planning that work, check which of your deployments depend on promptflow-runtime, promptflow-runtime-stable or promptflow-python images, because those are already frozen.
Frequently asked questions
What is prompt flow used for?
Prompt flow is a Microsoft toolkit for developing LLM applications as executable flows that link LLMs, prompts, Python code and tools, then testing, evaluating and deploying them. Microsoft no longer recommends it for new development and retires it on April 20, 2027.
How do I create a prompt flow?
After pip install promptflow promptflow-tools, run pf flow init --flow ./my_chatbot --type chat to scaffold a chat flow with a flow.dag.yaml file. Create a connection with pf connection create, then test it with pf flow test --flow ./my_chatbot --interactive.
Is there a prompt flow VS Code extension?
Yes, a flow designer extension is published on the Visual Studio Marketplace as prompt-flow.prompt-flow. It is part of the retirement, and after April 20, 2027 the VS Code extensions will no longer be supported or available.
What are the alternatives to prompt flow?
Microsoft points prompt flow users to Microsoft Agent Framework as the supported alternative. A migration guide is on Microsoft Learn, and code samples are in the repository under migration-guide/PromptFlow-to-MAF.
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/microsoft-promptflow)Star history chart for your README
[](https://hysenlabs.com/projects/microsoft-promptflow)Was this useful?