Skip to content
Docs Try Aspire

What's new in Aspire 13.2

Aspire 13.2 brings significant improvements to the developer experience with enhanced CLI capabilities, dashboard improvements, new AI agent integrations, and better polyglot support. This release focuses on making local development more streamlined while maintaining the robust cloud-native foundation that Aspire is known for.

For general purpose upgrade guidance, see Upgrade Aspire.

The easiest way to upgrade to Aspire 13.2 is using the aspire update command:

  1. Update your Aspire project using the aspire update command:

    Aspire CLI — Update all Aspire packages
    aspire update
  2. Update the Aspire CLI itself:

    Aspire CLI — Update the CLI
    aspire update --self

Or install the CLI from scratch:

Aspire CLI — Install Aspire CLI
https://aspire.dev/install.sh | bash

For more details on installing the Aspire CLI, see Install the CLI.

One of the most requested features lands in 13.2: detached mode for running Aspire applications. You can now run your AppHost in the background, freeing up your terminal for other tasks.

Aspire CLI — Detached mode and process management
# Run in detached mode
aspire run --detach
# List all running AppHosts
aspire ps
# Stop a running AppHost
aspire stop

The aspire ps command displays all currently running Aspire AppHosts, making it easy to manage multiple projects simultaneously. When combined with aspire stop, you have full control over your application lifecycle directly from the command line.

Command reference: aspire run, aspire ps, and aspire stop.

The new --isolated flag enables running an AppHost with randomized ports and isolated user secrets:

Aspire CLI — Isolated mode
aspire run --isolated

Isolated mode assigns random ports and creates separate user secrets for each run, preventing port conflicts and configuration collisions. This is particularly useful when switching between different Aspire projects or running integration tests that need dedicated ports.

Environment diagnostics with aspire doctor

Section titled “Environment diagnostics with aspire doctor”

The new aspire doctor command provides comprehensive diagnostics of your development environment:

Aspire CLI — Environment diagnostics
aspire doctor

This command checks:

  • .NET SDK installation and version
  • HTTPS development certificate status (including detection of multiple certificates)
  • Container runtime (Docker/Podman) availability and version
  • WSL2 environment configuration
  • Container tunnel requirements for Docker Engine
  • Agent configuration status (detecting deprecated settings)

Not all checks appear in every run. Some checks, such as WSL2 configuration and agent configuration status, are conditional and only appear when the relevant environment or issues are detected.

The output provides actionable recommendations when issues are detected, making it easier to troubleshoot configuration problems.

Command reference: aspire doctor.

Finding the right integration package is now easier with fuzzy search in the aspire add command. Simply start typing and the CLI will suggest matching packages, reducing the friction of discovering and adding new integrations to your project.

Command reference: aspire add.

The aspire mcp command has been renamed to aspire agent to better reflect its purpose of managing AI agent integrations. The new command structure includes:

Aspire CLI — Agent integration
# Start the MCP (Model Context Protocol) server
aspire agent mcp
# Initialize agent environment configuration
aspire agent init

This enables AI agents to interact with your Aspire applications through a standardized protocol, opening up new possibilities for AI-assisted development workflows.

Command reference: aspire agent, aspire agent mcp, and aspire agent init.

To learn how to configure AI agents with Aspire, see Configure the MCP server.

Documentation commands from the CLI (aspire docs)

Section titled “Documentation commands from the CLI (aspire docs)”

The new aspire docs command brings the official aspire.dev documentation directly into your terminal. Built on the same MCP (Model Context Protocol) documentation tools that power the Aspire agent integration, these commands let you browse, search, and read documentation without leaving your development workflow.

Aspire CLI — Browse and search documentation
# List all available documentation pages
aspire docs list
# Search for specific topics
aspire docs search "redis"
# Read a full documentation page by its slug
aspire docs get redis-integration
# Read a specific section of a page
aspire docs get redis-integration --section "Add Redis resource"

Each command supports --format Json for machine-readable output, making them useful for scripting and automation. The aspire docs search command also accepts a --limit option to control the number of results returned.

The aspire config command has been enhanced with better organization:

Aspire CLI — Configuration management
# List all configuration with organized sections and colors
aspire config list
# Get a specific setting
aspire config get <key>
# Set a configuration value
aspire config set <key> <value>

Configuration is now clearly separated into local and global settings, with feature flags displayed in an organized manner.

Aspire CLI now includes optional telemetry to help improve the developer experience. Telemetry data is version-consistent with the dashboard, providing a unified approach to usage analytics. All telemetry follows standard privacy practices and can be controlled through configuration.

For more information, see Microsoft-collected CLI telemetry.

Several CLI options were standardized for consistency with common CLI conventions:

  • -v for --version: The -v flag is now a short alias for --version, following standard CLI conventions.
  • --format descriptions: The --format option description is now standardized to “Output format (Table or Json).” across all commands that support it.
  • --log-level/-l: Commands that support log-level filtering now use --log-level/-l consistently.

The dashboard now provides comprehensive export capabilities:

  • Export All Button: Quickly export all telemetry data with the new “Export selected” button in the Manage logs and telemetry dialog
  • JSON Export for Resources: Export resource snapshots as JSON for debugging or automation using the action buttons for each resource
  • .env File Export: Export environment variables directly to a .env file format from resource details
  • View JSON with Copy: Download or copy JSON directly from the visualizer
  • Download JSON for Traces, Spans, and Logs: Each telemetry view now includes options to export data
  • OTLP/JSON Support: The dashboard now supports OTLP over JSON in addition to gRPC
  • Environment Variable Highlighting: Environment variables are now highlighted for better visibility
  • Masked Query String Values: Sensitive data in URLs is automatically masked for security

The resource graph layout has been significantly improved with adaptive force-directed positioning, providing a clearer visualization of your application topology.

The dashboard now remembers:

  • Collapsed/expanded state of resources
  • Filter preferences across sessions
  • View options and settings
  • Dashboard icon and token-based authentication in URLs
  • Query string value masking to protect sensitive information
  • Copy button visibility improvements even when values are hidden
  • Toggle button for secret visibility in input dialogs

Several types now include DebuggerDisplayAttribute for better debugging:

  • DistributedApplication
  • Resource types
  • EndpointReferenceExpression
  • ReferenceExpression
  • PipelineStep

This makes it easier to inspect your Aspire application state during debugging sessions.

  • Added Logger property to IDistributedApplicationResourceEvent for better logging context
  • Improved ResourceNotificationService.WaitFor exception messages with more detailed information
  • BeforeResourceStartedEvent now only fires when actually starting a resource (breaking change)

For more details on eventing, see AppHost eventing APIs.

  • WithBun() Support for Vite Apps: Use Bun as an alternative to npm for Vite applications — see the Bun integration docs
  • WithYarn Fixes: Improved reliability when using Yarn with AddViteApp
  • ‘Never’ Pull Policy: Exposed image pull policy option for scenarios requiring local images
  • PullPolicy for Docker Compose: Added PullPolicy property to Docker Compose Service class
  • PostgreSQL v18+ Compatibility: Fixed data volume path for PostgreSQL version 18 and later
  • Build error when GenerateAssemblyInfo is disabled in AppHost projects
  • Trailing commas now allowed in launchSettings.json
  • JSON comments and trailing commas parsed without errors

The Aspire.Azure.AI.Inference integration now includes:

  • EmbeddingClient for accessing Azure AI embedding models
  • EmbeddingGenerator for generating embeddings

For more details, see Azure AI Inference integration.

  • Deployment slot support with new extension methods
  • Sticky slot app settings fixes
  • Configuration naming improvements

For more details, see Azure App Service integration.

The Azure Container Registry integration now supports scheduled image cleanup with the new WithPurgeTask method. This provisions an ACR purge task that automatically removes old or unused container images on a cron schedule:

C# — Schedule ACR image cleanup
var acr = builder.AddAzureContainerRegistry("my-acr")
.WithPurgeTask("0 1 * * *", ago: TimeSpan.FromDays(7), keep: 5);

Additionally, the new GetAzureContainerRegistry method makes it easy to access the registry from a compute environment for further configuration.

For more details, see Azure Container Registry integration.

  • Azure ServiceBus emulator updated to 2.0.0
  • Azure App Configuration emulator updated to 1.0.2
  • CosmosDB preview emulator readiness check added
  • Azure Managed Redis now uses rediss:// as the default scheme
  • AI Foundry models automatically updated
  • GitHub models updated
  • AI model code generation now converts markdown to C# XML docs

Aspire 13.2 continues to expand polyglot capabilities with improved TypeScript support:

  • AspireList support for TypeScript code generation
  • TypeScript AppHost testing infrastructure
  • Polyglot AppHost refactoring for better extensibility

For more details, see Polyglot AppHost.

  • Go, Java, and Rust code generation test projects added
  • Common languages SDKs included for broader support
  • YAML publishing fixes for Kubernetes deployments
  • Better handling of resources with ExcludeFromManifest
  • Container Registry exposed from compute environments
  • Improved handling of environment normalization in Azure App Service
  • Better error messages for deployment failures
  • Pipeline summary info displayed after successful completion
  • Environment name validation in deployment state manager
  • Deployment directory permissions restricted to current user

This release includes numerous bug fixes across all areas:

  • Fixed DCP path creation for AppHostServer
  • Fixed dashboard URL port logging for randomized ports
  • Fixed Windows startup error with AUX reserved device name
  • Fixed race condition in RabbitMQEventSourceListener
  • Fixed certificate serial number generation
  • Fixed resource logger service disposal and memory leaks
  • Fixed various GenAI tool definition parsing issues
  • Improved search highlight contrast in CLI interactive prompts
  • Fixed tooltip for view options button in resource details panel

The BeforeResourceStartedEvent now only fires when actually starting a resource, not on every state change. Update your event handlers if they rely on the previous behavior.

A connection property suffix has been added which may require updates to code that accesses connection properties directly.

The IAzureContainerRegistry interface has been marked as obsolete. Use the new ContainerRegistry property on compute environments instead.

Default Azure credential behavior in client integrations

Section titled “Default Azure credential behavior in client integrations”

Aspire Azure client integrations no longer use the parameterless DefaultAzureCredential constructor. This is a breaking change for anyone depending on credentials other than ManagedIdentityCredential working in an Azure service. For more information on the new behavior, see Default Azure credential.