This post shares the details of the latest changes to the Azure Developer CLI (azd
) in releases 1.16.0, 1.16.1, and 1.17.0. We invite you to join our June release discussion on GitHub with questions and comments.
This month’s release has new features, bug fixes, new docs, and a batch of new templates. Before we dive in, we have an opportunity for you to shape the future of Terraform and azd
with this brief (we promise) survey. The community wants more Terraform support (currently in beta)–and we heard you! Thank you for being vocal about what is important to you.
Ok, let’s get into it. Here’s what’s new with azd
this month.
First, we updated our main azd
menu to bring a cleaner organization to azd
features and how to use them, as well as creating sections for the beta and alpha commands that you can start experimenting with in your project.
New features
Extensions
Did you see the new alpha feature in the menu? The ability to use and build extensions are the newest alpha feature. Extensions have the potential to bring developer tools closer to working with the azd
CLI in inner workflow. This new feature demonstrates the potential to customize azd
to the specific needs of your dev workflow.
We have several extensions in the works and today you can try the experience of building an extension with the developer extension.
# Enable the `azd` extensions alpha feature
azd config set alpha.extensions on
# Install the `azd` developer extension
azd extension install microsoft.azd.extensions
Check out the documentation here:
- Azure Developer CLI extensions overview – An overview of the extension system for
azd
, explaining how extensions enhance functionality and enable custom commands. - Quickstart: Create and use an Azure Developer CLI extension – A step-by-step guide to creating your first
azd
extension and integrating it with your workflow.
Compose
We moved the compose feature azd add
to beta for new projects (greenfield).
- [5242] Promote
azd add
and composability features to Beta.- Remove
alpha.compose
alpha feature. - Use
azd add
to add Azure components to your project.azd add
doesn’t currently support Aspire projects or most azd templates. - Use
azd show <resource name>
orazd show <Azure resource ID>
to view details about a specific resource.
- Remove
As part of moving compose to beta, we’re also promoting the azd infra generate
command to beta (renamed from azd infra synth
).
- [5260] Rename
azd infra synth
toazd infra generate
(azd infra gen
for short) and promote to Beta.- Remove
alpha.infraSynth
alpha feature. azd infra synth
will continue to work as an alias ofazd infra generate
, but users are encouraged to use the new command names asazd infra synth
may be removed in a future release.
- Remove
Other features
- [5173] Support for Azure App Service. The
azd show
command now includes resource information for Azure App Service deployments. - [5158] Configure Azure AI Foundry hub to use identity-based storage access. This improvement enhances security by using managed identities for storage access in Azure AI Foundry hub compose scenarios.
- [5143], [5183], [5185] Update azd pipeline config. Auto-detect required variables and secrets from infrastructure provider parameters.
- [5190] Interactive controls for GitHub Actions. Manage existing GitHub Actions variables and secrets during azd pipeline configuration.
- [5155] Nested extension namespaces. Adds support for organizing extensions in hierarchical namespaces.
- [5249] Add support for deploying a single service in .NET Aspire projects via vs-server.
- [5157] Update
azd add
integration with AI Foundry to use simplified 1RP setup with all models under a single AI Services account. - [5214] Add Linux to Homebrew formulae. Thanks @heaths for the contribution!
- [5204] Add login guard middleware to autoprompt for user login in key commands if unauthenticated.
- [5248]
azd pipeline config
support for configuring CI/CD using Managed Identities. - [5200] Update Bicep param prompting to support a default selected option, allowing azd to autoselect it with
--no-prompt
.
Breaking changes
- [5242], [5260] When initializing from app code or minimal project, the
infra/
folder is no longer generated. azd now manages infrastructure in-memory by default, but you can still generate IaC to disk to manually manage your infrastructure usingazd infra generate
(orazd infra gen
for short). - [5242] When initializing from app code or minimal project, environment initialization is now deferred to provision time (for example,
azd up
), unless the--environment <env name>
flag is passed to theazd init
command or theAZURE_ENV_NAME
environment variable is set. - [5157] AI Services models added through
azd add
require an updated version of the Azure AI Foundry SDK client library that supports project endpoints (AZURE_AI_PROJECT_ENDPOINT=https://<account-name>.services.ai.azure.com/api/projects/<project-name>
) instead of project connection strings (AZURE_AI_PROJECT_CONNECTION_STRING=eastus.api.azureml.ms;<subscription id>;<resource group>;<project name>
).
Bugs fixed
- [5176] Resource addition improvements. Prevent same resource being added under ‘uses’ multiple times with
azd add
. - [5176] Resource addition improvements. Fix
azd add
preview for MySQL and Postgres with other UX improvements. - [5192] Bicep generation fix. Fix Bicep generation for compose projects with implicit Key Vault dependency.
- [5198] Error message improvements. Fixes error messages surfaced to users that contain internal implementation details.
- [5187] Improve the UX of
azd init
by displaying neutral message when user declines initializing in a directory that isn’t empty. - [5255] Fix vs-server crash when telemetry is disabled.
- [5199] Avoid unnecessary Azure Container Registry (ACR) login for Aspire projects using only public images.
- [5246] Remove explicit Azure Container Apps (ACA) Environment Contributor role assignment for Aspire projects. Thanks @eerhardt for the contribution!
Other changes
- [5194] Improved help text organization. Reorganize azd help text with updated command sections (Getting started, Azure resources, Settings, Beta, Alpha, Extensions).
- [5189] Environment name clarity. Clarify in environment prompt that the name must be unique.
- [5187] Better template initialization. Improve the confirmation when declining to initialize template a directory that isn’t empty.
- [5159] Aspire detection message update. Update Aspire detection message to not specifically mention ACA.
- [5138] Bicep CLI update. Update Bicep CLI to v0.35.1.
- [5261] Update dependencies to mitigate CVE-2025-30204.
- [5245] Update Bicep CLI to v0.36.1.
- [5212] Update changelog casing in developer extension release pipelines.
- [5209] Deprecate internal registry extension in favor of azd developer extension.
New docs
We published several new docs on Microsoft Learn to help you get the most out of the Azure Developer CLI:
New:
- Explore the Azure Developer CLI initialization workflows – A guide to paths to initialize a project with
azd init
: start with existing code, select a template, or create a minimal project. Learn how each workflow helps prepare your application for Azure deployment. - Azure Developer CLI extensions overview – An overview of the extension system for
azd
, explaining how extensions enhance functionality and enable custom commands. - Quickstart: Create and use an Azure Developer CLI extension – A step-by-step guide to creating your first
azd
extension and integrating it with your workflow.
Updated:
- CI/CD pipeline overview – Refreshed information on automating deployment with CI/CD pipelines using
azd pipeline config
. - Configure a GitHub Actions pipeline – Updated guidance for setting up GitHub Actions pipelines with
azd
. - Configure an Azure DevOps pipeline – Revised instructions for integrating
azd
with Azure DevOps pipelines. - Create a custom pipeline definition file – New information on creating custom pipeline templates for your specific needs.
- Advanced pipeline features – How to use advanced pipeline capabilities with
azd
.
New templates
In addition to a batch of new templates published in May, we also added a new tag for “Model Context Protocol (MCP)” labeled as MCP
. The new MCP
tag was applied to several existing templates. Now it’s easier to see the subset of templates that are MCP server examples by selecting the MCP
tag.
New templates this month include:
- Azure VM Win2022 as ADDS Domain Controller secured by Bastion authored by Peter De Tender. This template deploys an Azure Bastion Host Service, allowing secured connectivity to a Windows Server 2022 running as Active Directory Domain Controller, and then is deployed through DSC VM Extensions. An internal DNS domain gets created, but no other OUs or User accounts. You’re prompted for administrative credentials during the azd setup. [PR #559]
- SQL Server 2019 AlwaysOn Cluster with ADDS VM and Management VM, secured by Bastion authored by Peter De Tender. This template deploys a SQL Server 2019 AlwaysOn Cluster, together with the required Active Directory Domain Controller VM, a remote Management VM Host, and it’s protected by Bastion Host. You’re prompted for administrative credentials during the azd setup. [PR #559]
- AI-Powered Code Snippet Manager with Azure Functions and MCP authored by Govind Kamtamneni. This template builds a modern code snippet management system using an MCP server built on Azure Functions with bindings to Cosmos DB DiskANN vector search and AI Agents Service for deep wiki and code style generation. This solution enables intelligent code snippet discovery and reuse through GitHub Copilot integration. [PR #557]
- Vite + Lit AI Chat UI Starter authored by Julia Muiruri. This template provides a ready-to-integrate chat interface using Vite and Lit for AI-powered conversations. [PR #560]
- .NET OpenAI MCP Agent authored by Justin Yoo. This template is an MCP agent app written in .NET, using Azure OpenAI, with a remote MCP server written in TypeScript. [PR #558]
- GPT-RAG: Enterprise GenAI Chat Accelerator authored by Azure Content Team. This template offers an architecture tailored for enterprise-grade deployment of GenAI Solutions. It ensures grounded responses and is built on zero-trust security and responsible AI, ensuring availability, scalability, and auditability. Ideal for organizations transitioning from exploration and PoC stages to full-scale production and MVPs. [PR #561]
Thank you to the contributors who added enhancements, features, and new templates. We’re grateful for your contributions!
- Heath Stewart
- Eric Erhardt
- Peter De Tender
- Govind Kamtamneni
- Julia Muiruri
- Justin Yoo
- Paulo Lacerda
- Gonzalo Becerra
Do you have an azd
template you’d like to share with the rest of the community? You can learn how to with our contributor guide.
New workshop
At Microsoft Build last month, we held a workshop demonstrating how to use azd
and GitHub Copilot for Azure to build an application with AI Search and AI Chat, and deploy it to Azure Container Apps.
If you want to go through the tutorial, we made it available for anyone to try.
New to azd
?
Welcome! You can use azd from:
- Your terminal of choice on Windows, Linux, or macOS.
- Visual Studio Code or GitHub Codespaces by downloading the extension from the Marketplace, or installing it directly from the extension view (
Ctrl
+Shift
+X
for Windows orCmd
+Shift
+X
for macOS) in Visual Studio Code. - Visual Studio by enabling the preview feature flag.
Learn more about the Azure Developer CLI from our official documentation. If you run into any problems or have suggestions, file an issue or start a discussion in the Azure Developer CLI repository. You can also reference our troubleshooting documentation.
0 comments
Be the first to start the discussion.