March 30th, 2026
compellingheart2 reactions

Azure Developer CLI (azd) – March 2026: Run and Debug AI Agents Locally, GitHub Copilot Integration, & Container App Jobs

The Azure Developer CLI (azd) shipped seven releases in March 2026. Most notably, azd now has a local run-and-debug loop for AI agents, GitHub Copilot–powered project setup, and Container App Jobs deployment. Here’s what’s in versions 1.23.7, 1.23.8, 1.23.9, 1.23.10, 1.23.11, 1.23.12, and 1.23.13.

To share your feedback and questions, join the March release discussion on GitHub.

Highlights:

  • AI agent extension: run, invoke, monitor, and deploy agents end-to-end from your terminal to Microsoft Foundry
  • GitHub Copilot integration in azd init for AI-assisted project setup
  • Deploy Container App Jobs directly with azd
  • Local preflight validation catches infrastructure issues before deploying to Azure
  • Automatic pnpm and yarn detection for JavaScript and TypeScript projects
  • Set per-service deployment timeouts to avoid failures on long-running deploys

New features

🤖 AI agent extension

The azure.ai.agents extension adds new commands for running, testing, and monitoring AI agents—locally or deployed to Microsoft Foundry.

🧠 GitHub Copilot integration

GitHub Copilot now plugs into azd init for AI-assisted scaffolding and error troubleshooting.

  • Set up with GitHub Copilot (Preview): azd init now offers a “Set up with GitHub Copilot (Preview)” option that uses a GitHub Copilot agent to scaffold your project. The flow checks for a dirty working directory before modifying files and prompts for Model Context Protocol (MCP) server tool consent upfront. [#7162] [#7194]
  • AI-assisted error troubleshooting: When a command fails, azd now offers a multi-step troubleshooting flow: select a category (explain, guidance, troubleshoot, or skip), optionally let the agent apply a fix, and retry the failed command—all without leaving the terminal. [#7216]

🚀 Deployment and infrastructure

Several improvements give you more control over how and where azd deploys your services.

  • Container App Jobs support: azd now deploys Azure Container App Jobs (Microsoft.App/jobs) through the existing host: containerapp configuration. The Bicep template determines whether the target is a Container App or a Container App Job—no extra configuration needed. Contributed by @jongio. [#7001]
  • Configurable deployment timeouts: A new --timeout flag on azd deploy and a deployTimeout field in azure.yaml let you set per-service deployment timeouts. The CLI flag takes priority over azure.yaml, which takes priority over the default 1200-second timeout. [#7045]
  • Remote build fallback: When remoteBuild: true and the remote Azure Container Registry (ACR) build fails, azd now automatically falls back to a local Docker or Podman build so transient registry issues don’t block deployments. [#7041]
  • Local preflight validation: azd now validates Bicep parameters and configuration locally before deploying, catching missing parameters and mismatched types without a round-trip to Azure. [#7053]
  • Preflight configuration: To skip Azure Resource Manager (ARM) preflight validation, run azd config set provision.preflight off. A spinner now displays during preflight runs. [#6852]
  • Azure SRE Agent resource type: Provisioning progress output now correctly displays Microsoft.App/agents resources. Contributed by @dm-chelupati. [#6968]

🔧 Developer experience

These changes simplify project setup, improve automation, and surface better error messages.

  • Automatic package manager detection: azd now detects pnpm and yarn for JavaScript and TypeScript services. To override the detected manager, set config.packageManager in azure.yaml. Contributed by @jongio. [#6894]
  • pyproject.toml support: Python projects using pyproject.toml for packaging are now detected and built with pip install .. Contributed by @jongio. [#6848]
  • Local template directories: azd init --template now accepts a local filesystem path, so you can iterate on template layouts without pushing to a remote repository. Contributed by @jongio. [#6826]
  • Sensible no-prompt defaults: In --no-prompt mode, azd env new and azd init auto-generate an environment name from the working directory and autoselect the subscription when only one is available. [#7016]
  • Improved no-prompt error guidance: When required inputs are missing in --no-prompt mode, azd init and azd provision now report all missing values at once with actionable resolution commands and environment variable mappings. [#6962]
  • Build environment variables: azd environment variables are now available in all framework build subprocesses (Node.js, .NET, Java, Python, Static Web Apps), enabling build-time environment variable injection. Contributed by @jongio. [#6905]
  • YAML-driven error handling: A new error pipeline matches Azure deployment errors against known patterns and surfaces actionable messages, suggestions, and reference links. Coverage includes Container App secrets, image pulls, template parameter failures, and Role-Based Access Control (RBAC) permission and policy errors. [#6827] [#6845] [#6846]
  • Remote build suggestion: When Docker isn’t installed or not running, azd now suggests setting remoteBuild: true for Container Apps and Azure Kubernetes Service services. Contributed by @spboyer. [#7247]
  • Improved auth status output: azd auth status --output json now exits non-zero when unauthenticated and includes an expiresOn field, making it suitable as an auth validation endpoint for AI agents. Contributed by @spboyer. [#7236]

🔌 Extensions

The extension authoring experience gains new tooling and validation capabilities.

  • Extension SDK improvements: New SDK primitives simplify extension authoring, including command scaffolding, typed argument parsing, a resilient HTTP client, and network security policy. MCP server utilities, token provider, scope detection, and pagination helpers are also included. Contributed by @jongio. [#6856] [#6954]
  • Extension source validation: New azd extension source validate command checks extension registry sources against required fields, version format, capabilities, and checksum rules. Contributed by @jongio. [#6906]
  • Extension website field: Extensions can now declare a website field in the registry schema, displayed in azd extension show output. Contributed by @jongio. [#6904]
  • CopilotService for extensions: A new CopilotService gRPC service lets extensions programmatically interact with GitHub Copilot agent capabilities—initialize sessions, send messages, and retrieve usage metrics. [#7172]
  • Improved startup failure warnings: Extension startup failures now show categorized, actionable messages that distinguish extensions needing an upgrade from timeout failures and include a --debug hint for details. [#7018]

🪲 Bugs fixed

  • Fixed azd deploy silently removing externally configured Dapr settings during Container App updates. Dapr configuration is now preserved when not present in the deployment YAML. [#7062]
  • Reverted env-flag change from v1.23.11 to fix a regression where the -e shorthand for --environment conflicted with extension commands that use -e for their own flags (such as --project-endpoint). [#7274]
  • Fixed .funcignore handling and parsing failures for flex-consumption function apps, including UTF-8 Byte Order Mark and negation patterns. [#7223] [#7311]
  • Fixed extension startup failures on Windows caused by IPv4/IPv6 address mismatch in the gRPC server address. Contributed by @spboyer. [#7346]
  • Hardened extension and template security with improved input validation, origin checks, token handling, and data redaction. Contributed by @jongio.
  • Strengthened MCP extension network security policy. Contributed by @jongio.

For the full list of fixes, see the release notes for 1.23.7 through 1.23.13.

Other changes

  • Improved provisioning progress polling with concurrent nested deployment traversal and a terminal-operation cache to reduce redundant ARM API calls. [#7019]
  • Improved Container Apps deployment performance by reducing ARM API round-trips, saving up to three calls per deployment. [#6888]
  • Improved storage blob client performance by verifying container existence only once per session. [#6912]
  • Improved --no-prompt support for resource-group deployments by defaulting the resource group prompt to the AZURE_RESOURCE_GROUP environment variable. [#7044]
  • Normalized user-facing CLI output to consistent lowercase azd branding. [#6768]
  • Updated azd core to Go 1.26. [#7017]
  • Updated Bicep minimum required version to 0.41.2. [#6953]
  • Added azure.yaml schema metadata to enable automatic schema association in JetBrains IDEs, Neovim, and other editors via the SchemaStore catalog. [#7330]

New docs

  • Operate and troubleshoot agents with azd: New section in the Azure AI Foundry extension documentation covering agent monitoring, health checks, and troubleshooting with the azd ai agent command set. Learn more
  • Dev container extension auto-install: Updated extension overview and install docs with guidance on automatically installing azd extensions in dev containers. Learn more
  • Publishing workflows: New guide for azd publish, including build-once, deploy-later scenarios and shared registry workflows. Learn more
  • App Service deployment slots: New guide for promotion, rollback, and slot swap workflows with Azure App Service. Learn more
  • Environment secrets: New article explaining how to use Azure Key Vault–backed values in azd environments, including integration with Bicep parameters, hooks, and CI/CD pipeline configuration. Learn more
  • Container Apps and Jobs workflows: Expanded guidance covering image-based and revision-based deployment strategies for Azure Container Apps, plus new Container App Jobs documentation. Container App Jobs use the existing host: containerapp model—the resource type in your infrastructure determines the target. Learn more
  • Authentication and tenant guidance: Improved multi-tenant authentication docs, including --tenant-id usage, browser-based MFA recommendations, and troubleshooting for Conditional Access and device-code pipeline issues. Learn more
  • JavaScript and TypeScript packaging: Updated schema docs to cover explicit package manager configuration and auto-detection behavior from package.json, lock files, and default fallback. Learn more
  • Troubleshooting improvements: Expanded guidance for GitHub Actions and Azure Key Vault permission issues, with cleanup to links, code examples, and FAQ content. Learn more
  • Reference updates: Refreshed reference documentation to align with releases 1.23.8, 1.23.10, and 1.23.11. Learn more

New templates

Community-driven templates help you get started faster, solve real-world scenarios, and showcase best practices for deploying solutions with Azure Developer CLI.

The Azure Developer CLI template gallery continues to grow with exciting new contributions from the community. Thank you!

🙋‍♀️ New to azd?

If you’re new to the Azure Developer CLI, azd is an open-source command-line tool that accelerates the time it takes to get your application from local development environment to Azure. azd provides best practice, developer-friendly commands that map to key stages in your workflow, whether you’re working in the terminal, your editor or CI/CD.

0 comments