Skip to content

Disable the azd tool first-run prompt while retaining tool functionality #9258

Description

@RickWinter
  • Make sure you've installed the latest version using instructions

N/A, this issue requests a product behavior change.

Output from azd version
Run azd version and copy and paste the output here:

N/A

Describe the bug
The ToolFirstRunMiddleware displays a first-run prompt on the first interactive invocation of azd, asking whether the user wants to check and install Azure development tools. Disable this automatic first-touch prompt.

Keep the azd tool command group and its tool extension functionality available. Users should still be able to discover, install, upgrade, check, and uninstall tools explicitly through azd tool commands. This change should remove only the unsolicited first-run prompt and its automatic flow.

To Reproduce
Steps to reproduce the behavior:

  1. Run azd interactively with a fresh user configuration that does not contain tool.firstRunCompleted.
  2. Observe the development tools welcome message and the prompt: Would you like to check your Azure development tools?

Expected behavior
The first invocation of azd should proceed directly to the requested command without displaying the tool first-run prompt. The azd tool commands and underlying extension functionality should remain unchanged and available when explicitly invoked.

Acceptance criteria:

  • The tool first-run middleware no longer prompts users on first touch.
  • No automatic tool detection or installation flow runs during an unrelated azd command.
  • Existing azd tool commands and tool extension behavior remain available.
  • Existing non-interactive and --no-prompt behavior remains deterministic.
  • Tests and telemetry documentation tied to the retired first-run flow are updated or removed as appropriate.

Environment
Information on your environment:

N/A, applies across supported environments.

Additional context
The current behavior is implemented in cli/azd/cmd/middleware/tool_first_run.go. Preserve the explicit tool management surface, remove only the automatic first-touch experience.

Metadata

Metadata

Assignees

Labels

area/toolsExternal tools (Docker, npm, Python)

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions