Fasder - zoxide for files
Fasder lets you access files and directories lightning quick.
It remembers which files and directories you use most frequently, so you can access
them in just a few keystrokes.
Installation •
Usage •
Why Fasder? •
Features

Fasder is a modern reimagining of clvv/fasd that offers zoxide-style “frecent” (frequent + recent) access to files and directories.
Fasder tracks your most-used files and directories and lets you access them with minimal keystrokes. Need to reopen your .zshrc
? Just type v zsh
from any directory.
Key Benefits
- Fast access: Open your frequently-used files and directories with just a few characters.
- Minimal setup: Works out of the box with default aliases or customize it as you like.
- Works anywhere: Paths are always expanded in full so you can access from any directory.
- Powerful shortcuts: Built-in commands let you launch, edit, and navigate effortlessly.
Examples
v def conf # => vim /some/awkward/path/to/type/default.conf
j abc # => cd /hell/of/a/awkward/path/to/get/to/abcdef
m movie # => mplayer /path/to/awesome_movie.mp4
vim `f rc lo` # => vim /etc/rc.local
Installation
Basic Install:
brew install wyne/tap/fasder
echo 'eval "$(fasder --init auto)"' >> ~/.zshrc
Full Install (with dependencies and default aliases):
brew install wyne/tap/fasder fzf
echo 'eval "$(fasder --init auto aliases)"' >> ~/.zshrc
Migrate from fasd
:
cp ~/.fasd ~/.fasder
Usage
Pass aliases
to init, example: --init auto aliases
, to install these aliases:
a # list files and directories
d # directories only
f # files only
v, vv # open file in $EDITOR, vv for interactive
j, jj # cd, jj for interactive
Example Commands
v def conf # vim /awkward/path/default.conf
j abc # cd /awkward/path/abcdef
vv foo # Interactive file selection with fzf
jj foo # Interactive directory navigation with fzf
The provided v
and vv
commands execute with program set in $EDITOR
.
Configure with: export EDITOR=nvim
.
Base commands
fasder {query} # files and directories
fasder -d {query} # directories only
fasder -f {query} # files only
{query} can be left empty to return all results
Example composition
alias a='fasder' # both files and directories
alias d='fasder -d' # directories only
alias f='fasder -f' # files only
alias v='f -e $EDITOR' # open file with $EDITOR
vim `f rc lo` # on-the-fly command
See shell.go for provided aliases.
Options
fasder [options] [query ...]
options:
--init Initialize fasder. Args: auto aliases
-d, --directories Dirs only
-e, --exec {cmd} Execute provided command against best match
-f, --files Files only
-h, --help Show this message
-l, --list List only. Omit rankings
-R, --reverse Reverse sort. Useful to pipe into fzf
-s, --s Show rank scores
-v, --version View version
Matching
Matching works similarly to zoxide and obeys the following rules:
- The last word in the query must match the last segment of a path (split by "/" or ".").
conf
will match workspace/conf
but not conf/project
conf yml
will match config.yml
or config/init.yml
- Query words are matched in order to paths
conf tmu
will match config/tmux
but not tmux/config.yml
.
- Path segment matches do not have to be adjacent
work sub
will match workspace/project/sub
Why fasder?
vs. zoxide
zoxide
is great for directories. Fasder goes further—giving you quick access to both directories and files.
vs. fasd
fasd
inspired fasder
, but it’s now archived and written as a single, dense shell script. Fasder is built in a modern language, making it easier to read, maintain, and expand for more use cases.
Features
Feature |
fasd |
fasder |
Brew formulae |
❌ |
✅ wyne/tap/fasder |
Aliases |
✅ f, a, s, d, z |
✅ f, a, d, j, jj, v, vv |
Man page |
✅ |
❌ |
Shell support |
zsh, bash, tcsh |
zsh |
Detect sub-shells |
✅ |
✅ |
Ranking |
|
|
Shell Hooks |
✅ |
✅ |
Incr. on exec (-e ) |
✅ |
✅ |
Decay |
✅ |
✅ |
Matching |
details |
see Matching |
Backends |
neovim, vim, spotlight |
neovim |
Flags |
|
|
-h help |
✅ |
✅ |
-f files |
✅ |
✅ |
-d directories |
✅ |
✅ |
-a all |
✅ |
✅ |
-e execute |
✅ |
✅ |
-l list without ranks |
✅ |
✅ |
-t recent access only |
✅ |
❌ |
-b specify backend |
✅ |
❌ |
-i interactive |
✅ |
❌ |
-s list ranks |
✅ |
✅ |
-r sort by rank |
✅ |
❌ |
-[0-9] nth entry |
✅ |
❌ |
-B additional backend |
✅ |
❌ |
-R reverse |
✅ |
✅ |
Utility Flags |
|
|
-A , --add |
✅ |
✅ |
-D , --delete |
✅ |
❌ |
Internal Flags |
|
|
--sanitize |
✅ |
✅ |
--proc |
✅ |
✅ |
Building
Prerequisites
Download and install go
: https://go.dev/doc/install
Build
go build
will output a fasder
binary in the current directory.