Skip to content

aspire add: support non-interactive search/filter for hosting integrations #15880

@DamianEdwards

Description

@DamianEdwards

Description

When adding a hosting integration via aspire add, there's no non-interactive way to search or list available integrations. The current experience requires an interactive picker (arrow keys + type-to-search), which doesn't work for:

  1. Coding agents — AI agents (Copilot, etc.) can't navigate interactive pickers. They need a CLI-first way to discover integration names programmatically.
  2. Scripting/automation — CI pipelines or setup scripts can't use the interactive flow.
  3. Quick discovery — Developers who want to browse what's available before committing to an add.

Current behavior

  • aspire add → interactive picker (only option)
  • aspire add --list → exit code 5 (unrecognized flag)
  • aspire search → "Unrecognized command, did you mean 'secret'?"
  • aspire add azure-appcontainers → works, but you have to already know the exact name

Proposed behavior

Support one or more of:

  • aspire add --list — List all available integrations (with --json for machine-readable output)
  • aspire add --search <query> — Filter integrations by keyword (e.g., aspire add --search azure, aspire add --search redis)
  • aspire search <query> — Standalone search command as an alias

Ideally with --json output support for agent/automation consumption:

\\�ash
$ aspire add --search azure --json
[
{ "name": "azure-appcontainers", "package": "Aspire.Hosting.Azure.AppContainers", "version": "13.2.1" },
{ "name": "azure-cosmosdb", "package": "Aspire.Hosting.Azure.CosmosDB", "version": "13.2.1" },
...
]
\\

Motivation

During a real session, adding Azure Container Apps required: running aspire add → scrolling through dozens of options in the picker → cancelling → re-running with the exact name we spotted. A simple aspire add --search azure would have taken seconds. More importantly, the coding agent assisting the session had to launch the interactive picker, read the output, stop it, and then run the command with the known name — a workflow that should be a single command.

Environment

  • Aspire SDK: 13.2.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-integrationsIssues pertaining to Aspire Integrations packagesaspirifridayBugs found during Aspiri-Friday

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions