Navi
[Go, SQLite, TUI]
A zoxide-inspired fuzzy file/directory search tool with gap-filling multi-keyword matching, interactive TUI mode, and tag-based scoping.
README
navi
navi is like zoxide, but for all directories/files with multi-keyword matching to deal with ambiguous search result.
It uses gap-filling fuzzy search, so each keyword can be incomplete.
Example:
navi proj nav en
This can still match something like projects/navi/search/engine.go even when each token is only partial.
Interactive mode (TUI):
navi
Requirements
- Go 1.24+
- SQLite support (used via
github.com/mattn/go-sqlite3)
Install
Build locally:
go build -o navi .
Or install with Go:
go install github.com/montrey/navi@latest
Basic usage
Run interactive mode in your current directory:
navi
Type to fuzzy-search paths, then press:
Enterto run the selected actionCtrl+Cto quitTab/Shift+Tabto cycle action (explorer,terminal,editor,copy)
Multi-keyword search does not require full words. You can type partial chunks (for example doc rea md) and still get the intended result.
Helpful shortcuts
Ctrl+Oopen configCtrl+Topen tag UI for the selected/current directoryCtrl+Ddrill into selected directory
Note: the tag system is still in progress and may change.
Inside config:
Enteredit/save a fieldLeft/Rightcycle default actionAadd custom actionDdelete selected custom action
CLI examples
Print best match path and exit:
navi "src main"
Start interactive mode with a specific action:
navi --action editor
Add current directory to a tag:
navi --add work
Search with tag scope in interactive mode:
@work query
Note: tag search and workflows are currently in progress.
Data location
navi stores history, tags, and settings in:
~/.local/share/navi/navi.db