inshellisense: IDE-Style Autocomplete for Your Terminal (600+ CLI Tools)
If you've ever wished your terminal could autocomplete commands as smartly as VS Code or IntelliJ, Microsoft's open source project inshellisense might be exactly what you're looking for. It brings that familiar, context-aware autocomplete experience to the command line—covering over 600 CLI tools out of the box.
The idea is simple: instead of hitting Tab and hoping for the best, you get real-time suggestions for commands, flags, arguments, file paths, and even Git branches, all while you type. It’s not a full shell replacement; it’s a lightweight integration that works with your existing shell (bash, zsh, fish, or PowerShell).
What It Does
inshellisense is a terminal autocomplete engine that hooks into your shell and provides suggestions as you type. It uses a plugin system to understand the syntax of hundreds of common CLI tools—from git and docker to kubectl, npm, yarn, grep, find, ssh, and many more.
Key behaviors:
- Context-aware suggestions: It knows valid flags, subcommands, and argument types for each tool.
- Real-time filtering: As you type, suggestions narrow down instantly.
- Plugin-based: Each CLI tool has a lightweight plugin that defines its completion rules. You can contribute or write custom ones.
The project is written in Rust and uses the clap library under the hood, which means completions are generated from the same metadata that drives the tool's help text.
Why It’s Cool
1. No extra config, just install and use.
You don't need to maintain custom completion scripts for every tool. inshellisense works immediately for the 600+ tools it supports.
2. It’s smarter than basic bash-completion.
Traditional completion often just gives you a list of all options. inshellisense understands the command structure. For example, if you type git log --oneline --graph, it knows --graph is valid after --oneline and offers relevant next arguments.
3. It works across shells.
You can use it with bash, zsh, fish, and PowerShell on macOS, Linux, and Windows (via WSL). One tool, all environments.
4. Plugin architecture is extensible.
If your favorite tool isn't covered, you can write a plugin using a simple JSON-like format. Microsoft has open-sourced the plugin definitions, and the community is actively adding more.
5. It’s fast.
Built in Rust, suggestions appear with no perceptible lag, even for complex commands with hundreds of options.
How to Try It
You can install inshellisense via npm, or build from source if you prefer. Here's the quick start:
Install via npm (global)
npm install -g @microsoft/inshellisense
Run it
inshellisense
Or run it directly in your shell with autocomplete enabled:
eval "$(inshellisense init bash)" # for bash
eval "$(inshellisense init zsh)" # for zsh
eval "$(inshellisense init fish)" # for fish
After that, just start typing commands—it works in the background.
You can also check the GitHub repo for detailed installation instructions, including building from source and using it in CI environments.
Final Thoughts
I’ve tried my share of terminal autocomplete tools, and most feel like they either get in the way or require too much setup. inshellisense strikes a nice balance: it’s unobtrusive, fast, and covers the tools I actually use daily (git, docker, kubectl, npm). The fact that it’s open source and plugin-based means it’ll only get better with community contributions.
If you spend a lot of time in the terminal and hate cycling through Tab completions or guessing flags, give it a shot. It might just become one of those “how did I live without this” tools.
Found this useful? Follow @githubprojects for more open source highlights.