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 enThis can still match something like projects/navi/search/engine.go even when each token is only partial.
Interactive mode (TUI):
navi- Go 1.24+
- SQLite support (used via
github.com/mattn/go-sqlite3)
Build locally:
go build -o navi .Or install with Go:
go install github.com/montrey/navi@latestRun interactive mode in your current directory:
naviType 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.
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
Print best match path and exit:
navi "src main"Start interactive mode with a specific action:
navi --action editorAdd current directory to a tag:
navi --add workSearch with tag scope in interactive mode:
@work query
Note: tag search and workflows are currently in progress.
navi stores history, tags, and settings in:
~/.local/share/navi/navi.db