
inshellisense
https://github.com/microsoft/inshellisense- Category
- Developer Tools
- Rank
- No. 454Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- microsoft
- GitHub
- 10.7k stars
- Latest release
- 0.0.3
- Date
About
Microsoft's IDE-style autocomplete for the terminal — ports Fig completion specs into a cross-shell command-line helper.
What it does
Inshellisense starts an interactive shell session, watches the command being entered, and presents contextual suggestions inside the terminal. Tab accepts a choice, arrow keys move through choices, and Escape dismisses them. Other keystrokes continue to the underlying shell.
Why it's ranked here
Its appeal comes from broad operating-system and shell coverage, a large catalog of command specifications, and direct terminal interaction. The design goes beyond printing suggestions: it tracks terminal state, handles Unicode width, preserves shell input, and offers installation diagnostics. The main qualification is incomplete command coverage.
What's good
It supports Windows, Linux, and macOS, with integrations for Bash, Zsh, Fish, PowerShell variants, Xonsh, and Nushell. Configuration covers keybindings, aliases for Bash and Zsh, suggestion limits, Nerd Font symbols, and active-item color. A doctor command checks generated shell configurations, plugin placement, and legacy setup.
Tradeoffs
The Azure, Google Cloud, and AWS command specifications are excluded because of their size. Command Prompt support is experimental. Automatic startup requires the plugin command to remain last in the shell configuration, since later commands may break setup. The npm package also limits supported Node.js versions to 18 through 22.
How to use it well
It suits developers who regularly discover unfamiliar flags or switch among several command-line tools and shells. Start manually first, run the diagnostic command, then add automatic startup once the behavior fits your terminal setup. Treat it as interactive command discovery, not a replacement for command documentation or support for the excluded cloud CLIs.
Technical notes+
package.json defines an ESM TypeScript package with two CLI names, Node.js >=18 and <23, Jest scripts, and dependencies on node-pty, headless xterm, Commander, and the Fig autocomplete catalog. src/index.ts registers the root session plus init, reinit, doctor, specs, completion, and uninstall commands. src/ui/ui-root.ts proxies raw stdin, batches suggestion updates, and bypasses suggestion handling in alternate buffers. src/isterm/pty.ts spawns the shell through node-pty and mirrors terminal state with headless xterm and Unicode 11 support. src/utils/node.ts unpacks native modules, shell integrations, and specifications for packaged or regular Node execution. src/ui/utils.ts renders width-aware boxes and truncation.
Observed
- License
- MIT
- Primary language
- TypeScript
- Install surface
- Global npm package or Homebrew formula
- Interface
- Interactive command-line application exposed as is and inshellisense
- Platforms
- Windows, Linux, and macOS
- Shell support
- Bash, Zsh, Fish, pwsh, Windows PowerShell, Xonsh, Nushell, and experimental Command Prompt
- Runtime requirement
- Node.js 18 through 22
- Completion catalog
- Uses the @withfig/autocomplete package, described as supporting more than 600 command-line tools
Read from README.md, package.json, src/index.ts, src/ui/utils.ts, src/utils/dec.ts, src/utils/log.ts, src/isterm/pty.ts, src/ui/ui-init.ts, src/ui/ui-root.ts, src/utils/ansi.ts, src/utils/node.ts, src/utils/time.ts, src/utils/shell.ts, src/isterm/index.ts, src/ui/ui-doctor.ts.
What it can do
Provide IDE-style autocomplete suggestions for terminal commands
Partial command typed in terminal → Autocomplete suggestions with command options and parameters
Display command syntax help and documentation
Command name or partial command → Command syntax, available flags, and usage documentation
Complete file and directory paths
Partial file or directory path → Available file and directory completions
Suggest command flags and options
Command with incomplete or missing flags → Available command flags and their descriptions
Parse Fig completion specifications
Fig completion spec files → Cross-shell compatible completion definitions
Provide context-aware parameter suggestions
Command with cursor position → Relevant parameter options based on command context
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.