Share this project


Share this project

The world needs an alternative Windows Store. Chocolatey is thriving as that store. Help us make The Chocolatey Experience a reality!
1,044 backers pledged $51,071 to help bring this project to life.

Chocolatey is 5 years old! Tab Completion and Refresh Environment comes to PowerShell!

Posted by Rob Reynolds (Creator)

Chocolatey turned 5 years old yesterday! For its birthday, I added a couple of long sought after features for Chocolatey that you are going to love: tab completion and refreshenv (Refresh Environment Variables).

PowerShell Tab Completion

Tab completion. I bet some of you are thinking, "Yes!" and/or "That's Awesome!" while others are thinking, "It's about time!" I showed a preview of this feature on twitter. 

Now tab completion is super cool by itself. But tab completion for context sensitive things like package names?! Yes, it does that! It works with that (top 30 results for install). Here's an updated version of that showing autocomplete for package names (and it also works with upgrade and uninstall)!!

Refresh Environment Variables

RefreshEnv (Refresh Environment Variables) is a feature that allows you to update the shell without having to restart it. Running choco in cmd.exe has long enjoyed being able to update environment variables without restarting the shell. Now PowerShell has that option as well!

Notice how Chocolatey even told you that the path had changed and gave you the information about the refreshenv command? You can even set a feature for Chocolatey to show the environment variable changes (see choco feature list). 

Available Now

Did I mention it's ready right now for you to use? It's all in the latest beta. Go get it now! 


Only backers can post comments. Log In
    1. Rob Reynolds Creator on

      A quick note - came out of this. While testing this feature I ran into this once and thought it was an anomaly.

      Chocolatey runs PowerShell with no profile to keep from other modules loading and messing with it's settings (and as a security measure). However that also means that `$profile` is always empty. So we'll need to provide another way to automatically hook this up.

      In the mean time you can take a look at the issue and see how to hook it up so it will work.