--- name: aspire description: "Orchestrates Aspire distributed applications using the Aspire CLI for running, debugging, and managing distributed apps. USE FOR: aspire start, aspire stop, start aspire app, aspire describe, list aspire integrations, debug aspire issues, view aspire logs, add aspire resource, aspire dashboard, update aspire apphost. DO NOT USE FOR: non-Aspire .NET apps (use dotnet CLI), container-only deployments (use docker/podman), Azure deployment after local testing (use azure-deploy skill). INVOKES: Aspire CLI commands (aspire start, aspire describe, aspire otel logs, aspire docs search, aspire add), bash. FOR SINGLE OPERATIONS: Use Aspire CLI commands directly for quick resource status or doc lookups." --- # Aspire Skill This repository uses Aspire to orchestrate its distributed application. Resources are defined in the AppHost project (`apphost.cs` or `apphost.ts`). ## CLI command reference | Task | Command | |---|---| | Start the app | `aspire start` | | Start isolated (worktrees) | `aspire start --isolated` | | Restart the app | `aspire start` (stops previous automatically) | | Wait for resource healthy | `aspire wait ` | | Stop the app | `aspire stop` | | List resources | `aspire describe` or `aspire resources` | | Run resource command | `aspire resource ` | | Start/stop/restart resource | `aspire resource start|stop|restart` | | View console logs | `aspire logs [resource]` | | View structured logs | `aspire otel logs [resource]` | | View traces | `aspire otel traces [resource]` | | Logs for a trace | `aspire otel logs --trace-id ` | | Add an integration | `aspire add` | | List running AppHosts | `aspire ps` | | Update AppHost packages | `aspire update` | | Search docs | `aspire docs search ` | | Get doc page | `aspire docs get ` | | List doc pages | `aspire docs list` | | Environment diagnostics | `aspire doctor` | | List resource MCP tools | `aspire mcp tools` | | Call resource MCP tool | `aspire mcp call --input ` | Most commands support `--format Json` for machine-readable output. Use `--apphost ` to target a specific AppHost. ## Key workflows ### Running in agent environments Use `aspire start` to run the AppHost in the background. When working in a git worktree, use `--isolated` to avoid port conflicts and to prevent sharing user secrets or other local state with other running instances: ```bash aspire start --isolated ``` Use `aspire wait ` to block until a resource is healthy before interacting with it: ```bash aspire start --isolated aspire wait myapi ``` Relaunching is safe — `aspire start` automatically stops any previous instance. Re-run `aspire start` whenever changes are made to the AppHost project. ### Debugging issues Before making code changes, inspect the app state: 1. `aspire describe` — check resource status 2. `aspire otel logs ` — view structured logs 3. `aspire logs ` — view console output 4. `aspire otel traces ` — view distributed traces ### Adding integrations Use `aspire docs search` to find integration documentation, then `aspire docs get` to read the full guide. Use `aspire add` to add the integration package to the AppHost. After adding an integration, restart the app with `aspire start` for the new resource to take effect. ### Using resource MCP tools Some resources expose MCP tools (e.g. `WithPostgresMcp()` adds SQL query tools). Discover and call them via CLI: ```bash aspire mcp tools # list available tools aspire mcp tools --format Json # includes input schemas aspire mcp call --input '{"key":"value"}' # invoke a tool ``` ## Important rules - **Always start the app first** (`aspire start`) before making changes to verify the starting state. - **To restart, just run `aspire start` again** — it automatically stops the previous instance. NEVER use `aspire stop` then `aspire run`. NEVER use `aspire run` at all. - Use `--isolated` when working in a worktree. - **Avoid persistent containers** early in development to prevent state management issues. - **Never install the Aspire workload** — it is obsolete. - Prefer `aspire.dev` and `learn.microsoft.com/microsoft/aspire` for official documentation. ## Playwright CLI If configured, use Playwright CLI for functional testing of resources. Get endpoints via `aspire describe`. Run `playwright-cli --help` for available commands.