waradu/tabbr

Fuzzy autocomplete for commands you actually use.

Go

5

11 commits

updated Sep 16, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

tabbr: fuzzy autocomplete for commands you actually use (r/commandline)

https://i.redd.it/9le58lyk6xph1.gif It’s open source, written in Go, and available through Homebrew or go install. There's also [Deja](https://github.com/Giammarco-Ferranti/deja) for similar functionality, but Tabbr keeps things smaller and simpler and supports Bash and PowerShell alongside Zsh.…

2

Sep 16, 2026

README

Tabbr

Fuzzy autocomplete for commands you actually use.

Tabbr preview

Tabbr learns commands that finish successfully. Tab expands the best match, repeated Tab cycles through matches, and normal shell completion remains available.

Things to note

  • Tabbr only stores successfully completed commands that contain at least six characters.
  • Completion requires a whitespace-free query of at least two characters.
  • Commands not used within the last month are ignored.

[!CAUTION] The built-in exclusions are not exhaustive. Commands are stored unencrypted in a local SQLite database, so add exclusion patterns for anything you do not want stored.

Install

With Homebrew:

brew install waradu/tap/tabbr

Or with Go:

go install github.com/waradu/tabbr/cmd/tabbr@latest

Ensure $(go env GOPATH)/bin is in your PATH.

Shell setup

Zsh

Add to ~/.zshrc:

eval "$(tabbr init zsh)"

Bash

Bash 4.4 or newer is required.

Add to ~/.bashrc:

eval "$(tabbr init bash)"

PowerShell

PowerShell integration requires PowerShell 5.1 or newer and PSReadLine 2.0 or newer (should be installed by default).

Add to your PowerShell profile:

Invoke-Expression (& { (tabbr init pwsh | Out-String) })

Commands

Shell integration

tabbr init <shell>

Print the adapter for zsh, bash, or pwsh.

Command history

tabbr add "<command>"

Add a command manually.

tabbr remove "<command>"

Remove a stored command.

tabbr query "<query>"

Print matching commands in ranked order.

tabbr list

List stored commands with their score and last-used time.

tabbr path

Print the absolute path to the local SQLite database.

Exclusions

Exclusions use case-insensitive glob patterns such as *--token=*, not regular expressions. Built-in exclusions cover cd *, ls * and common sensitive values such as API_KEY and --api-key.

tabbr exclude add "<pattern>"

Add an exclusion and remove existing matching commands.

tabbr exclude remove "<pattern>"

Remove an exclusion.

tabbr exclude list

List all exclusion patterns.

Licence

Tabbr is licensed under the GNU General Public License v3.0 (GPL-3.0-only).

Contributors

Waradu

11 commits

waradu/tabbr

Fuzzy autocomplete for commands you actually use.

Go

5

11 commits

updated Sep 16, 2026

See the code

See what people are saying (1)

SourceMessageScoreDate

tabbr: fuzzy autocomplete for commands you actually use (r/commandline)

https://i.redd.it/9le58lyk6xph1.gif It’s open source, written in Go, and available through Homebrew or go install. There's also [Deja](https://github.com/Giammarco-Ferranti/deja) for similar functionality, but Tabbr keeps things smaller and simpler and supports Bash and PowerShell alongside Zsh.…

2

Sep 16, 2026

README

Tabbr

Fuzzy autocomplete for commands you actually use.

Tabbr preview

Tabbr learns commands that finish successfully. Tab expands the best match, repeated Tab cycles through matches, and normal shell completion remains available.

Things to note

  • Tabbr only stores successfully completed commands that contain at least six characters.
  • Completion requires a whitespace-free query of at least two characters.
  • Commands not used within the last month are ignored.

[!CAUTION] The built-in exclusions are not exhaustive. Commands are stored unencrypted in a local SQLite database, so add exclusion patterns for anything you do not want stored.

Install

With Homebrew:

brew install waradu/tap/tabbr

Or with Go:

go install github.com/waradu/tabbr/cmd/tabbr@latest

Ensure $(go env GOPATH)/bin is in your PATH.

Shell setup

Zsh

Add to ~/.zshrc:

eval "$(tabbr init zsh)"

Bash

Bash 4.4 or newer is required.

Add to ~/.bashrc:

eval "$(tabbr init bash)"

PowerShell

PowerShell integration requires PowerShell 5.1 or newer and PSReadLine 2.0 or newer (should be installed by default).

Add to your PowerShell profile:

Invoke-Expression (& { (tabbr init pwsh | Out-String) })

Commands

Shell integration

tabbr init <shell>

Print the adapter for zsh, bash, or pwsh.

Command history

tabbr add "<command>"

Add a command manually.

tabbr remove "<command>"

Remove a stored command.

tabbr query "<query>"

Print matching commands in ranked order.

tabbr list

List stored commands with their score and last-used time.

tabbr path

Print the absolute path to the local SQLite database.

Exclusions

Exclusions use case-insensitive glob patterns such as *--token=*, not regular expressions. Built-in exclusions cover cd *, ls * and common sensitive values such as API_KEY and --api-key.

tabbr exclude add "<pattern>"

Add an exclusion and remove existing matching commands.

tabbr exclude remove "<pattern>"

Remove an exclusion.

tabbr exclude list

List all exclusion patterns.

Licence

Tabbr is licensed under the GNU General Public License v3.0 (GPL-3.0-only).

Contributors

Waradu

11 commits

Languages

Go

69.3%

PowerShell

15.4%

Shell

15.4%