We're excited to announce the public preview of the Azure Functions CLI, the next generation of func. It's the same tool you know from Azure Functions Core Tools, rebuilt around a new workload model that makes installing, updating, and running Functions locally faster, smaller, and a lot less fiddly.
Azure Functions Core Tools is becoming the Azure Functions CLI. The command is still func, your projects don't change, and Core Tools v4 keeps shipping.
The CLI is now composed of small, independently versioned pieces: the host, extension bundles, language stacks (python, node, dotnet, go), workers (python-worker, node-worker, ...), and templates (python-templates, node-templates, ...). You install only what you need, and each piece updates on its own cadence.
func setup <feature> installs everything required for your language in a single step:
func setup --features pythonThat gives you the host, bundles, the Python stack and worker, and Python templates, ready to func init and func run.
The new func quickstart command walks you through picking a template, scaffolding a project, and (optionally) generating the infrastructure-as-code to deploy it.
func quickstartPrefer to browse first? func quickstart list shows the catalog, and func quickstart info <id> gives you the details on any template.
This is the big one. Azure Functions runs on multiple SKUs (Flex Consumption, Linux Premium, Windows Consumption, ...), and each ships its own host version on its own cadence. Until now, func start ran whatever host Core Tools happened to bundle, which meant "works locally, breaks in cloud" was a real risk.
The new CLI introduces profiles: named constraint sets that pin the host version, extension bundle range, and feature toggles to match a target environment. Built-in profiles like flex and windows-consumption track the cloud automatically. You can extend them with your own project- or user-level profiles to pin a staging build or test a preview channel.
func run --profile flexLocal now actually matches Flex. Run two profiles side by side to compare behavior before you migrate. Commit a project profile to source control so the whole team gets the same setup. See the profiles guide for the full design.
See the installation guide for the full instructions on Windows, macOS, and Linux.
See the CLI docs for the full complete command reference.
This is a preview, and your feedback shapes what ships. Hit a bug, want a command, or think something's missing? File an issue.