aspire
github/awesome-copilot
Reference and workflow guide for building, running, and deploying Aspire polyglot distributed apps.
What is aspire?
This skill equips an AI assistant to help create, run, debug, configure, deploy, and troubleshoot Aspire distributed applications — a code-first, polyglot orchestration toolchain for containers, executables, and cloud resources. Use it when working with the Aspire CLI, AppHost projects, service discovery, integrations, the MCP server, dashboard, or deployment targets like Docker, Kubernetes, or Azure.
- Provides CLI command reference and prerequisites for installing and using Aspire
- Describes AppHost orchestration patterns for polyglot workloads (.NET, Python, JS/TS, Go, Java, Rust, Bun, Deno, PowerShell)
- Documents service discovery, resource lifecycle, and integration wiring patterns
- Explains how to set up and use the Aspire MCP server for AI-assisted documentation search and integration lookup
- Points to detailed reference files for architecture, dashboard, testing, deployment, and troubleshooting, loaded on demand
How to install aspire
npx skills add https://github.com/github/awesome-copilot --skill aspire- .NET SDK 10.0 or later (required even for non-.NET workloads since the AppHost is .NET)
- A container runtime: Docker Desktop, Podman, or Rancher Desktop
- Optional: VS Code + C# Dev Kit, Visual Studio 2022, or JetBrains Rider
- Aspire CLI installed via install.sh/install.ps1, and Aspire.ProjectTemplates installed via dotnet new install
How to use aspire
- 1.Install prerequisites: .NET SDK 10.0+ and a container runtime (Docker Desktop, Podman, or Rancher Desktop)
- 2.Install the Aspire CLI via curl/install.sh (Linux/macOS) or irm/install.ps1 (Windows), then verify with `aspire --version`
- 3.Install project templates with `dotnet new install Aspire.ProjectTemplates`
- 4.Scaffold a new app with `aspire new <template>` (e.g. aspire-starter, aspire-py-starter, aspire-ts-cs-starter) or `aspire init` in an existing project
- 5.Define services, containers, and cloud resources in the AppHost project using polyglot APIs (AddProject, AddPythonApp, AddViteApp, AddGolangApp, etc.) and wire references for service discovery
- 6.Run the app locally with `aspire run`, which starts the DCP engine and dashboard for logs/traces/metrics
- 7.Add integrations as needed with `aspire add <integration>`
- 8.Reference the included docs (CLI reference, MCP server, integrations catalog, polyglot APIs, architecture, dashboard, deployment, testing, troubleshooting) on demand for deeper detail
Use cases
- Scaffolding a new Aspire AppHost project from a template (starter, Python, TypeScript/React, single-file)
- Wiring up service discovery and references between a .NET API, Python ML service, React frontend, and Go worker in one AppHost
- Setting up the Aspire MCP server so an AI assistant can search Aspire docs or query integrations
- Debugging or troubleshooting a running Aspire distributed app via the dashboard or diagnostic codes
- Deploying an Aspire app to Docker, Kubernetes, Azure Container Apps, or Azure App Service
- Developers building distributed applications with Aspire across multiple languages
- .NET developers orchestrating polyglot microservices, containers, and cloud resources
- Engineers setting up AI-assisted documentation search (MCP/Context7) for Aspire
- DevOps engineers deploying Aspire apps to Docker, Kubernetes, or Azure
aspire FAQ
No, it's polyglot. The AppHost itself is .NET, but it orchestrates workloads written in Python, JavaScript/TypeScript, Go, Java, Rust, Bun, Deno, and PowerShell in addition to C#.
.NET SDK 10.0+ is required, even for non-.NET workloads, because the AppHost project itself is .NET.
Aspire CLI 13.2+ includes built-in MCP docs search tools (list_docs, search_docs, get_doc). On 13.1 or earlier, use Context7 or GitHub search as fallbacks.
aspire run starts all resources locally using the DCP engine for development. aspire publish generates deployment manifests for targets like Docker, Kubernetes, Azure Container Apps, or Azure App Service.
Docker Desktop, Podman, or Rancher Desktop is required since Aspire orchestrates containers alongside executables and cloud resources.
Full instructions (SKILL.md)
Source of truth, from github/awesome-copilot.
name: aspire description: 'Aspire skill covering the Aspire CLI, AppHost orchestration, service discovery, integrations, MCP server, VS Code extension, Dev Containers, GitHub Codespaces, templates, dashboard, and deployment. Use when the user asks to create, run, debug, configure, deploy, or troubleshoot an Aspire distributed application.'
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 references/ 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 (aspire --version), the MCP server includes docs search tools:
| Tool | Description |
|---|---|
list_docs | Lists all available documentation from aspire.dev |
search_docs | Performs weighted lexical search across indexed documentation |
get_doc | 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 |
|---|---|
list_integrations | Lists available Aspire hosting integrations |
get_integration_docs | 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 (mcp_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 | /microsoft/aspire.dev | Primary source. Guides, integrations, CLI reference, deployment. |
| 2 | /dotnet/aspire | API internals, source-level implementation details. |
| 3 | /communitytoolkit/aspire | 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:
microsoft/aspire.dev— path:src/frontend/src/content/docs/ - Source repo:
dotnet/aspire - Samples repo:
dotnet/aspire-samples - Community integrations:
CommunityToolkit/Aspire
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 |
# 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.
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 | aspire run = local dev (DCP engine). aspire publish = generate deployment manifests. |
| Service discovery | Automatic via env vars: ConnectionStrings__<name>, services__<name>__http__0 |
| Resource lifecycle | DAG ordering — dependencies start first. .WaitFor() gates on health checks. |
| Resource types | ProjectResource, ContainerResource, ExecutableResource, ParameterResource |
| Integrations | 144+ across 13 categories. Hosting package (AppHost) + Client package (service). |
| Dashboard | Real-time logs, traces, metrics, GenAI visualizer. Runs automatically with aspire run. |
| MCP Server | AI assistants can query running apps and search docs via CLI (STDIO). |
| Testing | Aspire.Hosting.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 |
|---|---|---|
aspire new <template> | Create from template | Stable |
aspire init | Initialize in existing project | Stable |
aspire run | Start all resources locally | Stable |
aspire add <integration> | Add an integration | Stable |
aspire publish | Generate deployment manifests | Preview |
aspire config | Manage configuration settings | Stable |
aspire cache | Manage disk cache | Stable |
aspire deploy | Deploy to defined targets | Preview |
aspire do <step> | Execute a pipeline step | Preview |
aspire update | Update integrations (or --self for CLI) | Preview |
aspire mcp init | Configure MCP for AI assistants | Stable |
aspire mcp start | 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:
Add*App()orAddProject<T>() - Wire dependencies:
.WithReference() - Gate on health:
.WaitFor()if needed - Run:
aspire run
Migrating from Docker Compose
aspire new aspire-apphost-singlefile(empty AppHost)- Replace each
docker-composeservice with an Aspire resource depends_on→.WithReference()+.WaitFor()ports→.WithHttpEndpoint()environment→.WithEnvironment()or.WithReference()
8. Key URLs
| Resource | URL |
|---|---|
| Documentation | https://aspire.dev |
| Runtime repo | https://github.com/dotnet/aspire |
| Docs repo | https://github.com/microsoft/aspire.dev |
| Samples | https://github.com/dotnet/aspire-samples |
| Community Toolkit | https://github.com/CommunityToolkit/Aspire |
| Dashboard image | mcr.microsoft.com/dotnet/aspire-dashboard |
| Discord | https://aka.ms/aspire/discord |
| https://www.reddit.com/r/aspiredotdev/ |
Related skills
More from github/awesome-copilot and the wider catalog.
git-commit
Execute semantic git commits with conventional message analysis and intelligent staging.
excalidraw-diagram-generator
Generate Excalidraw diagrams from natural language descriptions.
documentation-writer
Create structured technical documentation using the Diátaxis framework for tutorials, how-to guides, references, and explanations.
gh-cli
GitHub CLI comprehensive reference for repositories, issues, PRs, Actions, projects, releases, and all GitHub operations from the command line.
prd
Generate comprehensive Product Requirements Documents with executive summaries, user stories, technical specs, and risk analysis.
refactor
Surgical code refactoring to improve maintainability without changing behavior.