Deploying an application to Azure by hand means provisioning resources in the portal, noting their connection strings, configuring environment variables, writing a deployment script, setting up a CI/CD pipeline, and repeating most of that process every time you start a new project or add a new environment. The Azure Developer CLI, known as azd, replaces that sequence with a small set of commands that handle provisioning, deployment, and environment management together instead of as separate concerns you have to coordinate manually.
This post covers what azd actually does, how to use it with a Next.js project, the configuration file that makes everything work, the commands you will use daily, and the significant updates that shipped in 2026, including multi-language hooks in April, the azd tool command group in May, and the extension framework reaching general availability in August.
For the official overview and installation guide: Azure Developer CLI overview on Microsoft Learn
What azd does differently from the Azure CLI
The Azure CLI (az) is a general-purpose interface to Azure's API that gives you a command for every Azure operation without an opinion about how your project is structured or how to coordinate provisioning and deployment together. azd is opinionated. It assumes your project has infrastructure code, application code, and one or more environments, and it provides commands that work across all three at once.
The workflow azd enables is: write your application, define your infrastructure with Bicep or Terraform, describe the mapping between them in azure.yaml, and then use three commands for everything else. azd init to set up the project, azd provision to create Azure resources, and azd deploy to push your code. azd up does the last two in a single step. azd down tears everything down when you're done.
Installation
# macOS
brew tap azure/azd && brew install azd
# Windows (winget)
winget install microsoft.azd
# Linux
curl -fsSL https://aka.ms/install-azd.sh | bash
# Verify
azd version
The current version as of August 2026 is 1.32.0. azd updates frequently with monthly releases, so running azd version after installation is worth doing to confirm you have a current build.
To install azd for the first time or update your installation: Install or update the Azure Developer CLI
The azure.yaml file
The azure.yaml file at the root of your project is what azd reads to understand how your application maps to Azure. A typical file for a Next.js app looks like this:
name: my-nextjs-app
metadata:
template: my-nextjs-app@0.0.1-beta
services:
web:
project: .
language: js
host: appservice
hooks:
preprovision:
shell: sh
run: ./scripts/setup-env.sh
postdeploy:
shell: sh
run: ./scripts/verify-deployment.sh
The services section maps each part of your application to an Azure host. The hooks section runs scripts at specific points in the provisioning and deployment lifecycle. Starting in April 2026, hooks support Python, JavaScript, TypeScript, and .NET alongside the existing Bash and PowerShell options, with automatic dependency management so you don't have to install anything separately.
hooks:
preprovision:
shell: pwsh
run: ./scripts/preflight.ps1
postprovision:
language: python
run: ./scripts/seed-database.py
predeploy:
language: typescript
run: ./scripts/build-check.ts
For the complete azure.yaml schema reference: azure.yaml schema documentation
Core commands
azd init sets up a new project either from a template in the gallery or from your existing codebase:
# Initialize from a template
azd init --template todo-nodejs-mongo
# Initialize from the current directory
azd init
azd provision creates the Azure resources defined in your Bicep or Terraform files without deploying any application code, which is useful when you want to inspect or validate infrastructure separately from your deployment:
azd provision
# Override subscription and location without changing config
azd provision --subscription your-subscription-id --location eastus
The --subscription and --location flags arrived in February 2026 and make it straightforward to provision to different targets per environment without modifying azure.yaml.
azd deploy pushes your application code to the already-provisioned resources:
azd deploy
# Deploy a specific service only
azd deploy --service web
azd up runs provision and deploy together, which is what you will use most of the time, and azd down deletes all resources associated with the current environment:
azd up
azd down
# Delete without confirmation prompt
azd down --force --purge
Environment management
azd manages environments as named collections of configuration values that persist between commands, where each environment stores the Azure subscription, location, and any variables your infrastructure needs:
# Create environments for different stages
azd env new staging
azd env new production
# Switch between environments
azd env select staging
azd up
azd env select production
azd up
# See all environments and their active status
azd env list
# Get all values from the active environment
azd env get-values
Each environment maps to a separate set of Azure resources, so staging and production never share infrastructure even when they come from the same template.
The azd tool command group
One of the more useful additions that shipped in May 2026 is azd tool, a unified command group for discovering, installing, and managing Azure development tools directly from the CLI without hunting for separate install documentation:
# List all available tools with their install status and version
azd tool list
# Show details for a specific tool
azd tool show azure-functions-core-tools
# Install a tool
azd tool install azure-functions-core-tools
# Update a tool
azd tool update azure-functions-core-tools
# Uninstall with a dry run first to see what would be removed
azd tool uninstall azure-functions-core-tools --dry-run
azd tool uninstall azure-functions-core-tools
This replaced the pattern of going to separate documentation pages for each tool and running different package manager commands depending on the operating system. The August 2026 release added guidance for bulk removal and per-agent skill output.
The extension framework
The azd extension framework reached general availability in August 2026 and extensions can now be installed directly from an HTTPS URL without registering a source first:
# Install an extension from the official registry
azd extension install microsoft.azd.extensions.foundry
# Install directly from a URL
azd extension install https://your-server.com/my-extension.tar.gz
# List installed extensions
azd extension list
Microsoft ships two extensions worth knowing. The azd AI agent extension for Microsoft Foundry integrates azd workflows with Foundry projects, and the GitHub Copilot coding agent configuration extension sets up the configuration Copilot needs to understand and work with your azd project. Both are available through the official extension registry.
CI/CD pipeline integration
azd can configure a GitHub Actions or Azure DevOps pipeline for your project with a single command that creates the workflow files, sets up the necessary federated credentials, and configures the repository secrets azd needs to run in CI:
azd pipeline config
Starting in August 2026, federated authentication support for Azure DevOps is documented and supported, replacing the older approach that required managing client secrets manually.
For CI/CD pipeline setup: Explore Azure Developer CLI support for CI/CD pipelines
Templates
The template gallery is the fastest way to get a complete azd-ready project structure without writing Bicep from scratch, where each template includes the azure.yaml, the infrastructure definitions, and often the application scaffolding:
# Browse and select a template interactively
azd init
# Initialize directly from a known template
azd init --template azure-samples/todo-python-mongo-swa-func
azd init --template azure-samples/azure-search-openai-demo
azd init --template azure-samples/chat-with-your-data-solution-accelerator
The AI App Templates gallery is the relevant starting point for anything that involves Azure OpenAI, Azure AI Search, or Microsoft Foundry: azd templates and the template gallery
References
- Azure Developer CLI overview - Microsoft Learn
- Install or update the Azure Developer CLI - Microsoft Learn
- azure.yaml schema reference - Microsoft Learn
- azd templates and the template gallery - Microsoft Learn
- CI/CD pipeline support with azd - Microsoft Learn
- Azure Developer CLI August 2026 release - Azure SDK Blog
Information based on official Microsoft documentation and verified sources as of September 2026. azd ships monthly releases and some commands or flags may have changed. Always verify current behavior at Microsoft Learn before implementing in production workflows.
Top comments (0)