terminalhinter

Type three letters. Get the whole command.

Open source autocomplete for zsh, bash, fish and PowerShell. 700+ CLIs as you type, the fix when a command fails, a red mark on the risky ones.

npm i -g @erykkozyra/terminalhinter && thint init
Star on GitHub
  • macOS, Linux and Windows
  • No account
  • No telemetry
  • No Accessibility permission
macOS and Linux
zshbashfishPowerShell
Windows
PowerShellGit BashWindows Terminal

What plain Tab completion does not do.

The cards take turns, one at a time. Point at one, or tap it, to play it now.

A failed command comes back fixed.

A typo, a missing upstream, a taken port: the empty line after the error offers the fix, and Tab takes it.

Red before you force-push.

Entries that delete or overwrite are red and say why. Ctrl+G explains every word of the line.

It reads your project.

Scripts with what they run, Makefile targets with their descriptions, workspaces and compose services.

Enter walks into folders.

Enter on a folder opens it and keeps the list open, so a few presses take you deep into a project.

kill knows your ports.

Which process listens where, and in which folder.

Versions of any package.

Tags and releases after react@, straight from npm.

Every shell, one setup.

thint init finds the shells you have and sets them all up, with a backup of each config. zsh, bash, fish and PowerShell on macOS and Linux; PowerShell 7, Windows PowerShell and Git Bash on Windows.

Now you type.

This one is live: click into it and type git, cd or pnpm.

Try it, or start with
command script, branch or value option folder file your alias

Coming from Fig or Kiro CLI?

Fig shut down, and Kiro CLI removed its autocomplete in version 3.0. terminalhinter gives you the same dropdown under the cursor, open source and on your machine only.

  • thint migrate takes their startup lines out of your shell files
  • A copy of every file it touches is kept next to it
  • The Enter-into-folders navigation you knew is here

Nothing to allow, nothing to sign up for.

No permissions

The list is drawn inside the terminal you already have. macOS asks for no Accessibility, no Screen Recording, no Input Monitoring.

No telemetry

What you type and what it learns stay in a folder on your machine. It goes online only to look up package names and its own newest version.

No account, no app

Nothing in the menu bar, nothing running when the terminal is closed, nobody to log in to.

Open source

MIT licensed. A fork of Microsoft's inshellisense, with the command specs the Fig community wrote.

Set it up in a minute.

  1. Install it

    One binary with its own runtime, so switching Node with nvm never breaks it. macOS, Linux and Windows.

  2. Run the setup

    Pick a theme and icons with a live preview. The setup finds your shells, puts its startup lines at the top of each config and keeps a backup.

  3. Open a new terminal tab

    Type git or cd and the list is there. thint doctor checks the setup and tells you how to fix anything it finds, and thint update keeps it current.

npm i -g @erykkozyra/terminalhinterthint init

thint doctor checks the setup, thint uninstall takes everything out again.

Everything works from the keyboard.

Enter

Walk into folders

Enter on a folder opens it and keeps the list open with what is inside. The first entry, ↪, runs the command where you are, so cd and a few Enters take you deep into a project. To look before you go, → on a folder lists what is inside, ← goes back up, and Enter after a look goes straight to the folder you picked.

Shift

Put the list in your order

Move the selected entry up or down and the list keeps that order for that spot in the command. What you arrange after pnpm also applies when you type your alias p.

Tab

Nothing gets in the way

Right after a space nothing is selected, so Enter just runs the command. Up with nothing selected still walks your shell history, and git checkout - runs at once.

EscCtrlSpace

Close it, open it again

Esc hides the list until you type again. Ctrl+Space brings it back when you want to look.

Make it yours.

The list keeps the order you give it and ranks what you pick first. Two small files teach it the commands only you have.

Snippets with fields

Commands you type often, with fields to fill in, in ~/.config/terminalhinter/snippets.yaml. Type the name, fill the fields, and the finished command lands on the line.

- name: release
  command: 'git tag v{{version}} && git push --tags'

Your own tools

For in-house scripts, a few lines of YAML in ~/.config/terminalhinter/specs are enough:

name: deploy
subcommands:
  - name: staging
    args: { name: app, suggestions: [web, admin] }

Looks its best in VS Code with a little room.

A bit more space between lines, and VS Code's own color adjustment turned off, make the list look the way it was designed. No special font is needed; a modern monospace like JetBrains Mono comes closest to this page.

{
  "terminal.integrated.lineHeight": 1.3,
  "terminal.integrated.fontSize": 13,
  "terminal.integrated.minimumContrastRatio": 1,
  "terminal.integrated.gpuAcceleration": "on"
}

Questions people ask.

What is terminalhinter?

A free, open source autocomplete dropdown for the terminal. As you type in zsh, bash, fish or PowerShell, it shows folders, git branches, npm scripts and the subcommands and options of more than 700 command line tools, each with a short description.

Is it an alternative to Fig or Kiro CLI?

Yes. It gives you the same kind of dropdown under the cursor, including the Enter-into-folders navigation people liked in Fig and Kiro CLI, which dropped its autocomplete in version 3.0. It runs only on your machine, needs no account and is MIT licensed. thint migrate takes the Kiro CLI, Amazon Q or Fig lines out of your shell files.

Which shells and systems does it support?

zsh, bash, fish and PowerShell 7 on macOS and Linux; PowerShell 7, Windows PowerShell and Git Bash on Windows, and cmd when you start it by hand. It works in any terminal app, VS Code, iTerm2, Terminal.app, Ghostty, WezTerm, Kitty and Windows Terminal included. zsh and bash have been around the longest; nushell and xonsh come from the upstream project and are not tested.

Does it need Accessibility or any other permission?

No. The list is drawn inside the terminal you already have, so macOS asks for nothing: no Accessibility, no Screen Recording, no Input Monitoring, and nothing runs in the background when the terminal is closed. The same goes for Linux and Windows.

Does it send my commands anywhere?

No. There is no telemetry and no account. What you type, the commands it remembers, what you pick and the order you set stay in a folder on your machine. It goes online only to look up packages: once a day it asks npm which thint version is the newest (thint config set updateCheck false turns that off), and when you type a package name or react@ it asks the npm registry and the npms.io package search for matches, sending only that word.

How is it related to inshellisense?

It is a fork of Microsoft's inshellisense with a redesigned list, folder navigation, ranking by use, your own order, workspace and git details, themes and a guided setup. The command specs come from withfig/autocomplete.

How do I update or remove it?

thint update installs the newest version. thint uninstall takes the startup lines out of your shell config and removes its files; then npm rm -g @erykkozyra/terminalhinter.

Give your terminal the dropdown.

Free and open source. Two commands, then open a new tab.

npm i -g @erykkozyra/terminalhinterthint init
Star on GitHub
npm i -g @erykkozyra/terminalhinter