{"id":3920,"date":"2026-06-26T09:53:19","date_gmt":"2026-06-26T16:53:19","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/azure-sdk\/?p=3920"},"modified":"2026-07-05T22:55:53","modified_gmt":"2026-07-06T05:55:53","slug":"azure-developer-cli-azd-may-june-2026","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/azure-sdk\/azure-developer-cli-azd-may-june-2026\/","title":{"rendered":"Azure Developer CLI (azd) &#8211; May and June 2026"},"content":{"rendered":"<p>This is the combined May and June round-up for the Azure Developer CLI (<code>azd<\/code>). Nine releases shipped across the two months: <a href=\"https:\/\/github.com\/Azure\/azure-dev\/releases\/tag\/azure-dev-cli_1.24.3\">1.24.3<\/a>, <a href=\"https:\/\/github.com\/Azure\/azure-dev\/releases\/tag\/azure-dev-cli_1.25.0\">1.25.0<\/a>, <a href=\"https:\/\/github.com\/Azure\/azure-dev\/releases\/tag\/azure-dev-cli_1.25.1\">1.25.1<\/a>, <a href=\"https:\/\/github.com\/Azure\/azure-dev\/releases\/tag\/azure-dev-cli_1.25.2\">1.25.2<\/a>, <a href=\"https:\/\/github.com\/Azure\/azure-dev\/releases\/tag\/azure-dev-cli_1.25.3\">1.25.3<\/a>, and <a href=\"https:\/\/github.com\/Azure\/azure-dev\/releases\/tag\/azure-dev-cli_1.25.4\">1.25.4<\/a> in May, followed by <a href=\"https:\/\/github.com\/Azure\/azure-dev\/releases\/tag\/azure-dev-cli_1.25.5\">1.25.5<\/a>, <a href=\"https:\/\/github.com\/Azure\/azure-dev\/releases\/tag\/azure-dev-cli_1.25.6\">1.25.6<\/a>, and <a href=\"https:\/\/github.com\/Azure\/azure-dev\/releases\/tag\/azure-dev-cli_1.26.0\">1.26.0<\/a> in June. Below is what&#8217;s new, what changed, and what we fixed, with links to the pull requests if you want to dig in.<\/p>\n<p>Have feedback or questions? Join the <a href=\"https:\/\/github.com\/Azure\/azure-dev\/discussions\/\">release discussion on GitHub<\/a>.<\/p>\n<p><strong>Highlights:<\/strong><\/p>\n<ul>\n<li>A new <code>azd tool<\/code> command group discovers, installs, checks, and upgrades Azure development tools.<\/li>\n<li><code>azd exec<\/code> is a new cross-platform command and script runner that inherits the full <code>azd<\/code> environment, including Key Vault secret resolution.<\/li>\n<li>Multi-layer provisioning gets safer dependency analysis and an explicit <code>dependsOn<\/code> field in <code>azure.yaml<\/code>.<\/li>\n<li>An interactive prompt on <code>Ctrl+C<\/code> during <code>azd provision<\/code> and <code>azd up<\/code> lets you choose whether to leave the Azure deployment running or cancel it.<\/li>\n<li>Several concurrency fixes for parallel Container Apps deploys, including cross-service image contamination on Azure Container Registry (ACR) remote builds.<\/li>\n<li>Go is now a supported language for Azure Functions services in <code>azd up<\/code>.<\/li>\n<li>Self-contained extension bundles let you share and install <code>azd<\/code> extensions without a registry.<\/li>\n<li>Per-tenant subscription filters persist across runs, so the subscription prompt stays scoped to the subscriptions you actually use.<\/li>\n<li>These releases include security improvements. Please upgrade to the latest version with <code>azd upgrade<\/code>.<\/li>\n<\/ul>\n<h2>New features<\/h2>\n<h3>\ud83e\uddf0 Tool management<\/h3>\n<p>A new <code>azd tool<\/code> command group helps you discover, install, check, and upgrade the tools <code>azd<\/code> and your templates depend on, like language SDKs, the Bicep CLI, Docker, the GitHub CLI, and Visual Studio Code extensions. Instead of hunting down install instructions across multiple sites when a template fails partway through, you can run <code>azd tool list<\/code> to see what&#8217;s needed, <code>azd tool install<\/code> to get it, and <code>azd tool check<\/code> to confirm everything is current. New <code>azd<\/code> users also get a first-run welcome that walks through recommended tooling, so the first <code>azd up<\/code> is less likely to fail on a missing prerequisite. The command group is on by default. See <a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/azure-developer-cli\/development-tools\">Manage development tools with azd<\/a> for the full command reference.<\/p>\n<ul>\n<li>Add <code>azd tool<\/code> for discovering, installing, checking, and upgrading Azure development tools, including first-run tooling guidance in core workflows. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7450\">[#7450]<\/a><\/li>\n<li>Improve <code>azd tool check<\/code> to detect updates by querying package managers, extension registries, and the Visual Studio Code Marketplace instead of relying only on cached values. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8085\">[#8085]<\/a><\/li>\n<li>Promote the <code>azd tool<\/code> command group out of alpha. It&#8217;s now available by default, along with its first-run welcome and update-check experiences. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8440\">[#8440]<\/a><\/li>\n<li>Add <code>azd tool install azure-skills<\/code> and <code>azd tool upgrade azure-skills<\/code>, with per-host selection for supported agentic CLI hosts. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8704\">[#8704]<\/a><\/li>\n<\/ul>\n<h3>\u26a1 Scripting and execution<\/h3>\n<ul>\n<li>Add <code>azd exec<\/code>, a cross-platform command and script execution engine that runs programs with full <code>azd<\/code> environment context, including environment variables and Key Vault secret resolution. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7400\">[#7400]<\/a><\/li>\n<\/ul>\n<h3>\ud83c\udfd7\ufe0f Provisioning and deployment<\/h3>\n<p>These changes make multi-layer provisioning safer by default, surface deployment IDs to extensions and CI tooling, and improve the prompts during <code>azd provision<\/code> and <code>azd up<\/code>.<\/p>\n<ul>\n<li>Add an interactive cancel prompt when <code>Ctrl+C<\/code> is pressed during <code>azd provision<\/code> or <code>azd up<\/code> with Bicep. Choose to leave the Azure deployment running or cancel it through the ARM Cancel API with status feedback. Non-interactive mode defaults to leaving the deployment running. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7795\">[#7795]<\/a><\/li>\n<li>Add a tenant picker before the subscription prompt for multi-tenant users, scoping the subscription list to the selected tenant. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8083\">[#8083]<\/a><\/li>\n<li>Add <code>azd config sub-filter set<\/code> and <code>azd config sub-filter remove<\/code> to save per-tenant subscription filters and apply them automatically in subscription prompts. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8424\">[#8424]<\/a><\/li>\n<li>Add Go support for Azure Functions services, enabling <code>azd up<\/code> for Go Function Apps on Flex Consumption. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8599\">[#8599]<\/a><\/li>\n<li>Add actionable suggestions and links to preflight warnings, with multi-line formatting for better readability. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8059\">[#8059]<\/a><\/li>\n<li>Expose ARM deployment IDs through a new <code>AZD_DEPLOYMENT_ID_FILE<\/code> environment variable during provision, written in NDJSON format for programmatic consumption. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8047\">[#8047]<\/a><\/li>\n<li><code>azd show -o json<\/code> now includes the deployed ingress URL for each service. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8071\">[#8071]<\/a><\/li>\n<\/ul>\n<h3>\ud83d\udd0c Extensions<\/h3>\n<p>We made improvements across the extension framework SDK, the registry format, and the upgrade workflow itself.<\/p>\n<ul>\n<li>Improve <code>azd extension upgrade --all<\/code> with continue-on-error batch orchestration: per-extension status display (Upgraded, Skipped, Promoted, Failed) with before\u2192after version, a batch summary line, and <code>--output json<\/code> for machine-readable continuous integration (CI) output. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7852\">[#7852]<\/a><\/li>\n<li>Add <code>RegisterFlagOptions<\/code> to the extension Software Development Kit (SDK) for declaring per-subcommand allowed values, defaults, and validation for inherited persistent flags. The new helper drives help text, shell completion, and parse-time validation automatically. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7826\">[#7826]<\/a><\/li>\n<li>Add extension registry schema versioning. Extension registries now carry a <code>schemaVersion<\/code> field, and <code>azd<\/code> shows a clear upgrade-required message when an incompatible registry schema version is encountered. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7837\">[#7837]<\/a><\/li>\n<li>Fix extension pack support gaps and improve <code>azd extension upgrade<\/code> dependency handling. Extension manifests can now declare <code>dependencies<\/code> without top-level <code>capabilities<\/code>, semver dependency ranges resolve to the highest compatible published version, and install-time dependency cycles fail with a clear error. The upgrade command reconciles declared dependencies to the latest compatible versions, adds <code>--no-dependency-upgrades<\/code> to opt out, and reports dependency updates through <code>dependencyUpgrades<\/code> in <code>--output json<\/code>. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8316\">[#8316]<\/a><\/li>\n<li>Add the <code>validation-provider<\/code> extension capability so extensions can contribute checks to local Bicep preflight validation. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8656\">[#8656]<\/a><\/li>\n<li>Add self-contained extension bundles with <code>azd x pack --bundle<\/code> and <code>azd extension install &lt;bundle.zip&gt;<\/code> for sharing and installing extensions without a registry. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8697\">[#8697]<\/a><\/li>\n<\/ul>\n<h3>\u2728 Output and prompts<\/h3>\n<ul>\n<li>Add a <code>Secret<\/code> prompt option in core <code>azd<\/code> and extension gRPC prompts so sensitive values are masked during input. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7982\">[#7982]<\/a><\/li>\n<li>Upgrade seven Command Line Interface (CLI) list commands (<code>azd ext source list<\/code>, <code>azd tool list<\/code>, <code>azd tool check<\/code>, <code>azd template list<\/code>, <code>azd template source list<\/code>, <code>azd copilot consent list<\/code>, <code>azd config options<\/code>) to responsive table output with full, compact, and card layouts based on terminal width. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8144\">[#8144]<\/a><\/li>\n<li>Improve <code>azd ext list<\/code> readability with responsive table and card layouts, plus clearer status indicators across terminal widths. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8091\">[#8091]<\/a><\/li>\n<\/ul>\n<h2>Breaking changes<\/h2>\n<ul>\n<li><strong>Cleaner <code>azd up<\/code> output.<\/strong> You&#8217;ll see one progress view from start to finish instead of three separate stage banners, which consolidates progress into one view. If you have CI that watches for the old messages (<code>\"Packaging services\u2026\"<\/code>, <code>\"Provisioning Azure resources\u2026\"<\/code>, <code>\"Deploying services\u2026\"<\/code>, or the <code>\"Your up workflow\u2026completed in\"<\/code> footer), update those checks. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7776\">[#7776]<\/a><\/li>\n<li><strong>Faster <code>azd up<\/code> with parallel steps.<\/strong> Independent work now runs in parallel. One side effect: if a step fails, other in-flight work (like long-running Azure deployments) may keep running for a bit before <code>azd up<\/code> exits, instead of stopping immediately like it used to. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7776\">[#7776]<\/a><\/li>\n<\/ul>\n<h2>\ud83e\udeb2 Bugs fixed<\/h2>\n<h3>Concurrency and parallel execution<\/h3>\n<ul>\n<li>Fix <code>concurrent map writes<\/code> crashes during <code>azd up<\/code> and <code>azd deploy<\/code> on multi-service projects. Environment access, env file save\/reload, the bundled <code>kubectl<\/code> and <code>kustomize<\/code> clients, and AKS service publish updates are now safe to run in parallel. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7776\">[#7776]<\/a><\/li>\n<li>Fix cross-service image contamination when publishing multiple Container Apps in parallel with ACR remote build (<code>docker.remoteBuild: true<\/code>), where each app could end up running another service&#8217;s image. Each parallel upload now lands in its own blob. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7776\">[#7776]<\/a><\/li>\n<li>Make <code>x-ms-client-request-id<\/code> (and the equivalent Microsoft Graph header) unique per HTTP request so Azure services can correctly deduplicate, correlate, and log individual calls during parallel provision and deploy. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7776\">[#7776]<\/a><\/li>\n<li>Fix a parallel <code>dotnet publish<\/code> race that could break Aspire deploys by isolating build artifacts per service. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8195\">[#8195]<\/a><\/li>\n<li>Restore the per-service &#8220;Detail&#8221; column during <code>azd deploy<\/code> and <code>azd up<\/code> so you can see sub-steps like <code>\"Pushing image\"<\/code> and <code>\"Updating container app\"<\/code> again instead of a blank field between phases. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7776\">[#7776]<\/a><\/li>\n<\/ul>\n<h3>Deployment lifecycle<\/h3>\n<ul>\n<li>Fix lifecycle hook output (<code>preprovision<\/code>, <code>postprovision<\/code>, and <code>predeploy<\/code>) being silently suppressed during <code>azd up<\/code>. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8263\">[#8263]<\/a><\/li>\n<li>Fix <code>azd up<\/code> rendering an empty deploy progress summary when provisioning fails before deploy starts. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8074\">[#8074]<\/a><\/li>\n<li>Fix <code>azd provision<\/code> crash when infrastructure layers use Terraform or other non-Bicep providers. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8136\">[#8136]<\/a><\/li>\n<li>Fix <code>azd deploy<\/code> polling indefinitely when deploying to a stopped Linux web app. After three consecutive polls with zero running instances, the deployment is treated as complete. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7773\">[#7773]<\/a><\/li>\n<li>Fix <code>buildArgs<\/code> and <code>buildEnv<\/code> in <code>azure.yaml<\/code> being silently dropped when <code>docker.remoteBuild: true<\/code>. Build arguments are now forwarded to the ACR remote build task. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7997\">[#7997]<\/a><\/li>\n<li>Add a safeguard prompt before <code>azd down<\/code> deletes a resource group that wasn&#8217;t created by <code>azd<\/code>. <code>--no-prompt<\/code> now fails closed for this scenario unless <code>--force<\/code> is supplied. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7998\">[#7998]<\/a><\/li>\n<li>Fix intermittent <code>DeploymentNotFound<\/code> failures during <code>azd up<\/code>, <code>azd provision<\/code>, and <code>azd down<\/code> by retrying the transient ARM 404 that can be returned immediately after a subscription- or resource-group-scoped deployment is submitted. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8551\">[#8551]<\/a><\/li>\n<li>Fix <code>azd down<\/code> failing to purge Azure AI Foundry cognitive accounts due to an SDK type mismatch in the <code>networkInjections<\/code> response. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8493\">[#8493]<\/a><\/li>\n<li>Fix Static Web Apps deployment failing with a <code>BadRequest<\/code> error for the <code>default<\/code> environment name by passing <code>production<\/code> to the SWA CLI, and add an optional <code>environment<\/code> field in <code>azure.yaml<\/code> for targeting named preview environments. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8588\">[#8588]<\/a><\/li>\n<li>Fix Aspire .NET deployments not using Podman when Docker is unavailable by lazily detecting the container engine in the deploy path. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8598\">[#8598]<\/a><\/li>\n<li>Fix <code>dotnet publish<\/code> failing with &#8220;empty dotnet configuration output&#8221; when Podman is the container engine by forwarding the detected engine to the .NET SDK. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8527\">[#8527]<\/a><\/li>\n<\/ul>\n<h3>Authentication and pipelines<\/h3>\n<ul>\n<li>Fix <code>azd pipeline config<\/code> always using the default OpenID Connect (OIDC) subject format when creating GitHub federated credentials, causing <code>AADSTS700213<\/code> mismatches for organizations with customized OIDC subject claims. <code>azd<\/code> now queries the GitHub OIDC customization API and constructs the correct subject string. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7705\">[#7705]<\/a><\/li>\n<li>Fix <code>azd pipeline config<\/code> creating mismatched GitHub OIDC federated credentials for organizations using <code>context<\/code> or <code>repo<\/code> claim keys. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8681\">[#8681]<\/a><\/li>\n<li>Fix <code>azd auth status<\/code> and provisioning commands reporting &#8220;not logged in&#8221; when <code>AZD_AUTH_ENDPOINT<\/code> and <code>AZD_AUTH_KEY<\/code> external auth is active but <code>azd auth logout<\/code> was previously run. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8004\">[#8004]<\/a><\/li>\n<li>Fix <code>azd auth status<\/code> reporting unauthenticated in Cloud Shell and blocking <code>azd provision<\/code> and <code>azd ai agent init<\/code> for sessions relying on the ambient Cloud Shell credential. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8459\">[#8459]<\/a><\/li>\n<li>Fix stale token errors (for example <code>AADSTS700082<\/code>) persisting after re-running <code>azd auth login<\/code>; azd now automatically clears cached authentication data when re-logging in while already signed in. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8414\">[#8414]<\/a><\/li>\n<li>Fix memory exhaustion and slow model catalog loads when Azure CLI delegated authentication (<code>auth.useAzCliAuth = true<\/code>) fans out concurrent token requests by caching tokens in-process per tenant. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8458\">[#8458]<\/a><\/li>\n<li>Fix GitHub URL resolution surfacing a misleading &#8220;could not find a valid branch&#8221; error for Security Assertion Markup Language (SAML) Single Sign-On blocks, rate limiting, private repos, and server errors. <code>azd<\/code> now identifies the actual failure mode and shows actionable suggestions with relevant documentation links. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7922\">[#7922]<\/a><\/li>\n<\/ul>\n<h3>CLI parsing and output<\/h3>\n<ul>\n<li>Fix <code>-C<\/code> and <code>--cwd<\/code> relative paths being applied twice when invoking extensions, causing &#8220;no such file or directory&#8221; errors. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8230\">[#8230]<\/a><\/li>\n<li>Fix <code>-ojson<\/code> and <code>-otable<\/code> (short <code>-o<\/code> flag with attached value) being rejected with a confusing error. Pre-cobra parse errors no longer show nothing on stderr. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7948\">[#7948]<\/a><\/li>\n<li>Fix the progress widget printing stale, overlapping output on narrow terminals by truncating each rendered line to the terminal width. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8402\">[#8402]<\/a><\/li>\n<li>Fix first-run tool checks recursively re-invoking <code>azd extension list<\/code> and leaking ANSI output into JSON command output. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8084\">[#8084]<\/a><\/li>\n<li>Fix interactive prompts (for example the <code>azd init<\/code> environment-name prompt) rendering twice on Windows terminals by rendering prompts with azd&#8217;s own UX components instead of the archived survey library. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8649\">[#8649]<\/a><\/li>\n<\/ul>\n<h3>Init and extension installation<\/h3>\n<ul>\n<li>Make <code>azd init<\/code> idempotent with respect to the environment: re-running init in an initialized project now reuses the existing environment instead of failing with &#8220;environment already initialized&#8221;. With <code>--no-prompt<\/code> and no <code>-e<\/code>, the recorded default environment is reused, and an explicitly requested environment is created and promoted to the default when it does not already exist. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8561\">[#8561]<\/a><\/li>\n<li>Fix <code>azd init<\/code> required extension installation failing when an extension is available from multiple sources by prompting users to choose the source interactively. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8666\">[#8666]<\/a><\/li>\n<li>Fix extension <code>Project().AddService<\/code> calls overwriting existing top-level <code>azure.yaml<\/code> properties such as hooks when adding services. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8679\">[#8679]<\/a><\/li>\n<li>Fix <code>azd update<\/code> and the macOS update banner failing with &#8220;Refusing to load cask from untrusted tap&#8221; by running <code>brew trust azure\/azd<\/code> before any Homebrew cask install, upgrade, or uninstall. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8776\">[#8776]<\/a><\/li>\n<\/ul>\n<h3>Tooling and integration<\/h3>\n<ul>\n<li>Fix the <code>azd tool<\/code> first-run prompt blocking users who deselect all recommended tools, and clarify its setup wording. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8487\">[#8487]<\/a><\/li>\n<li>Fix <code>azd init<\/code> Copilot Preview silently falling back to an older model by upgrading the bundled Copilot SDK to v0.3.0 and CLI to v1.0.36-0. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8114\">[#8114]<\/a><\/li>\n<li>Fix <code>azd tool<\/code> Copilot metadata to use the current Visual Studio Code extension and up-to-date Copilot CLI install documentation links. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8086\">[#8086]<\/a><\/li>\n<li>Fix Artificial Intelligence (AI) agent detection not recognizing Copilot CLI through the <code>COPILOT_CLI<\/code> environment variable. Thanks <a href=\"https:\/\/github.com\/tmeschter\">@tmeschter<\/a> for the contribution! <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8249\">[#8249]<\/a><\/li>\n<li>Fix false-positive preflight warning for Azure Chaos Studio target resources (<code>Microsoft.Chaos\/targets<\/code>) whose names are service-mandated. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8240\">[#8240]<\/a><\/li>\n<li>Fix AI model quota preflight blocking all locations on subscriptions where the Azure Cognitive Services <code>\/usages<\/code> API returns an empty list (for example, free-tier subscriptions); empty usage lists are now treated as available quota rather than zero quota. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8537\">[#8537]<\/a><\/li>\n<li>Fix the AI model quota preflight rejecting all locations on free-tier subscriptions by lowering the required <code>OpenAI.S0.AccountCount<\/code> capacity from 2 to 1. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8571\">[#8571]<\/a><\/li>\n<\/ul>\n<h2>Other changes<\/h2>\n<ul>\n<li>Add per-phase timing breakdown to the <code>azd up<\/code> success output and sanitize deploy progress service names to prevent terminal escape-sequence injection in rendered output. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8050\">[#8050]<\/a><\/li>\n<li>Improve <code>azd extension upgrade<\/code> edge case handling: delisted extensions report &#8220;no longer available&#8221; and continue the batch, network failures show actionable retry guidance, and extension config writes are now atomic to prevent corruption if interrupted. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7853\">[#7853]<\/a><\/li>\n<li>Improve extension SDK gRPC error transport. Host-returned errors now carry structured suggestion and link data through <code>ActionableErrorDetail<\/code>, so extensions can surface the full error-suggestion experience to users. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7919\">[#7919]<\/a><\/li>\n<li><code>azd up<\/code> honors <code>AZD_DEPLOY_CONCURRENCY<\/code> as a fallback when <code>AZD_UP_CONCURRENCY<\/code> is unset, so existing deploy-tuning configurations carry over to the unified up workflow. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7776\">[#7776]<\/a><\/li>\n<li>Reduce the size of the generated Fig completion spec (<code>azd completion fig<\/code>) by pruning duplicated help subcommands and redundant extension output options; add <code>--include-help-subcommands<\/code> to restore the previous expanded output. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8417\">[#8417]<\/a><\/li>\n<li>Update user-facing references from &#8220;.NET Aspire&#8221; to &#8220;Aspire&#8221; to reflect the product rebrand. Thanks <a href=\"https:\/\/github.com\/IEvangelist\">@IEvangelist<\/a> for the contribution! <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8579\">[#8579]<\/a><\/li>\n<li>Improve stacked table readability by labeling grouped headers, dimming structural lines, and highlighting source URLs. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8725\">[#8725]<\/a><\/li>\n<li>Improve responsive table layouts across <code>azd extension list<\/code>, <code>azd tool check<\/code>, <code>azd tool list<\/code>, and <code>azd template list<\/code>. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8785\">[#8785]<\/a><\/li>\n<li>Update bundled Bicep CLI from v0.42.1 to v0.43.8, and then to v0.44.1. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8148\">[#8148]<\/a> <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/8594\">[#8594]<\/a><\/li>\n<li>Update bundled GitHub CLI to v2.92.0. <a href=\"https:\/\/github.com\/Azure\/azure-dev\/pull\/7946\">[#7946]<\/a><\/li>\n<\/ul>\n<h2>New docs<\/h2>\n<p>New and updated azd docs on Microsoft Learn:<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/azure-developer-cli\/development-tools\">Manage Azure development tools with <code>azd tool<\/code><\/a><\/strong> (June 3) \u2014 Full reference for the new <code>azd tool<\/code> command group: discover, install, check, and upgrade language SDKs, the Bicep CLI, Docker, the GitHub CLI, and VS Code extensions from the command line. Pairs with the May release of the command group.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/azure-developer-cli\/app-service-slots\">Deploy to Azure App Service slots with <code>azd<\/code><\/a><\/strong> (June 11) \u2014 Adds a new &#8220;Bypass slot detection&#8221; section that documents <code>AZD_DEPLOY_&lt;SERVICE&gt;_IGNORE_SLOTS<\/code>. Set it to <code>true<\/code> for a specific service to deploy directly to the main App Service app and ignore any slots, which is useful for CI pipelines that refresh the main app without touching existing slots.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/azure-developer-cli\/azd-extensibility\">Customize your <code>azd<\/code> workflows using command and event hooks<\/a><\/strong> (June 12) \u2014 <code>shell<\/code> is now optional in hook definitions. When omitted, <code>azd<\/code> defaults to <code>pwsh<\/code> on Windows and <code>sh<\/code> on Linux and macOS, and prints a warning recommending you set <code>shell<\/code> explicitly for cross-platform reliability. For <code>run<\/code> paths, <code>azd<\/code> infers the shell from the file extension (for example, <code>.sh<\/code> or <code>.ps1<\/code>).<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/azure-developer-cli\/use-terraform-for-azd\">Use Terraform with <code>azd<\/code><\/a><\/strong> (June 22) \u2014 Adds an &#8220;Authenticate to Azure&#8221; section with two sign-in options for Terraform-based <code>azd<\/code> projects. Recommended: <code>azd config set auth.useAzCliAuth true<\/code> followed by <code>az login<\/code>, so both tools share a single credential. Alternative: sign in to <code>azd<\/code> and Azure CLI separately. A new IMPORTANT callout explains that Terraform&#8217;s <code>azurerm<\/code> provider doesn&#8217;t read tokens from <code>azd<\/code>&#8216;s credential cache, so <code>azd up<\/code> fails at the provision step without an <code>az login<\/code>.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/azure-developer-cli\/azure-ai-ml-endpoints\">Deploy to a Microsoft Foundry or Azure Machine Learning online endpoint<\/a><\/strong> (June 22) \u2014 Documents the <code>kind<\/code> field in <code>agent.yaml<\/code> (currently <code>hosted<\/code>, with either <code>code_configuration<\/code> for ZIP-based code deploys or <code>image<\/code> for prebuilt container images from Azure Container Registry) and replaces the previous <code>kind: prompt<\/code> example with a working <code>kind: hosted<\/code> definition that <code>azd deploy<\/code> accepts.<\/li>\n<li><strong><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/azure-developer-cli\/supported-languages-environments\">Supported languages and environments<\/a><\/strong> (June 24) \u2014 Documents Go as a supported language for Azure Functions services in <code>azd up<\/code>, including Flex Consumption support and the <code>azure.yaml<\/code> configuration.<\/li>\n<\/ul>\n<h2>New templates<\/h2>\n<p>Community templates help you get started faster, cover common scenarios, and show how to deploy real solutions with Azure Developer CLI.<\/p>\n<h3>awesome-azd<\/h3>\n<p>In June, 40 AI app templates that previously lived only in the <a href=\"https:\/\/aka.ms\/ai-gallery\">AI App Templates gallery<\/a> were added to the <a href=\"https:\/\/azure.github.io\/awesome-azd\/\">awesome-azd gallery<\/a> so they&#8217;re discoverable from both places. See <a href=\"https:\/\/github.com\/Azure\/awesome-azd\/pull\/900\">awesome-azd #900<\/a> for the full list.<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/github.com\/zubeyralmaho\/rust-mcp-azure\">Rust MCP Server on Azure Container Apps<\/a><\/strong> by <a href=\"https:\/\/github.com\/zubeyralmaho\">zubeyralmaho<\/a>: A zero-trust, read-only Model Context Protocol (MCP) server written in Rust on top of axum, deployed to Azure Container Apps with Bicep. Designed as a memory-safe, low-latency option for AI agent tool execution as an alternative to Python or Node.js stacks.<\/li>\n<li><strong><a href=\"https:\/\/github.com\/benleane83\/azure-swa-nextjs-postgres\">Azure Static Web App with Next.js and Postgres<\/a><\/strong> by <a href=\"https:\/\/github.com\/benleane83\">benleane83<\/a>: An Azure Static Web App (SWA) template configured with Next.js, Tailwind, Entra SWA Auth, Node.js Azure Functions, and Postgres. Great as a Vercel or Supabase alternative that&#8217;s native to Azure.<\/li>\n<li><strong>Azure Functions Cosmos DB Trigger quickstarts<\/strong> by <a href=\"https:\/\/github.com\/Azure-Samples\">Azure Samples<\/a>, bringing the Cosmos DB Trigger pattern to three more languages alongside the existing .NET, Python, and TypeScript siblings:\n<ul>\n<li><strong><a href=\"https:\/\/github.com\/Azure-Samples\/functions-quickstart-java-azd-cosmosdb\">Azure Functions Java Cosmos DB Trigger<\/a><\/strong>: An Azure Functions quickstart project that demonstrates how to use a Cosmos DB Trigger with <code>azd<\/code> for quick and easy deployment, using Java. The sample uses managed identity to make deployment secure by default.<\/li>\n<li><strong><a href=\"https:\/\/github.com\/Azure-Samples\/functions-quickstart-javascript-azd-cosmosdb\">Azure Functions JavaScript Cosmos DB Trigger<\/a><\/strong>: An Azure Functions quickstart project that demonstrates how to use a Cosmos DB Trigger with <code>azd<\/code> for quick and easy deployment, using JavaScript and Node.js. The sample uses managed identity to make deployment secure by default.<\/li>\n<li><strong><a href=\"https:\/\/github.com\/Azure-Samples\/functions-quickstart-powershell-azd-cosmosdb\">Azure Functions PowerShell Cosmos DB Trigger<\/a><\/strong>: An Azure Functions quickstart project that demonstrates how to use a Cosmos DB Trigger with <code>azd<\/code> for quick and easy deployment, using PowerShell. The sample uses managed identity to make deployment secure by default.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Azure Functions Flex Consumption with Azure Files OS Mount samples<\/strong> by <a href=\"https:\/\/github.com\/Azure-Samples\">Azure Samples<\/a>, showing how to mount an Azure Files share into the Flex Consumption host and reach native binaries and large datasets directly from your function code:\n<ul>\n<li><strong><a href=\"https:\/\/github.com\/Azure-Samples\/Azure-Functions-Flex-Consumption-with-Azure-Files-OS-Mount-Samples\">FFmpeg image processing<\/a><\/strong>: This scenario demonstrates event-driven image processing using FFmpeg from an Azure Files OS mount. Images uploaded to Blob Storage trigger the function through Event Grid, which processes them using FFmpeg from the mount and saves results to an output container.<\/li>\n<li><strong><a href=\"https:\/\/github.com\/Azure-Samples\/Azure-Functions-Flex-Consumption-with-Azure-Files-OS-Mount-Samples\">Durable text analysis<\/a><\/strong>: This scenario uses Durable Functions fan-out and fan-in orchestration to analyze text files stored on an Azure Files OS mount. An HTTP trigger starts the orchestration, which fans out to analyze each text file in parallel and aggregates results.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>AI gallery<\/h3>\n<ul>\n<li><strong><a href=\"https:\/\/github.com\/Azure-Samples\/sovereign-chat-experience-starter\">Sovereign Chat Experience Starter<\/a><\/strong> by <a href=\"https:\/\/github.com\/microsoft-foundry\">Microsoft Foundry Team<\/a>: A reusable Chat UI for AI experiences, built on the Azure OpenAI Responses API standard and Fluent AI components. It connects to a Microsoft Foundry project and is designed to be deployed on Azure Kubernetes Service (AKS) clusters. The application features a chat interface, chat history, streaming responses, and a pluggable provider architecture that supports both live Microsoft Foundry backends and an in-memory mock mode for offline development.<\/li>\n<li><strong><a href=\"https:\/\/github.com\/Azure-Samples\/Video-Agents-Foundry-Solution\">Video Agents Foundry Solution<\/a><\/strong> by <a href=\"https:\/\/github.com\/Azure-Samples\">Video Indexer<\/a>: Deploy AI-powered video analysis at the edge using Azure Video Indexer on Arc-enabled AKS clusters with GPU support, combined with AI agents built on Azure OpenAI for automated video analysis workflows.<\/li>\n<\/ul>\n<p>The Azure Developer CLI template gallery keeps growing thanks to contributions from the community. Thank you!<\/p>\n<h2>\ud83d\ude4b\u200d\u2640\ufe0f New to azd?<\/h2>\n<p>If you&#8217;re new to the Azure Developer CLI, <code>azd<\/code> is an open-source command-line tool that helps you get your application from your local development environment to Azure faster. It provides developer-friendly commands that map to key stages in your workflow, whether you&#8217;re working in the terminal, your editor, or CI\/CD.<\/p>\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/azure-developer-cli\/install-azd\">Install azd<\/a><\/li>\n<li><strong>Explore templates:<\/strong> Browse the <a href=\"https:\/\/azure.github.io\/awesome-azd\/\">Awesome azd template gallery<\/a> and <a href=\"https:\/\/aka.ms\/ai-gallery\">AI App Templates<\/a><\/li>\n<li><strong>Learn more:<\/strong> Visit the <a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/azure-developer-cli\/\">official documentation<\/a> and <a href=\"https:\/\/learn.microsoft.com\/azure\/developer\/azure-developer-cli\/troubleshoot\">troubleshooting guide<\/a><\/li>\n<li><strong>Get help:<\/strong> Visit the <a href=\"https:\/\/github.com\/Azure\/azure-dev\">GitHub repository<\/a> to file issues or start discussions<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A combined May and June recap. A new azd tool command group, the cross-platform azd exec runner, safer multi-layer provisioning, an interactive Ctrl+C cancel prompt, Go support for Azure Functions, self-contained extension bundles, per-tenant subscription filters, and a long list of correctness fixes for parallel Container Apps deploys and authentication.<\/p>\n","protected":false},"author":107449,"featured_media":3932,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[701,864,878,939,810,160,159,861,162,733,895],"class_list":["post-3920","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-sdk","tag-net","tag-azure-developer-cli","tag-codespaces","tag-docker","tag-go","tag-java","tag-javascript","tag-kubernetes","tag-python","tag-typescript","tag-vscode"],"acf":[],"blog_post_summary":"<p>A combined May and June recap. A new azd tool command group, the cross-platform azd exec runner, safer multi-layer provisioning, an interactive Ctrl+C cancel prompt, Go support for Azure Functions, self-contained extension bundles, per-tenant subscription filters, and a long list of correctness fixes for parallel Container Apps deploys and authentication.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts\/3920","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/users\/107449"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/comments?post=3920"}],"version-history":[{"count":1,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts\/3920\/revisions"}],"predecessor-version":[{"id":3921,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/posts\/3920\/revisions\/3921"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/media\/3932"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/media?parent=3920"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/categories?post=3920"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sdk\/wp-json\/wp\/v2\/tags?post=3920"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}