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.