A data-driven, lightning-fast, and highly customizable argument auto-completer for PowerShell.
Tired of PowerShell not knowing the subcommands and flags for your favorite CLI tools like adb, git, fastboot, or npm? Ultimate Completer solves this by using a simple, easily extendable JSON dictionary to provide deep, multi-level tab completion with helpful tooltips.
No need to write complex PowerShell completion scripts for every single tool. Just add it to the JSON file, and you're good to go!
- Data-Driven: All commands, subcommands, flags, and descriptions are stored in a single
completions.jsonfile. - Deep Hierarchy: Supports endless levels of nested subcommands (e.g.,
fastboot flash boot -a). - Smart Tooltips: Displays descriptions of what each subcommand does right in your terminal menu.
- Executable Friendly: Seamlessly handles commands whether you type
adboradb.exe.
Ultimate Completer handles arguments, not the root commands themselves. For this module to trigger, the base CLI tools you are trying to use (like git, adb, fastboot, wsl) must be installed on your system and accessible globally.
- Ensure your tools are added to your system's Environment Variables (
PATH). - OR, define them as an Alias in your PowerShell profile.
If PowerShell doesn't recognize fastboot as a valid command on your system, hitting Tab won't trigger the argument completer!
The easiest way to install Ultimate Completer is via the PowerShell Gallery.
1. Install the module: Open PowerShell and run:
Install-Module -Name UltimateCompleter -Scope CurrentUser2. Add it to your PowerShell Profile: To make the auto-completion work automatically every time you open a new terminal, you need to import it in your profile.
Open your profile:
notepad $PROFILE
Add this line to the very end of the file, save, and restart your terminal:
Import-Module UltimateCompleter -DisableNameChecking
The entire logic is powered by the completions.json file located inside the module folder. It uses a clean, intuitive structure. Here is a quick example of how an entry looks:
"adb": {
"subcommands": {
"sideload": { "description": "Sideloads a package to the device" },
"install": {
"description": "Pushes a package to the device and installs it",
"flags": {
"-r": "Replace existing application",
"-d": "Allow version code downgrade",
"-g": "Grant all runtime permissions"
}
},
"shell": { "description": "Starts a remote shell" },
"devices": {
"description": "Prints a list of connected devices",
"flags": {
"-l": "List device paths"
}
}
When you type adb i<TAB>, the module instantly reads this JSON and suggests install along with its description.
This module was built to be expanded by the community. You don't need to know advanced PowerShell to contribute; you just need to know JSON!
How to contribute:
-
Fork the repository.
-
Open
completions.json. -
Add your favorite CLI tool using the existing structure (Root command -> Subcommands -> Flags & Descriptions).
-
Commit your changes and submit a Pull Request.
This project is licensed under the GPL License.
Created by @osmanonurkoc

