Great command line editing in the PowerShell console host

Minimum PowerShell version


This is a prerelease version of PSReadLine.
There is a newer prerelease version of this module available.
See the version list below for details.

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name PSReadLine -RequiredVersion 2.0.0-beta2 -AllowPrerelease

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deloy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More


Microsoft Corporation


(c) Microsoft Corporation. All rights reserved.



Get-PSReadLineKeyHandler Set-PSReadLineKeyHandler Remove-PSReadLineKeyHandler Get-PSReadLineOption Set-PSReadLineOption




This module has no dependencies.

Release Notes

### Version 2.0.0-beta2

Pre-release notes:

Bug fixes:

* Fix issue with keyboard layout changes (#667) (Thanks @powercode)
* Fix cursor placement after window resize (#682) (Thanks @jianyunt)
* Fix rendering of long lines on non-Windows (#686) (Thanks @jianyunt)
* Fix Ctrl+h/Backspace on non-Windows (#619) (Thanks @daxian-dbw)
* Fix some custom key bindings on Windows (#580) (Thanks @daxian-dbw)
* Fixed CompleteMenu in vi insert mode (#651) (Thanks @srdubya)
* Fix ExtraPromptLineCount for ClearScreen (#634) (Thanks @daxian-dbw)
* Support color escape sequences in PromptText (#653) (Thanks @powercode)
* Support Ctrl+u in vi insert mode (#628) (Thanks @srdubya)
* Fix keys needing AltGr (#617)
* Fix vi-mode cursor placement issues (#623) (Thanks @srdubya)
* Ignore exceptions when setting OutputEncoding
* Fix hang on closing on pre-Win10 (#609)
* Enable Ctrl+c on non-Windows (#610)
* Improve VT emulation for pre-Win10 (#605)

### Version 2.0.0-beta1

Pre-release notes:

There are known issues:

* Some custom key bindings are broken (#580)

Breaking changes:
* Requires PowerShell V5 or later and .Net 4.6.1
* Set-PSReadLineOption options have changed
 - To specify colors, use the new `-Color` parameter and pass a Hashtable
 - All other color options have been removed include `-ResetTokenColors`
 - To specify background colors, you must now use a VT escape sequence.
* Changing the end of the prompt to red may not work automatically anymore if
 your prompt is non-trivial. To fix, use `Set-PSReadLineOption -PromptText "> "`.
* Consistently use `PSReadLine` instead of `PSReadline` everywhere, APIs, cmdlets, files, etc.
* Building requires VS2017

New features:
* Interactive filtering during menu complete (#515) (Thanks @MVKozlov!)
* Redirected input now works (#564) (Thanks @parkovski!)
* Tooltips always on in MenuComplete (only displayed
 if they give more information than the completion.)
* Get-PSReadLineKeyHandler output is grouped by category. (#114)
* Support for VT escape sequences to specify colors.
* Shift+Insert bound to Paste in Windows mode (#484)
* Ctrl+t bound to SwapCharacters in Emacs mode (#538) (Thanks andrewcromwell!)
* Ctrl+x,Ctrl+e bound to ViEditVisually in Emacs mode (#478)
* HistoryNoDuplicates is now on by default (#208)

Bug fixes:
* DeleteChar no longer deletes any text left of the cursor in Windows/Emacs
 and matches vim behavior of working like <x> in command mode.
* Fix InvokePrompt when the prompt is > 1 line.
* Fix YankToPercent off by 1 error.
* Fix error reported when running in container.
* Catch and ignore execptions in InvokePrompt (#583)
* Get new completions on 2nd tab if 1st had 1 result (#238)
* Tab replaced with 4 spaces during paste (#144)
* Fix rendering after buffer resize (#418)
* Invoke external editor w/o AcceptLine (#339)
* Fix exception with UpArrow after a command line edit in vi-mode (#573) (Thanks @srdubya!)
* Treat DingDuration=0 as BellStyle.None (#364)
* Color long name parameters like --force as a parameter (#398)
* Allow CaptureScreen to be used w/o a key binding (#419)
* Ignore duplicates during tab completion (#413)
* Fix exception with negative count in Delete (#502)
* Use correct help file name (#507)
* Fix exception in ShowKeyBinding w/ custom handler (#505)
* Normalize filename for saving history (#512)
* Treat end of buffer as whitespace for vi words (#536)
* Fix exception with invalid CompletionResult (#534)
* Fix exception with negative count in Kill* (#540) (Thanks andrewcromwell!)
* Fixes to SwapCharacters (#538) (Thanks andrewcromwell!)
* Fix cursor placement with CJK characters (#542)
* Fix key bindings with certain Windows keyboard layouts (#168 #556)
* Remove Ding from Backspace on an empty line (#422)
* Fix occasional hang reading history file (#524)
* HistorySearchCursorMovesToEnd previously only worked in incremental search.
 It is now on by default, honored in the non-incremental search (HistorySearch)
 and also in Vi Command mode for non-search history recall. (#438 #530) (Thanks @srdubya!)

(For older history see Changes.txt)

Version History

Version Downloads Last updated
2.0.0-rc2 2,439 1/14/2020
2.0.0-rc1 6,110 12/11/2019
2.0.0-beta6 4,371 11/14/2019
2.0.0-beta5 12,620 9/13/2019
2.0.0-beta4 14,392 5/7/2019
2.0.0-beta3 30,165 9/4/2018
2.0.0-beta2 (current version) 7,211 6/4/2018
2.0.0-beta1 1,870 12/6/2017
1.2 95,658 1/25/2016 6,513 2/18/2015 726 8/26/2014 136 6/13/2014 22 6/13/2014 22 6/11/2014 138 5/7/2014
Show less