Aspire — Polyglot Distributed-App Orchestration
Aspire is a code-first, polyglot toolchain for building observable, production-ready distributed applications. It orchestrates containers, executables, and cloud resources from a single AppHost project — regardless of whether the workloads are C#, Python, JavaScript/TypeScript, Go, Java, Rust, Bun, Deno, or PowerShell.
Mental model: The AppHost is a conductor — it doesn't play the instruments, it tells every service when to start, how to find each other, and watches for problems.
Detailed reference material lives in the
folder — load on demand.
References
| Reference | When to load |
|---|
| CLI Reference | Command flags, options, or detailed usage |
| MCP Server | Setting up MCP for AI assistants, available tools |
| Integrations Catalog | Discovering integrations via MCP tools, wiring patterns |
| Polyglot APIs | Method signatures, chaining options, language-specific patterns |
| Architecture | DCP internals, resource model, service discovery, networking, telemetry |
| Dashboard | Dashboard features, standalone mode, GenAI Visualizer |
| Deployment | Docker, Kubernetes, Azure Container Apps, App Service |
| Testing | Integration tests against the AppHost |
| Troubleshooting | Diagnostic codes, common errors, and fixes |
1. Researching Aspire Documentation
The Aspire team ships an MCP server that provides documentation tools directly inside your AI assistant. See MCP Server for setup details.
Aspire CLI 13.2+ (recommended — has built-in docs search)
If running Aspire CLI
13.2 or later (
), the MCP server includes docs search tools:
| Tool | Description |
|---|
| Lists all available documentation from aspire.dev |
| Performs weighted lexical search across indexed documentation |
| Retrieves a specific document by its slug |
These tools were added in
PR #14028. To update:
aspire update --self --channel daily
.
For more on this approach, see David Pine's post:
https://davidpine.dev/posts/aspire-docs-mcp-tools/
Aspire CLI 13.1 (integration tools only)
On 13.1, the MCP server provides integration lookup but not docs search:
| Tool | Description |
|---|
| Lists available Aspire hosting integrations |
| Gets documentation for a specific integration package |
For general docs queries on 13.1, use Context7 as your primary source (see below).
Fallback: Context7
Use
Context7 (
) when the Aspire MCP docs tools are unavailable (13.1) or the MCP server isn't running:
Step 1 — Resolve the library ID (one-time per session):
Call
mcp_context7_resolve-library-id
with
libraryName: ".NET Aspire"
.
| Rank | Library ID | Use when |
|---|
| 1 | | Primary source. Guides, integrations, CLI reference, deployment. |
| 2 | | API internals, source-level implementation details. |
| 3 | | Non-Microsoft polyglot integrations (Go, Java, Node.js, Ollama). |
Step 2 — Query docs:
libraryId: "/microsoft/aspire.dev", query: "Python integration AddPythonApp service discovery"
libraryId: "/communitytoolkit/aspire", query: "Golang Java Node.js community integrations"
Fallback: GitHub search (when Context7 is also unavailable)
Search the official docs repo on GitHub:
- Docs repo: — path:
src/frontend/src/content/docs/
- Source repo:
- Samples repo:
- Community integrations:
2. Prerequisites & Install
| Requirement | Details |
|---|
| .NET SDK | 10.0+ (required even for non-.NET workloads — the AppHost is .NET) |
| Container runtime | Docker Desktop, Podman, or Rancher Desktop |
| IDE (optional) | VS Code + C# Dev Kit, Visual Studio 2022, JetBrains Rider |
bash
# Linux / macOS
curl -sSL https://aspire.dev/install.sh | bash
# Windows PowerShell
irm https://aspire.dev/install.ps1 | iex
# Verify
aspire --version
# Install templates
dotnet new install Aspire.ProjectTemplates
3. Project Templates
| Template | Command | Description |
|---|
| aspire-starter | aspire new aspire-starter
| ASP.NET Core/Blazor starter + AppHost + tests |
| aspire-ts-cs-starter | aspire new aspire-ts-cs-starter
| ASP.NET Core/React starter + AppHost |
| aspire-py-starter | aspire new aspire-py-starter
| FastAPI/React starter + AppHost |
| aspire-apphost-singlefile | aspire new aspire-apphost-singlefile
| Empty single-file AppHost |
4. AppHost Quick Start (Polyglot)
The AppHost orchestrates all services. Non-.NET workloads run as containers or executables.
csharp
var builder = DistributedApplication.CreateBuilder(args);
// Infrastructure
var redis = builder.AddRedis("cache");
var postgres = builder.AddPostgres("pg").AddDatabase("catalog");
// .NET API
var api = builder.AddProject<Projects.CatalogApi>("api")
.WithReference(postgres).WithReference(redis);
// Python ML service
var ml = builder.AddPythonApp("ml-service", "../ml-service", "main.py")
.WithHttpEndpoint(targetPort: 8000).WithReference(redis);
// React frontend (Vite)
var web = builder.AddViteApp("web", "../frontend")
.WithHttpEndpoint(targetPort: 5173).WithReference(api);
// Go worker
var worker = builder.AddGolangApp("worker", "../go-worker")
.WithReference(redis);
builder.Build().Run();
For complete API signatures, see Polyglot APIs.
5. Core Concepts (Summary)
| Concept | Key point |
|---|
| Run vs Publish | = local dev (DCP engine). = generate deployment manifests. |
| Service discovery | Automatic via env vars: ConnectionStrings__<name>
, services__<name>__http__0
|
| Resource lifecycle | DAG ordering — dependencies start first. gates on health checks. |
| Resource types | , , , |
| Integrations | 144+ across 13 categories. Hosting package (AppHost) + Client package (service). |
| Dashboard | Real-time logs, traces, metrics, GenAI visualizer. Runs automatically with . |
| MCP Server | AI assistants can query running apps and search docs via CLI (STDIO). |
| Testing | — spin up full AppHost in xUnit/MSTest/NUnit. |
| Deployment | Docker, Kubernetes, Azure Container Apps, Azure App Service. |
6. CLI Quick Reference
Valid commands in Aspire CLI 13.1:
| Command | Description | Status |
|---|
| Create from template | Stable |
| Initialize in existing project | Stable |
| Start all resources locally | Stable |
| Add an integration | Stable |
| Generate deployment manifests | Preview |
| Manage configuration settings | Stable |
| Manage disk cache | Stable |
| Deploy to defined targets | Preview |
| Execute a pipeline step | Preview |
| Update integrations (or for CLI) | Preview |
| Configure MCP for AI assistants | Stable |
| Start the MCP server | Stable |
Full command reference with flags: CLI Reference.
7. Common Patterns
Adding a new service
- Create your service directory (any language)
- Add to AppHost: or
- Wire dependencies:
- Gate on health: if needed
- Run:
Migrating from Docker Compose
aspire new aspire-apphost-singlefile
(empty AppHost)
- Replace each service with an Aspire resource
- → +
- →
- → or
8. Key URLs