azd x support interactive - #6367
Conversation
- Integrated GetResolvedServices RPC (from main) with ParseGitHubUrl RPC (from branch) - Both importManager and ghCli dependencies now coexist in projectService - All tests passing for both features - Regenerated protobuf files with protoc-gen-go-grpc v1.5.1
…support-interactive
There was a problem hiding this comment.
Pull request overview
This PR adds support for interactive mode in the Azure Developer CLI (azd) extension framework, enabling extensions to run as Terminal User Interface (TUI) applications with direct control over stdin/stdout/stderr. This is essential for TUI frameworks like Bubble Tea that require raw terminal access.
Key Changes:
- Added
Interactiveboolean field to extension metadata and configuration - Modified extension runner to bypass custom stdio redirection when Interactive mode is enabled
- Updated JSON schema with comprehensive documentation for the new feature
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| cli/azd/pkg/extensions/runner.go | Implements Interactive mode logic - bypasses custom stdio when extension.Interactive is true, directly connecting to terminal via WithInteractive(true) |
| cli/azd/pkg/extensions/registry.go | Adds Interactive field to ExtensionVersion struct with documentation explaining TUI use case |
| cli/azd/pkg/extensions/manager.go | Propagates Interactive field during extension installation from ExtensionVersion to Extension struct |
| cli/azd/pkg/extensions/extension.go | Adds Interactive field to Extension struct for runtime configuration |
| cli/azd/extensions/microsoft.azd.extensions/internal/models/extension_schema.go | Adds Interactive field to ExtensionSchema with YAML serialization support |
| cli/azd/extensions/microsoft.azd.extensions/internal/cmd/publish.go | Propagates Interactive field when publishing extension versions to registry |
| cli/azd/extensions/extension.schema.json | Defines Interactive property in JSON schema with clear documentation and default value |
Azure Dev CLI Install InstructionsInstall scriptsMacOS/Linux
bash: pwsh: WindowsPowerShell install MSI install Standalone Binary
MSI
Documentationlearn.microsoft.com documentationtitle: Azure Developer CLI reference
|
Adding this feature in the extensions-framework and to the
azd xextension to allow extensions to opt-in to be executed as interactive-mode, allowing them to own stdout and stdin completely.Without this option, extensions can only run writing to azd buffers. This blocks extensions to be fully TUI CLI programs.
This change is required to use
azd concurxextension as TUI app. I will create a PR that uses this changes in concurX next.