Why PSCompletions
Problems with PowerShell's Built-in Completion
PowerShell comes with built-in Tab completion, but it has some limitations:
- Completion menu depends heavily on terminal size — The built-in menu has no scrolling, so if all completion items exceed the terminal's display area, the completion function breaks down completely
- No completion library — PowerShell doesn't provide a built-in completion library, users need to find or write completion scripts themselves
- Completion loading impacts terminal startup performance — Traditional approach requires injecting all completion scripts at terminal startup, more completions mean slower startup
- No dynamic sorting — Completion items are displayed in a fixed order, can't adjust based on usage frequency
- Lack of unified management — Completions come from different sources, making them difficult to configure and manage consistently
How PSCompletions Solves These Problems
Module Completion Menu
PSCompletions provides a more feature-rich completion menu:
- Scroll menu — Works regardless of terminal size, can always display the completion menu even if only one item fits, just scroll through
- Wildcard filtering — Use
*,?and other wildcards to quickly filter items - Predict symbols — Use
~,?,!symbols to preview behavior before selecting
Completion Library
PSCompletions includes a built-in completion library covering hundreds of common commands:
- Dynamic loading — Completion data is loaded on demand. Adding dozens or hundreds of completions has almost no impact on terminal loading speed
- Ready to use —
psc add gitto add completions, no extra configuration needed - Unified management — All completions managed through
psccommands - Third-party integration — Supports argc-completions, Carapace, and more
Dynamic Sorting
Automatically adjusts the display order of completion items based on your command history:
- Frequently used items appear first
- Based on PSReadLine command history
- Works for all completions automatically
Multilingual Support
Supports multiple languages with easy switching:
- Currently supports en-US and zh-CN
- Each completion item has independent multilingual tips
- Simple and flexible language configuration
See Language