• PowerShell
  • CLI Completion
  • Bash

Enable CLI Completion in PowerShell using Bash Completions

With this article I will go over how I enabled Pulumi Command-Line Completion to PowerShell. Since Pulumi does not have built in completion generation for PowerShell I had to find another way to get this sweet feature. Since Pulumi does support Bash CLI Completion generation we can use this generation to do it!

How It's Done

Here is a high-level overview of what will be needed to get completions running for Pulumi:

  • Install the PSBashCompletions PowerShell Module

  • Make sure bash.exe is in our path.

  • Generate our bash completion script, in our case I am using Pulumi's.

  • Register our bash completion script with the PSBashCompletions Module.

We rely heavily on the article PSBashCompletions: Bash Argument Completion in PowerShell from Travis Illig, he published the PSBashCompletions PowerShell Module as part of this article. The article states we need to have the bash.exe in our path, this comes along with Git for Windows, so install that if you need too.

Installing BashArgumentCompleter use this command:

Install-Module -Name PSBashCompletions -Scope CurrentUser

To generate the bash completion and output it into a file for Pulumi I used the below PowerShell command:

pulumi gen-completion bash > $PROFILE_PATH/.pulumi_completions

To register our bash completion script with Pulumi:

Register-BashArgumentCompleter pulumi "$PROFILE_PATH/.pulumi_completions"

Testing out the bash completion:

pulumi s<ctrl+space>
Pulumi Auto-Completion in PowerShell using Bash Auto-Completion File

Cody's logo image, it is an abstract of a black hole with a white Event Horizon.

Cody Merritt Anhorn

A Engineer with a passion for Platform Architecture and Tool Development.