# inshellisense

> IDE-style autocomplete for shells, running as a terminal-native runtime for the withfig/autocomplete specs covering 600+ CLI tools on Windows, Linux, and macOS.

Stars: 10.7k · Language: TypeScript · License: MIT · Categories: Shell

- Repository: https://github.com/microsoft/inshellisense
- Page: https://www.trmn.sh/tools/inshellisense

## Install

- npm: `npm install -g @microsoft/inshellisense`
- npm: `is init`
- Homebrew: `brew tap microsoft/inshellisense https://github.com/microsoft/inshellisense`
- Homebrew: `brew install inshellisense`
- Homebrew: `is init`

## Overview

inshellisense adds IDE-style autocomplete to the shell. It is a terminal-native runtime for the withfig/autocomplete specs, which cover more than 600 command line tools. Running `is` starts an autocomplete session inside your current shell, and `exit` ends it. `is -c` checks whether the shell is already inside a session, and `is doctor` verifies the installation. The tool runs on Windows, Linux, and macOS.

Suggestions appear as you type. Tab accepts the current suggestion, the up and down arrows move through the list, and Esc dismisses it. These keys are captured only while suggestions are visible. Otherwise they pass through to the shell. Supported shells are bash, zsh, fish, pwsh, Windows PowerShell, xonsh, and nushell, with cmd marked experimental. `is init <shell>` generates a plugin line for your shell's rc file so a session starts automatically in new shells. The plugin line should be the last command in that file.

Configuration is a TOML file at `~/.inshellisenserc` or `$XDG_CONFIG_HOME/inshellisense/rc.toml`. It can rebind the keys, enable alias expansion for bash and zsh (`useAliases`), turn on NerdFont icons, set the maximum number of suggestions, set the active suggestion's background color, and switch the box border style to rounded. Specs for the `az`, `gcloud`, and `aws` CLIs are not supported because of their size. The tool is aimed at developers and operators who use many CLI tools and want completions for subcommands and flags in their existing shell.

### Installation

```bash
# via npm
npm install -g @microsoft/inshellisense
is init
```

```bash
# via Homebrew
brew tap microsoft/inshellisense https://github.com/microsoft/inshellisense
brew install inshellisense
is init
```

![Demo of inshellisense autocomplete in a terminal](https://media.trmn.sh/cached/8088bb2ea896c37523c35174fd5ee133d1bef99dd7598b965ffea411531a19d1.gif)

## Alternatives

- [genact](https://www.trmn.sh/tools/genact.md): Terminal program that prints fake activity output (compilers, builds, botnets, downloads) to look busy. Runs natively or in a browser via WebAssembly. (Rust, 12.2k stars)
- [up](https://www.trmn.sh/tools/up.md): Interactive terminal UI for building Linux pipelines with live preview of command results (Go, 8.9k stars)
- [McFly](https://www.trmn.sh/tools/mcfly.md): Replaces ctrl-r shell history search with a full-screen search ranked by a small neural network using directory, prior commands, and exit status. (Rust, 7.8k stars)
- [tmuxinator](https://www.trmn.sh/tools/tmuxinator.md): Ruby CLI that creates and starts tmux sessions from YAML project files defining windows, panes, layouts, root directories, and startup hooks. (Ruby, 13.7k stars)
- [Pure](https://www.trmn.sh/tools/pure.md): ZSH prompt that shows git branch, dirty state, and async-checked unpushed/unpulled arrows, with exit-status coloring and command execution time. (Shell, 14.5k stars)

---

Canonical: https://www.trmn.sh/tools/inshellisense
