# aspire doctor command

## Name

`aspire doctor` - Check the Aspire development environment for common issues.

## Synopsis

```bash title="Aspire CLI"
aspire doctor [options]
```

<AsciinemaPlayer src="/casts/aspire-doctor.cast" poster="npt:0:01" rows={20} loop={false} speed={.5} />

## Description

The `aspire doctor` command runs a series of diagnostic checks to verify that your development environment is properly configured for Aspire development. It checks prerequisites such as the .NET SDK, container runtime, and environment settings.
**Note:** The `aspire doctor` command replaces the hidden `aspire setup` command. If you
  previously used `aspire setup` or `aspire setup --force`, use `aspire doctor`
  instead. The `aspire setup` command is still available for backward
  compatibility but is hidden from help output.

This command is useful for troubleshooting when you encounter issues with Aspire or when setting up a new development environment. The checks are grouped by category:

- **SDK checks**: Verifies .NET SDK installation and version requirements
- **Container checks**: Validates container runtime (Docker/Podman) availability and configuration
- **Environment checks**: Validates environment variables and other settings

The command displays results with clear status indicators:

- ✓ (green) - Check passed
- ⚠ (yellow) - Warning (non-blocking issue)
- ✗ (red) - Check failed (blocking issue)

If any checks fail, the command provides suggestions for how to fix the issues and links to relevant documentation.

## Options

The following options are available:

- **`--format <Table|Json>`**

  Output format (Table or Json). Use `Json` for automation scenarios or when you need to parse the results programmatically. Defaults to `Table`.

- <Include relativePath="reference/cli/includes/option-help.md" />

- <Include relativePath="reference/cli/includes/option-log-level.md" />

- <Include relativePath="reference/cli/includes/option-non-interactive.md" />

- <Include relativePath="reference/cli/includes/option-nologo.md" />

- <Include relativePath="reference/cli/includes/option-banner.md" />

- <Include relativePath="reference/cli/includes/option-wait.md" />

## Examples

- Run diagnostic checks on your development environment:

  ```bash title="Aspire CLI"
  aspire doctor
  ```

- Run diagnostic checks with JSON output:

  ```bash title="Aspire CLI"
  aspire doctor --format Json
  ```

## Sample output

When you run `aspire doctor`, you see output similar to the following:

```bash title="Aspire CLI"
Environment Check
=================

SDK
✓  .NET SDK 10.0.100 or later is installed
✓  Aspire templates are available

Container Runtime
✓  Docker is installed and running
✓  Docker Compose is available

Environment
✓  ASPNETCORE_ENVIRONMENT is set correctly

Summary: 5 passed, 0 warnings, 0 failed
```

## Exit codes

The command returns the following exit codes:

| Exit code | Description                              |
| --------- | ---------------------------------------- |
| `0`       | All checks passed (warnings are allowed) |
| `1`       | One or more checks failed                |

## JSON output format

When using the `--format Json` option, the output includes a structured response with all check results and a summary:

```json
{
  "checks": [
    {
      "category": "sdk",
      "message": ".NET SDK 10.0.100 or later is installed",
      "status": "Pass"
    }
  ],
  "summary": {
    "passed": 5,
    "warnings": 0,
    "failed": 0
  }
}
```

## See also

- [aspire command](../aspire/)
- [aspire run command](../aspire-run/)
- [Aspire CLI overview](../../overview/)