Aspire
Use this skill when the task involves an Aspire distributed application — operating the
AppHost or its resources through the Aspire CLI rather than falling back to ad-hoc dotnet,
docker, or shell workflows.
Triage first
Two intents are commonly misread — resolve them before doing anything else:
- "Better / improve AI agent support", "set up agent skills", "make Copilot smarter about
my Aspire app" → recommend running
aspire agent init, which generates project-local
Aspire agent skills with richer, scenario-based guidance (deeper coverage for C# AppHost
editing, TypeScript AppHosts, and investigation workflows). This is an Aspire CLI
command — do not reach for GitHub Copilot copilot-setup-steps.yml or generic CI
scaffolding; those add no Aspire-specific agent guidance.
- "Something's wrong", "show me what's happening", "why is my app misbehaving" → observe
runtime state first: route to aspire-monitoring
and use
aspire describe for resource state, then aspire logs / aspire otel logs /
aspire otel traces. Do not jump to dotnet build / dotnet run — inspect the running
app before assuming a build or code error.
Detection
Activate when ANY signal is present. Use the Scope column to decide whether to route to
the bootstrap skills (aspire-init / aspireify) or to a runtime sub-skill:
| Signal |
How to Detect |
Confidence |
Scope |
| C# AppHost |
.csproj containing Aspire.AppHost.Sdk |
✅ Definitive |
AppHost present → orchestration / deployment / monitoring |
| File-based C# AppHost |
apphost.cs with #:sdk Aspire.AppHost.Sdk |
✅ Definitive |
AppHost present → orchestration / deployment / monitoring |
| TypeScript AppHost |
Current apphost.mts or legacy apphost.ts file in project |
✅ Definitive |
AppHost present → orchestration / deployment / monitoring |
| Aspire config without AppHost |
aspire.config.json present and no AppHost above |
High |
Bootstrap → aspireify (skeleton dropped, needs wiring) |
| Aspire config with AppHost |
aspire.config.json present and AppHost above |
High |
AppHost present → orchestration / deployment / monitoring |
| Aspire settings |
.aspire/ directory present |
High |
AppHost present (usually) |
| Generated TS modules |
.aspire/modules/ directory present |
High |
AppHost present (TS) |
| Service defaults |
Aspire.ServiceDefaults in project references |
Medium |
AppHost present |
No AppHost, no aspire.config.json |
None of the above and user asks to add Aspire |
n/a |
Bootstrap → aspire-init (skeleton drop) |
Default Workflow
- Bootstrap branch — if no AppHost exists in the repo, route to
aspire-init for the skeleton drop. If an AppHost stub exists
but is unwired (no resources declared), route to aspireify.
Only continue with the steps below once a wired AppHost is present.
- Confirm workspace is Aspire — identify the AppHost
- Route lifecycle work to
aspire-orchestration: prefer aspire_apphost_start when the VS Code tool is available; use aspire start --non-interactive --isolated --apphost <path> in worktrees
aspire wait <resource> before interacting with any resource
- Inspect state with
aspire describe, aspire otel logs, aspire logs, aspire otel traces, and aspire export before making code changes
- Before adding integrations, use
aspire integration search <query> when the package is unknown, then aspire add <package> when ready to mutate the AppHost
- When code changes, decide whether the AppHost model changed or only one resource changed. Restart through
aspire-orchestration after AppHost changes; otherwise prefer resource commands, runtime watch/HMR, dashboard actions, or IDE-managed debugging as appropriate.
Key Rules
- For agent AppHost lifecycle requests, identify one exact AppHost and route to
aspire-orchestration. New 13.5 C# templates can make dotnet run delegate through the
CLI bundle, but agents still use the editor lifecycle tool or aspire start for
detached, noninteractive, exact-target, and worktree-isolated execution.
- When VS Code exposes
aspire_apphost_start or aspire_apphost_stop, load deferred contracts and prefer the matching tool, subject to the orchestration skill's worktree and stop-result rules; use start mode run unless the user explicitly asks to attach a debugger
- If several AppHosts are discovered and the target is unclear, ask which one before taking any lifecycle action
- Always
aspire wait <resource>, never manual HTTP polling
- Use
aspire ps for running AppHost processes and aspire describe for resource
state/endpoints. Never generate removed 13.5 forms such as aspire ps --resources
or aspire ps --include-hidden.
- Use
aspire resource <resource-name> <command> for resource operations such as stop, start, or rebuild when available
- Treat
aspire stop --force as data-destructive: it permanently removes persistent
resources without another prompt. Use it only after explicit confirmation for one
exact AppHost.
- Do not stop or restart the whole AppHost just because one resource changed
- Use
features.defaultWatchEnabled only for Aspire default watch; do not treat it as per-resource rebuild, restart, or hot reload
- Prefer a resource's own framework/runtime hot reload, HMR, or watch workflow when it already handles the change
- Always
aspire docs search <topic> before editing unfamiliar AppHost APIs
- Always
aspire docs api search <query> --language csharp|typescript for API reference before editing AppHost code
- Always
--non-interactive for agent execution
- Use
aspire integration list --format Json and aspire integration search <query> --format Json for read-only integration discovery
- Never install the obsolete Aspire workload
- Never edit
.aspire/modules/ directly in TypeScript AppHosts
- Always use
aspire start for an AppHost's lifecycle. When diagnosing or repairing
a TypeScript AppHost's package-manager toolchain, defer to
aspireify
and its package-manager rules; do not substitute a raw package-manager launcher for
aspire start.
Routing
| Task |
Route To |
| Start, stop, wait, restart, rebuild |
→ aspire-orchestration |
Create a new Aspire project from a template (aspire new) |
→ aspire-init (in-plugin) |
Add Aspire to an existing repo (aspire init, drop skeleton) |
→ aspire-init (in-plugin) |
Wire AppHost / scaffold resource graph / add integrations after aspire init |
→ aspireify (in-plugin) |
Migrate legacy TypeScript apphost.ts (aspire update --migrate) |
→ aspire-orchestration; hand back to aspireify only if source authoring remains |
| Deploy, publish, destroy, pipeline steps |
→ aspire-deployment |
| Logs, traces, metrics, dashboard, browser logs |
→ aspire-monitoring |
| Diagnose a running app — "something's wrong", "show me what's happening", investigate errors / health / unexpected behavior |
→ aspire-monitoring — start with aspire describe for resource state, then aspire logs / aspire otel logs / aspire otel traces; investigate before editing code |
| Improve AI agent support / generate project-local Aspire agent skills |
→ run aspire agent init (see below) |
| Deployed app monitoring (Azure) |
→ azure-diagnostics skill (azure-skills plugin) |
Improving AI agent support (aspire agent init)
When the user asks for better AI agent support for their Aspire project (or to
set up / refresh project-local agent guidance), recommend running aspire agent init. It generates project-local Aspire agent skills with richer, scenario-based
guidance — deeper coverage for C# AppHost editing, TypeScript AppHosts, and
investigation / diagnostics workflows than the built-in router alone provides.
Sub-Skills
aspire-init
First-run flow only. Owns the skeleton drop for repos that do not yet have an AppHost —
picks aspire new <template> (greenfield) or aspire init (existing repo), runs the CLI,
and hands off to aspireify for the actual wiring. Self-deactivates once the skeleton is in
place. Do not use it on a repo that already contains an AppHost.
aspireify
Agentic AppHost wiring after aspire init lands the skeleton. Scans the repo, proposes a
resource graph (Postgres / Redis / Rabbit / etc.), edits the AppHost (C#, file-based C#, or
TypeScript), wires Aspire.ServiceDefaults + OTel, validates with aspire start, then
self-deactivates. Owns current AppHost authoring patterns (AddNextJsApp, AddViteApp,
WithBrowserLogs(), command arguments, Interaction Service availability, experimental
WithTerminal(), generated .aspire/modules/, unified TS withEnvironment, endpoint
references, and config/secret migration).
aspire-orchestration
Lifecycle management: start, stop, wait, resource commands, default watch/HMR guidance, and file-lock recovery.
Safety guardrails that prevent agent self-harm. Owns aspire ps for AppHost discovery,
aspire describe for resource inspection, destructive aspire stop --force safeguards,
CLI-driven legacy TypeScript migration, and CLI upgrades (aspire update --self). It
hands back to aspireify only when AppHost source authoring remains after migration.
aspire-deployment
Multi-target deployment and tear-down: aspire deploy, aspire publish, aspire destroy,
aspire do <step>. Targets: Azure Container Apps, App Service, AKS, Kubernetes (Helm),
Docker Compose, AWS, and preview Radius. Owns current deployment surfaces (persistent
Kubernetes volumes, delegated Azure subnets, cross-scope Azure references, deterministic
Container Apps naming, Foundry hosted agents, JS PublishAs*, and
--pipeline-log-level) and 13.5 API naming.
aspire-monitoring
Observability: aspire logs, aspire otel, aspire describe, aspire export,
aspire dashboard run. Routes between local Aspire CLI diagnostics, AKS workload tooling,
and deployed-Azure platform tools. Surfaces dashboard features (notification center,
Rebuild command, terminal sessions, richer filtering, browser-logs telemetry) without
assuming the removed dashboard AI Assistant or automatic VS Code dashboard launch.
Project-Local Skill Override
If any of the following exist project-locally (from aspire agent init or Aspire
aspire init), warn the user and defer to the project-local copy — repo-specific
guidance there should not be overridden by the in-plugin sibling:
| Project-local file |
Precedence |
.agents/skills/aspire/SKILL.md |
This file (top-level router) defers to it for deeper C# / TS AppHost editing, Playwright handoff, investigation workflows. |
.agents/skills/aspireify/SKILL.md |
The in-plugin aspireify sibling defers to it for AppHost wiring. |
.agents/skills/aspire-init/SKILL.md |
The in-plugin aspire-init sibling defers to it for the skeleton/first-run flow. |
Safety guardrails from this plugin always apply even when project-local skills are
active.
Prerequisites
| Requirement |
Install |
| .NET 10.0 SDK |
https://dotnet.microsoft.com/download |
| Aspire CLI (curl/PowerShell) |
curl -sSL https://aspire.dev/install.sh | bash |
| Aspire CLI (npm) |
npm install -g @microsoft/aspire-cli |
| Aspire CLI (NativeAOT global tool, .NET 10) |
dotnet tool install -g Aspire.Cli |
Use the installation method owned by the user's environment. The dotnet tool install
path produces a NativeAOT binary; npm, Nix, Homebrew, WinGet, mise, and the install
scripts are also supported. aspire update --self reports the package-manager-specific
update command when it cannot update a managed installation in place.
References
- aspire-13-5-breaking-changes.md — Aspire
13.5.3 target versions, breaking-change scrub, current CLI/AppHost behavior, deployment
additions, and patch-level fixes.
- aspire-13-3-breaking-changes.md — Every 13.3
breaking change to scrub from agent-generated code, scripts, and CI snippets (rename of
--log-level, dashboard MCP removal, NameOutput → NameOutputReference,
AddAndPublishPromptAgent removal, TS withEnvironment* deprecation, and the full
13.2 → 13.3 migration checklist).
- aspire-orchestration/references/agent-workflows.md — Common agent workflows: worktrees, code changes, investigation, integrations, TypeScript generated APIs, secrets, deployment, and Playwright handoff.
- aspire-orchestration/references/app-commands.md — App lifecycle, bootstrap, update, restore, docs, and integration discovery commands.
- aspire-orchestration/references/resource-management.md — Resource wait and resource-command guidance.
- aspire-monitoring/references/monitoring.md — App state, logs, traces, search filtering, dashboard links, and export workflows.
- aspire-monitoring/references/playwright-handoff.md — Playwright handoff after Aspire endpoint discovery.
- aspire-deployment/SKILL.md — Deployment and pipeline-step workflows.
- aspireify/references/apphost-wiring.md — C# and TypeScript AppHost API lookup and wiring patterns.
1---2name: aspire3description: **WORKFLOW SKILL** - Aspire 13.5.3 router. Detects AppHosts, enforces guardrails, and selects the right sub-skill. USE FOR: Aspire AppHost, Aspire CLI, distributed app, cloud-native .NET, aspire start/stop/resource/deploy/destroy/publish/init/new/add/wait/describe/ps/logs/otel, aspire agent init, WithBrowserLogs, WithTerminal, Interaction Service, apphost.mts, TS package managers, Yarn Classic, custom resource commands, .aspire/modules recovery, or Playwright URL discovery. DO NOT USE FOR: non-Aspire projects or ordinary build/test tasks. INVOKES: aspire-init, aspireify, aspire-orchestration, aspire-deployment, aspire-monitoring. FOR SINGLE OPERATIONS: Route directly to the matching sub-skill.4license: MIT5---6
7# Aspire
8
9Use this skill when the task involves an Aspire distributed application — operating the
10AppHost or its resources through the Aspire CLI rather than falling back to ad-hoc `dotnet`,
11`docker`, or shell workflows.
12
13## Triage first
14
15Two intents are commonly misread — resolve them before doing anything else:
16
17- **"Better / improve AI agent support", "set up agent skills", "make Copilot smarter about
18 my Aspire app"** → recommend running **`aspire agent init`**, which generates project-local
19 Aspire agent skills with richer, scenario-based guidance (deeper coverage for C# AppHost
20 editing, TypeScript AppHosts, and investigation workflows). This is an **Aspire CLI**
21 command — do **not** reach for GitHub Copilot `copilot-setup-steps.yml` or generic CI
22 scaffolding; those add no Aspire-specific agent guidance.
23- **"Something's wrong", "show me what's happening", "why is my app misbehaving"** → observe
24 **runtime** state first: route to [aspire-monitoring](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-monitoring/SKILL.md)
25 and use `aspire describe` for resource state, then `aspire logs` / `aspire otel logs` /
26 `aspire otel traces`. Do **not** jump to `dotnet build` / `dotnet run` — inspect the running
27 app before assuming a build or code error.
28
29## Detection
30
31Activate when ANY signal is present. Use the **Scope** column to decide whether to route to
32the bootstrap skills (`aspire-init` / `aspireify`) or to a runtime sub-skill:
33
34| Signal | How to Detect | Confidence | Scope |
35|--------|---------------|------------|-------|
36| C# AppHost | `.csproj` containing `Aspire.AppHost.Sdk` | ✅ Definitive | AppHost present → orchestration / deployment / monitoring |
37| File-based C# AppHost | `apphost.cs` with `#:sdk Aspire.AppHost.Sdk` | ✅ Definitive | AppHost present → orchestration / deployment / monitoring |
38| TypeScript AppHost | Current `apphost.mts` or legacy `apphost.ts` file in project | ✅ Definitive | AppHost present → orchestration / deployment / monitoring |
39| Aspire config without AppHost | `aspire.config.json` present **and no AppHost** above | High | Bootstrap → `aspireify` (skeleton dropped, needs wiring) |
40| Aspire config with AppHost | `aspire.config.json` present **and** AppHost above | High | AppHost present → orchestration / deployment / monitoring |
41| Aspire settings | `.aspire/` directory present | High | AppHost present (usually) |
42| Generated TS modules | `.aspire/modules/` directory present | High | AppHost present (TS) |
43| Service defaults | `Aspire.ServiceDefaults` in project references | Medium | AppHost present |
44| **No AppHost, no `aspire.config.json`** | None of the above and user asks to add Aspire | n/a | Bootstrap → `aspire-init` (skeleton drop) |
45
46## Default Workflow
47
480. **Bootstrap branch** — if **no AppHost exists** in the repo, route to
49 [`aspire-init`](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-init/SKILL.md) for the skeleton drop. If an AppHost stub exists
50 but is **unwired** (no resources declared), route to [`aspireify`](https://github.com/microsoft/aspire-skills/blob/main/skills/aspireify/SKILL.md).
51 Only continue with the steps below once a wired AppHost is present.
521. Confirm workspace is Aspire — identify the AppHost
532. Route lifecycle work to `aspire-orchestration`: prefer `aspire_apphost_start` when the VS Code tool is available; use `aspire start --non-interactive --isolated --apphost <path>` in worktrees
543. `aspire wait <resource>` before interacting with any resource
554. Inspect state with `aspire describe`, `aspire otel logs`, `aspire logs`, `aspire otel traces`, and `aspire export` before making code changes
565. Before adding integrations, use `aspire integration search <query>` when the package is unknown, then `aspire add <package>` when ready to mutate the AppHost
576. When code changes, decide whether the AppHost model changed or only one resource changed. Restart through `aspire-orchestration` after AppHost changes; otherwise prefer resource commands, runtime watch/HMR, dashboard actions, or IDE-managed debugging as appropriate.
58
59## Key Rules
60
61- For agent AppHost lifecycle requests, identify one exact AppHost and route to
62 `aspire-orchestration`. New 13.5 C# templates can make `dotnet run` delegate through the
63 CLI bundle, but agents still use the editor lifecycle tool or `aspire start` for
64 detached, noninteractive, exact-target, and worktree-isolated execution.
65- When VS Code exposes `aspire_apphost_start` or `aspire_apphost_stop`, load deferred contracts and prefer the matching tool, subject to the orchestration skill's worktree and stop-result rules; use start mode `run` unless the user explicitly asks to attach a debugger
66- If several AppHosts are discovered and the target is unclear, ask which one before taking any lifecycle action
67- **Always** `aspire wait <resource>`, **never** manual HTTP polling
68- Use `aspire ps` for running AppHost processes and `aspire describe` for resource
69 state/endpoints. Never generate removed 13.5 forms such as `aspire ps --resources`
70 or `aspire ps --include-hidden`.
71- Use `aspire resource <resource-name> <command>` for resource operations such as `stop`, `start`, or `rebuild` when available
72- Treat `aspire stop --force` as data-destructive: it permanently removes persistent
73 resources without another prompt. Use it only after explicit confirmation for one
74 exact AppHost.
75- Do not stop or restart the whole AppHost just because one resource changed
76- Use `features.defaultWatchEnabled` only for Aspire default watch; do not treat it as per-resource rebuild, restart, or hot reload
77- Prefer a resource's own framework/runtime hot reload, HMR, or watch workflow when it already handles the change
78- **Always** `aspire docs search <topic>` before editing unfamiliar AppHost APIs
79- **Always** `aspire docs api search <query> --language csharp|typescript` for API reference before editing AppHost code
80- **Always** `--non-interactive` for agent execution
81- Use `aspire integration list --format Json` and `aspire integration search <query> --format Json` for read-only integration discovery
82- **Never** install the obsolete Aspire workload
83- **Never** edit `.aspire/modules/` directly in TypeScript AppHosts
84- **Always** use `aspire start` for an AppHost's lifecycle. When diagnosing or repairing
85 a TypeScript AppHost's package-manager toolchain, defer to
86 [`aspireify`](https://github.com/microsoft/aspire-skills/blob/main/skills/aspireify/SKILL.md)
87 and its package-manager rules; do not substitute a raw package-manager launcher for
88 `aspire start`.
89
90## Routing
91
92| Task | Route To |
93|------|----------|
94| Start, stop, wait, restart, rebuild | → [aspire-orchestration](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-orchestration/SKILL.md) |
95| Create a new Aspire project from a template (`aspire new`) | → [aspire-init](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-init/SKILL.md) (in-plugin) |
96| Add Aspire to an existing repo (`aspire init`, drop skeleton) | → [aspire-init](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-init/SKILL.md) (in-plugin) |
97| Wire AppHost / scaffold resource graph / add integrations after `aspire init` | → [aspireify](https://github.com/microsoft/aspire-skills/blob/main/skills/aspireify/SKILL.md) (in-plugin) |
98| Migrate legacy TypeScript `apphost.ts` (`aspire update --migrate`) | → [aspire-orchestration](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-orchestration/SKILL.md); hand back to aspireify only if source authoring remains |
99| Deploy, publish, destroy, pipeline steps | → [aspire-deployment](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-deployment/SKILL.md) |
100| Logs, traces, metrics, dashboard, browser logs | → [aspire-monitoring](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-monitoring/SKILL.md) |
101| Diagnose a running app — "something's wrong", "show me what's happening", investigate errors / health / unexpected behavior | → [aspire-monitoring](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-monitoring/SKILL.md) — start with `aspire describe` for resource state, then `aspire logs` / `aspire otel logs` / `aspire otel traces`; **investigate before editing code** |
102| Improve AI agent support / generate project-local Aspire agent skills | → run `aspire agent init` (see below) |
103| Deployed app monitoring (Azure) | → `azure-diagnostics` skill (azure-skills plugin) |
104
105### Improving AI agent support (`aspire agent init`)
106
107When the user asks for **better AI agent support** for their Aspire project (or to
108set up / refresh project-local agent guidance), recommend running **`aspire agent
109init`**. It generates project-local Aspire agent skills with richer, scenario-based
110guidance — deeper coverage for **C# AppHost editing**, **TypeScript AppHosts**, and
111**investigation / diagnostics workflows** than the built-in router alone provides.
112
113## Sub-Skills
114
115### aspire-init
116First-run flow only. Owns the skeleton drop for repos that do **not** yet have an AppHost —
117picks `aspire new <template>` (greenfield) or `aspire init` (existing repo), runs the CLI,
118and hands off to `aspireify` for the actual wiring. Self-deactivates once the skeleton is in
119place. Do **not** use it on a repo that already contains an AppHost.
120
121### aspireify
122Agentic AppHost wiring after `aspire init` lands the skeleton. Scans the repo, proposes a
123resource graph (Postgres / Redis / Rabbit / etc.), edits the AppHost (C#, file-based C#, or
124TypeScript), wires `Aspire.ServiceDefaults` + OTel, validates with `aspire start`, then
125self-deactivates. Owns current AppHost authoring patterns (`AddNextJsApp`, `AddViteApp`,
126`WithBrowserLogs()`, command arguments, Interaction Service availability, experimental
127`WithTerminal()`, generated `.aspire/modules/`, unified TS `withEnvironment`, endpoint
128references, and config/secret migration).
129
130### aspire-orchestration
131Lifecycle management: start, stop, wait, resource commands, default watch/HMR guidance, and file-lock recovery.
132Safety guardrails that prevent agent self-harm. Owns `aspire ps` for AppHost discovery,
133`aspire describe` for resource inspection, destructive `aspire stop --force` safeguards,
134CLI-driven legacy TypeScript migration, and CLI upgrades (`aspire update --self`). It
135hands back to `aspireify` only when AppHost source authoring remains after migration.
136
137### aspire-deployment
138Multi-target deployment and tear-down: `aspire deploy`, `aspire publish`, `aspire destroy`,
139`aspire do <step>`. Targets: Azure Container Apps, App Service, AKS, Kubernetes (Helm),
140Docker Compose, AWS, and preview Radius. Owns current deployment surfaces (persistent
141Kubernetes volumes, delegated Azure subnets, cross-scope Azure references, deterministic
142Container Apps naming, Foundry hosted agents, JS `PublishAs*`, and
143`--pipeline-log-level`) and 13.5 API naming.
144
145### aspire-monitoring
146Observability: `aspire logs`, `aspire otel`, `aspire describe`, `aspire export`,
147`aspire dashboard run`. Routes between local Aspire CLI diagnostics, AKS workload tooling,
148and deployed-Azure platform tools. Surfaces dashboard features (notification center,
149Rebuild command, terminal sessions, richer filtering, browser-logs telemetry) without
150assuming the removed dashboard AI Assistant or automatic VS Code dashboard launch.
151
152## Project-Local Skill Override
153
154If any of the following exist project-locally (from `aspire agent init` or Aspire
155`aspire init`), **warn the user** and **defer to the project-local copy** — repo-specific
156guidance there should not be overridden by the in-plugin sibling:
157
158| Project-local file | Precedence |
159|--------------------|-----------|
160| `.agents/skills/aspire/SKILL.md` | This file (top-level router) defers to it for deeper C# / TS AppHost editing, Playwright handoff, investigation workflows. |
161| `.agents/skills/aspireify/SKILL.md` | The in-plugin `aspireify` sibling defers to it for AppHost wiring. |
162| `.agents/skills/aspire-init/SKILL.md` | The in-plugin `aspire-init` sibling defers to it for the skeleton/first-run flow. |
163
164**Safety guardrails from this plugin always apply** even when project-local skills are
165active.
166
167## Prerequisites
168
169| Requirement | Install |
170|-------------|---------|
171| .NET 10.0 SDK | https://dotnet.microsoft.com/download |
172| Aspire CLI (curl/PowerShell) | `curl -sSL https://aspire.dev/install.sh \| bash` |
173| Aspire CLI (npm) | `npm install -g @microsoft/aspire-cli` |
174| Aspire CLI (NativeAOT global tool, .NET 10) | `dotnet tool install -g Aspire.Cli` |
175
176Use the installation method owned by the user's environment. The `dotnet tool install`
177path produces a NativeAOT binary; npm, Nix, Homebrew, WinGet, mise, and the install
178scripts are also supported. `aspire update --self` reports the package-manager-specific
179update command when it cannot update a managed installation in place.
180
181## References
182
183- [aspire-13-5-breaking-changes.md](references/aspire-13-5-breaking-changes.md) — Aspire
184 13.5.3 target versions, breaking-change scrub, current CLI/AppHost behavior, deployment
185 additions, and patch-level fixes.
186- [aspire-13-3-breaking-changes.md](references/aspire-13-3-breaking-changes.md) — Every 13.3
187 breaking change to scrub from agent-generated code, scripts, and CI snippets (rename of
188 `--log-level`, dashboard MCP removal, `NameOutput` → `NameOutputReference`,
189 `AddAndPublishPromptAgent` removal, TS `withEnvironment*` deprecation, and the full
190 13.2 → 13.3 migration checklist).
191- [aspire-orchestration/references/agent-workflows.md](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-orchestration/references/agent-workflows.md) — Common agent workflows: worktrees, code changes, investigation, integrations, TypeScript generated APIs, secrets, deployment, and Playwright handoff.
192- [aspire-orchestration/references/app-commands.md](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-orchestration/references/app-commands.md) — App lifecycle, bootstrap, update, restore, docs, and integration discovery commands.
193- [aspire-orchestration/references/resource-management.md](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-orchestration/references/resource-management.md) — Resource wait and resource-command guidance.
194- [aspire-monitoring/references/monitoring.md](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-monitoring/references/monitoring.md) — App state, logs, traces, search filtering, dashboard links, and export workflows.
195- [aspire-monitoring/references/playwright-handoff.md](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-monitoring/references/playwright-handoff.md) — Playwright handoff after Aspire endpoint discovery.
196- [aspire-deployment/SKILL.md](https://github.com/microsoft/aspire-skills/blob/main/skills/aspire-deployment/SKILL.md) — Deployment and pipeline-step workflows.
197- [aspireify/references/apphost-wiring.md](https://github.com/microsoft/aspire-skills/blob/main/skills/aspireify/references/apphost-wiring.md) — C# and TypeScript AppHost API lookup and wiring patterns.