aspire-orchestration
**WORKFLOW SKILL** — Manage Aspire AppHost lifecycle and recover from file locks, port conflicts, and orphaned processes. WHEN: "start my Aspire app", "aspire start", "aspire stop", "aspire wait", "restart the API service", "file lock error", "MSB3491", "CS2012", "port already in use", "upgrade Aspire CLI", "aspire update --self", "proxies missing in aspire ps", "--include-hidden", "aspire integration list", "aspire integration search", "default watch", "hot reload". INVOKES: aspire CLI (start, stop, wait, ps, resource, integration, add, init, doctor, update, restore). DO NOT USE FOR: deploy /
npx skills add microsoft/aspire-skills --skill aspire-orchestration --agent copilot
Same command for any agent — swap --agent for claude-code, codex, cursor.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Aspire Orchestration > **MANDATORY COMPLIANCE** — This skill prevents agent self-harm in Aspire projects. > Violating these rules causes file locks, orphaned processes, and user frustration ([#15801](https://github.com/microsoft/aspire/issues/15801)). ## 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 (NativeAOT global tool, .NET 10) | `dotnet tool install -g Aspire.Cli` | Either install method works. The `dotnet tool install` path produces a NativeAOT binary (instant startup, no JIT warmup) and is the recommended option when .NET 10 is already present. ## Detection Activate when ANY signal is present: | Signal | How to Detect | Confidence | |--------|---------------|------------| | C# AppHost | `.csproj` containing `Aspire.AppHost.Sdk` | ✅ Definitive | | File-based C# AppHost | `apphost.cs` or `.cs` file with `#:sdk Aspire.AppHost.Sdk` | ✅ Definitive | | TypeScript AppHost | `apphost.ts` file in project | ✅ Definitive | | Aspire config | `aspire.config.json` in project root | High | | Aspire settings | `.asp
- Prerequisites
- Detection
- Safety Guardrails
- Default Workflow
- Quick Reference
- Error Handling
- 🔒 File-Lock Recovery (MSB3491 / CS2012) — Always aspire stop First
- Handoff Rules
- Runtime Settings And Environment
- TypeScript AppHost Note
- Skill Routing — In-Plugin Sibling Skills
- Project-Local Skill Precedence
- References
aspire stop # release the locks aspire resource <name> rebuild # example: C# project resource with rebuild command aspire start # if AppHost code changed or Aspire was already stopped
What does the aspire-orchestration skill do?
**WORKFLOW SKILL** — Manage Aspire AppHost lifecycle and recover from file locks, port conflicts, and orphaned processes. WHEN: "start my Aspire app", "aspire start", "aspire stop", "aspire wait", "restart the API service", "file lock error", "MSB3491", "CS2012", "port already in use", "upgrade Aspire CLI", "aspire update --self", "proxies missing in aspire ps", "--include-hidden", "aspire integration list", "aspire integration search", "default watch", "hot reload". INVOKES: aspire CLI (start, stop, wait, ps, resource, integration, add, init, doctor, update, restore). DO NOT USE FOR: deploy /
How do I install it?
Run `npx skills add microsoft/aspire-skills --skill aspire-orchestration --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From microsoft/aspire-skills, a repository with 76 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.