Releases: Azure/azure-functions-core-tools
v5.0.0-preview.2
Azure Functions CLI
What's changed since preview.1
- Fix func run failing to resolve installed prerelease worker workloads against built-in profile ranges (e.g. node [3.13.0] now accepts 3.13.0-preview.1). (#5286)
New to v5?
This is a preview of the v5 CLI rebuild. See the v5.0.0-preview.1 release notes for the full overview, or jump in below.
⚠️ Preview. Not production-ready, not at v4 feature parity.
Install
PowerShell (Windows, macOS, Linux):
iex "& { $(irm https://aka.ms/func-cli/install.ps1) } -Prerelease"Bash (macOS, Linux):
curl -sSL https://aka.ms/func-cli/install.sh | bash -s -- --prereleaseYou maybe need to run with
-Force(pwsh) |--force(bash) if you are upgrading.
Getting started
The CLI ships with just the core commands. Before you can create or run a Functions app, you need to install the workloads for your stack. The easiest way to do that is func setup.
1. Set up your machine
Run func setup on its own to get an interactive multi-select prompt for the stacks you want:
func setupPrefer non-interactive? Pass the stack directly with --features:
func setup --features dotnet # .NET
func setup --features node # Node.js
func setup --features python # Python
func setup --features go # Go2. Create a project
func quickstart # complete sample app
# or
func init # initalize an empty projectAdd individual Function templates via
func new
3. Run it locally
func runFeedback
File issues at https://github.com/Azure/azure-functions-core-tools/issues and tag with v5.
v5.0.0-preview.1
Azure Functions CLI
⚠️ Preview release. This is the first public preview of the Azure Functions CLI. It is not production-ready and is not at feature parity with Core Tools (v4). Expect breaking changes before GA. For stable workflows, keep using Core Tools.
This release is a ground-up rebuild designed around a small core func binary plus on-demand workloads (host, language stacks, templates, extension bundle).
What's new in v5
- New architecture. Small core binary built on System.CommandLine, Spectre.Console, and .NET 10. The Functions host, language stacks, templates, and the extension bundle ship as separate workloads installed on demand.
- Per-stack workloads. Install only what you need:
dotnet,node,python, orgo(more coming soon). - Decoupled host. The Functions host is no longer baked into the CLI. It's a workload of its own, so you can install, update, or pin host versions independently of the CLI version, and run multiple host versions side by side.
- Profiles. Pin the host (and other workload versions) to match a specific Azure Functions environment, so your local install lines up with what Azure is running.
- Interactive
func rundashboard. When attached to a TTY,func run(aliasfunc start) renders a live dashboard: a sticky header showing the host status and list - Rebranded. The product is now Azure Functions CLI. The legacy "Core Tools" name is being phased out in v5.
Install
Because this is a preview, you must opt in to prereleases when installing.
PowerShell (Windows, macOS, Linux):
iex "& { $(irm https://aka.ms/func-cli/install.ps1) } -Prerelease"Bash (macOS, Linux):
curl -sSL https://aka.ms/func-cli/install.sh | bash -s -- --prereleaseYou maybe need to run with
-Force(pwsh) |--force(bash) if you are upgrading.
Both scripts auto-detect your OS and architecture, download this release from GitHub, and install to ~/.azure-functions. The install directory is added to your PATH automatically (run source ~/.bashrc or open a new shell on Linux/macOS to pick it up).
Getting started
The CLI ships with just the core commands. Before you can create or run a Functions app, you need to install the workloads for your stack. The easiest way to do that is func setup.
1. Set up your machine
Run func setup on its own to get an interactive multi-select prompt for the stacks you want:
func setupPrefer non-interactive? Pass the stack directly with --features:
func setup --features dotnet # .NET
func setup --features node # Node.js
func setup --features python # Python
func setup --features go # GoOr set up multiple stacks at once (comma-separated or repeated):
func setup --features node,pythonEither way, func setup installs the Functions host, the worker for each selected stack, templates, and the extension bundle.
2. Create a project
Two scaffolding entry points, depending on what you want:
func quickstart: scaffolds a complete, ready-to-run sample app (trigger code, host config, optional IaC) from a curated catalog. Best when you want a working starting point.func init+func new: build a project from scratch.func initcreates an empty project;func newis the template engine for adding individual functions by trigger (HTTP, Timer, Blob, Queue, Cosmos DB, Durable, etc.).
func quickstart # complete sample app
# or
func init # initalize an empty projectAdd individual Function templates via
func new
3. Run it locally
func runFeedback
File issues at https://github.com/Azure/azure-functions-core-tools/issues and tag with v5.
4.12.0
Azure Functions CLI 4.12.0
Host Version
- Host Runtime Version: 4.1048.200
- In-Proc CLI:
- CLI Version: 4.5.0
- Host Runtime Version: 4.48.100 (includes 4.848.100, 4.648.100)
Changes
- Fix
HttpsProxyAgent is not a constructorerror ininstall.jswhen installing behind a proxy (https-proxy-agent v9 requires a named import). - Remove
azure-functions-core-toolsfrom thedevDependenciesof generated function app templates (package-js.json,package-js-v4.json,package-ts.json,package-ts-v4.json). Users get the CLI from their system install; pulling it in again vianpm installdoubled disk usage and made every project's install fragile to Core Tools postinstall regressions.
Preview Feature
4.11.0
Azure Functions CLI 4.11.0
Host Version
- Host Runtime Version: 4.1048.200
- In-Proc CLI:
- CLI Version: 4.5.0
- Host Runtime Version: 4.48.100 (includes 4.848.100, 4.648.100)
Changes
- Fix
func packthrowing crypticUnsupported runtime: Nonewhenlocal.settings.jsonis absent andFUNCTIONS_WORKER_RUNTIMEis not set (#4829) - Mark Node.js 24 as GA in stacks.json (add Flex Consumption SKU) (#4867)
- Surface SSL/TLS certificate errors clearly when SSL inspection proxies intercept connections (#4857)
- Fix
func kubernetes deployrace condition wherekubectl rollout statusran before the Deployment was registered (#4919) - Fix
func kubernetes deleteto honor--no-dockerinstead of failing on registry auth (#4919) - Add
McpPromptTriggertemplate for dotnet-isolatedfunc new(#4891) - Fix func azure storage fetch-connection-string failing with "Cannot find storage account" due to ARM eventual consistency (#4884)
- Remove gozip binaries from the CLI (#4959)
4.10.0
Azure Functions CLI 4.10.0
Host Version
- Host Runtime Version: 4.1048.200
- In-Proc CLI:
- CLI Version: 4.5.0
- Host Runtime Version: 4.48.100 (includes 4.848.100, 4.648.100)
Changes
4.9.0
Azure Functions CLI 4.9.0
Host Version
- Host Runtime Version: 4.1047.100
- In-Proc CLI:
- CLI Version: 4.4.0
- Host Runtime Version: 4.46.100 (includes 4.846.100, 4.646.100)
Changes
- Fix
AzureFunctionsJobHost__logging__logLevel__Functionoverride fromlocal.settings.jsonbeing ignored due to the host pre-setting the environment variable before user configuration was loaded (#4815) - Fix
ArgumentNullException: Value cannot be null. (Parameter 'input')duringfunc azure functionapp publishfor non-.NET runtimes (PowerShell, Node.js, Python, Java) on Windows function apps (#4822)
4.8.0
Azure Functions CLI 4.8.0
Host Version
- Host Runtime Version: 4.1046.100
- In-Proc CLI:
- CLI Version: 4.4.0
- Host Runtime Version: 4.46.100 (includes 4.846.100, 4.646.100)
Breaking Changes
- Python 3.7 and 3.8 are no longer supported. These versions have reached end-of-life. Please upgrade to Python 3.9 or later to continue using Azure Functions Core Tools. (#4756)
Changes
- Added end-of-life warnings for all runtime versions during
func azure functionapp publish. (#4760) - Reduced console output noise by moving informational messages to verbose logging. (#4768)
- Fixed an issue where creating an MCP Tool trigger function would fail with "Unknown template 'McpToolTrigger'" error. (#4768)
- Added new
func bundlescommands for managing extension bundles (#4769)func bundles download- Download the extension bundle configured in host.json with optional--forceflag to re-downloadfunc bundles list- List all downloaded extension bundlesfunc bundles path- Get the path to the downloaded extension bundlefunc bundles add- Add extension bundle configuration to host.json with--channelflag to select GA (default), Preview, or Experimental bundles- Support for custom bundle download paths via
AzureFunctionsJobHost__extensionBundle__downloadPathenvironment variable
- Added
--bundles-channeloption tofunc initcommand to specify extension bundle channel (GA, Preview, or Experimental) during project initialization - Added global
--offlinevariable to run in offline mode (#4772) - Fallback to cached bundles if there is no network connection during
func start(#4772) - Enable offline support for
func initandfunc new(#4775) - Improved error message for
func azure functionapp publishwhen the connection fails due to networking restrictions, with a link to networking options documentation. (#4807)
4.7.0
Azure Functions CLI 4.7.0
Host Version
- Host Runtime Version: 4.1045.200
- In-Proc CLI:
- CLI Version: 4.3.0
- Host Runtime Version: 4.44.100 (includes 4.844.100, 4.644.100)
Changes
- Added end-of-life warnings for all runtime versions during
func azure functionapp publish. (#4760) - Reduced console output noise by moving informational messages to verbose logging. (#4768)
- Fixed an issue where creating an MCP Tool trigger function would fail with "Unknown template 'McpToolTrigger'" error. (#4768)
- Added new
func bundlescommands for managing extension bundles (#4769)func bundles download- Download the extension bundle configured in host.json with optional--forceflag to re-downloadfunc bundles list- List all downloaded extension bundlesfunc bundles path- Get the path to the downloaded extension bundlefunc bundles add- Add extension bundle configuration to host.json with--channelflag to select GA (default), Preview, or Experimental bundles- Support for custom bundle download paths via
AzureFunctionsJobHost__extensionBundle__downloadPathenvironment variable
- Added
--bundles-channeloption tofunc initcommand to specify extension bundle channel (GA, Preview, or Experimental) during project initialization
Notes
- APT is still in progress.
4.6.0
Azure Functions CLI 4.6.0
Host Version
- Host Runtime Version: 4.1045.200
- In-Proc CLI:
- CLI Version: 4.3.0
- Host Runtime Version: 4.44.100 (includes 4.844.100, 4.644.100)
Changes
- Fix .gitignore to allow PowerShell module bin folders (#4574)
- Refactor to use msbuild for determining .NET target framework & add support multiple TFMs (#4715)
- When using
func init --docker-onlyon a .NET project with multiple target frameworks, the CLI will now
prompt the user to select which target framework to use for the Dockerfile.
- When using
- Enhanced dotnet installation discovery by adopting the same
Muxerlogic used by the .NET SDK itself (#4732) - Update .NET templates package version to 4.0.5337 (#4728)
- Fix
func pack --build-native-depsfailure on Windows for Python 3.13+ (#4742) - Add deprecation warning for extension bundles during function app publish (#4700)
- Update the TypeScript project template to improve interoperability (#4739)
- Upgrade
typescriptfrom^4.0.0to^5.0.0 - Add
"esModuleInterop": trueoption totsconfig.json
- Upgrade
- Cleaned up
func --helpoutput and fixed validation errors when using the--helpflag for specific commands (#4748) - Improved
func init --helpoutput to better display options for each worker runtime (#4748) - Fix F# project & template initialization via
func init | new(#4749) - Log a warning if remote build is used for Python 3.14 flex app (#4755)
4.5.0
Azure Functions CLI 4.5.0
Host Version
- Host Runtime Version: 4.1044.400
- In-Proc CLI:
- CLI Version: 4.3.0
- Host Runtime Version: 4.44.100 (includes 4.844.100, 4.644.100)
Changes
- Add updated Durable .NET templates (#4692)
- Adding the MCP Tool Trigger Templates for the Node/Typescript (#4651)
- Set
AzureWebJobsStorageto use the storage emulator by default on all platforms (#4685) - Set
FUNCTIONS_WORKER_RUNTIMEto custom if theEnableMcpCustomHandlerPreviewfeature flag is set (#4703)