HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
clvv
fasd
Shell2012–2023
clvv / fasd · Archived

fasd

Command-line productivity booster, offers quick access to files and directories, inspired by autojump, z and v.

44Distinct people
52Mentions
1Explicit recommenders
5.9KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Command-line productivity booster, offers quick access to files and directories, inspired by autojump, z and v.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I recommend https://github.com/clvv/fasd It basically makes bookmarks automatically as you navigate your filesystem anyway.

kbd used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year52 dated mentions

Observed mentions: 2012-02-12 01:39:23 UTC to 2023-12-02 16:04:12 UTC.

0369122012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 6 mentions; 3 submissions, 3 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 11 mentions; 1 submissions, 10 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC633
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC11110
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC101
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC817
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC312
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC505
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC303
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC505
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC606
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC211

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Fasd Fasd (pronounced similar to "fast") is a command-line productivity booster. Fasd offers quick access to files and directories for POSIX shells. It is inspired by tools like autojump, z and v. Fasd keeps track of files and directories you have accessed, so that you can quickly reference them in the command line. The name fasd comes from the default suggested aliases f(files), a(files/directories), s(show/search/select), d(directories). Fasd ranks files and directories by "frecency," that is, by both "frequency" and "recency." The term "frecency" was first coined by Mozilla and used in Firefox (link). Introduction If you use your shell to navigate and launch applications, fasd can help you do it more efficiently. With fasd, you can open files regardless of which directory you are in. Just with a few key strings, fasd can find a "frecent" file or directory and open it with command you specify. Below are some hypothetical situations, where you can type in the command on the left and fasd will "expand" your command into the right side. Pretty magic, huh? 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 /whatever/whatever/whatever/awesome_movie.mp4 o eng paper => xdg-open /you/dont/remember/where/english_paper.pdf vim `f rc lo` => vim /etc/rc.local vim `f rc conf` => vim /etc/rc.conf Fasd comes with some useful aliases by default: alias a='fasd -a' # any alias s='fasd -si' # show / search / select alias d='fasd -d' # directory alias f='fasd -f' # file alias sd='fasd -sid' # interactive directory selection alias sf='fasd -sif' # interactive file selection alias z='fasd_cd -d' # cd, same functionality as j in autojump alias zz='fasd_cd -d -i' # cd with interactive selection Fasd will smartly detect when to display a list of files or just the best match. For instance, when you call fasd in a subshell with some search parameters, fasd will only return the best match. This enables you to do: mv update.html `d www` cp `f mov` . Install Fasd is available in various package managers. Please check the wiki page for an up-to-date list. You can also manually obtain a copy of fasd. Download fasd 1.0.1 from GitHub: zip, tar.gz. Fasd is a self-contained POSIX shell script that can be either sourced or executed. A Makefile is provided to install fasd and fasd.1 to desired places. System-wide install: make install Install to $HOME: PREFIX=$HOME make install Or alternatively you can just copy fasd to anywhere you like (preferably under some directory in $PATH). To get fasd working in a shell, some initialization code must be run. Put the line below in your shell rc. eval "$(fasd --init auto)" This will setup a command hook that executes on every command and advanced tab completion for zsh and bash. If you want more control over what gets into your shell environment, you can pass customized set of arguments to fasd --init. zsh-hook # define _fasd_preexec and add it to zsh preexec array zsh-ccomp # zsh command mode completion definitions zsh-ccomp-install # setup command mode completion for zsh zsh-wcomp # zsh word mode completion definitions zsh-wcomp-install # setup word mode completion for zsh bash-hook # add hook code to bash $PROMPT_COMMAND bash-ccomp # bash command mode completion definitions bash-ccomp-install # setup command mode completion for bash posix-alias # define aliases that applies to all posix shells posix-hook # setup $PS1 hook for shells that's posix compatible tcsh-alias # define aliases for tcsh tcsh-hook # setup tcsh precmd alias Example for a minimal zsh setup (no tab completion): eval "$(fasd --init posix-alias zsh-hook)" Note that this method will slightly increase your shell start-up time, since calling binaries has overhead. You can cache fasd init code if you want minimal overhead. Example code for bash (to be put into .bashrc): fasd_cache="$HOME/.fasd-init-bash" if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install >| "$fasd_cache" fi source "$fasd_cache" unset fasd_cache Optionally, if you can also source fasd if you want fasd to be a shell function instead of an executable. You can tweak initialization code. For instance, if you want to use "c" instead of "z" to do directory jumping, you can use the alias below: alias c='fasd_cd -d' # `-d` option present for bash completion # function fasd_cd is defined in posix-alias After you first installed fasd, open some files (with any program) or cd around in your shell. Then try some examples below. Examples f foo # list frecent files matching foo a foo bar # list frecent files and directories matching foo and bar f js$ # list frecent files that ends in js f -e vim foo # run vim on the most frecent file matching foo mplayer `f bar` # run mplayer on the most frecent file matching bar z foo # cd into the most frecent directory matching foo open `sf pdf` # interactively select a file matching pdf and launch `open` You should add your own aliases to fully utilize the power of fasd. Here are some examples to get you started: alias v='f -e vim' # quick opening files with vim alias m='f -e mplayer' # quick opening files with mplayer alias o='a -e xdg-open' # quick opening files with xdg-open If you're using bash, you have to call _fasd_bash_hook_cmd_complete to make completion work. For instance: _fasd_bash_hook_cmd_complete v m j o You could select an entry in the list of matching files. Matching Fasd has three matching modes: default, case-insensitive, and fuzzy. For a given set of queries (the set of command-line arguments passed to fasd), a path is a match if and only if: Queries match the path in order. The last query
Read the full README on GitHub

What Hacker News says

52 sources
I'm thinking unpopular could mean the tech is polarizing or frequently dismissed/overlooked. * APL -- I haven't dedicated the time to learning in part because there's little support where I normally work. I'd love for APL to have be adapted like a domain specific language a la perl compatible regular expressions for various languages (april in common lisp, APL.jl in julia). * regular expressions. https://xkcd.com/1171/ * bugs/issue tracking embedded in git https://github.com/MichaelMure/git-bug/ But I'm more excited for things that fall into the niche/lesser-known side of of unpopular. I love finding the little gems that change how I organize or work with the system. * "type efficiently by saying syllables and literal words" https://sr.ht/~geb/numen/ * I use fasd[0] 'z' alias for jumping to previous directories in shell every d
Read the rest
ay. * Alt+. in shell (readline, bash) to get the previous commands last argument is another ergonomic time saver that I think is relatively obscure. I have a bash wrapper to combine that with fzf for quick any-previous-command-argument fuzzy search and insert [1] * zimwiki [2] (and/or a less capable emacs mode[3]) for note taking has served me well for a decade+ * DokuWiki's XML RPC [4] enables local editor edits to a web wiki. I wish it was picked up by more editor plugin developers. (cf. emacs-dokiwki [5]) * xterm isn't unpopular per say, but I don't see sixel support and title setting escape codes talked about often. I depend on a bash debug trap to update the prompt with escape codes that set the terminal title [6] * are clipboard managers popular? I get a lot out of using https://github.com/erebe/greenclip [0] https://github.com/clvv/fasd [1] https://github.com/WillForan/fuzzy_arg [2] https://zim-wiki.org/ [3] https://github.com/WillForan/zim-wiki-mode [4] https://www.dokuwiki.org/xmlrpc [5] https://github.com/flexibeast/emacs-dokuwiki [6] https://github.com/WillForan/dotconf/blob/master/bash/PS1.ba... -- bash debug trap to update prompt with escape codes that set the title to previous run command -- to eg. search windows for the terminal playing music from 'mpv'
In Ask HN: What are some unpopular technologies you wish people knew more about?
I love these interfaces and use them wherever I can. On MacOS I use Alfred for launching applications, killing processes, controlling music playback, searching the web and my filesystem, swapping file tabs, and tons more. Spotlight search, which is built in, is also very competent. For the command line I use fzf which can add fuzzy search for all sorts of things. built in its ctrl+r functionality I find very useful. As well as kill commands where i can fuzzy search by the name of the program and it'll type in the pid for you. fasd is useful for navigating through directories, though it doesn't pop up a palette. For those interested here is a small list of them, though not comprehensive, that I've found useful: Launchers MacOS - https://www.alfredapp.com/ - https://raycast.com/ - https://obdev.at/products/launchbar/index.html - https://lac
Read the rest
In Command Palette Interfaces
I understand the reasoning behind this, but in practice I can't imagine working like that. I love watching Gary Bernhardt (https://www.destroyallsoftware.com/screencasts), who is an incredibly fast typist and knows Unix very well. But I just can't get over the sheer volume of typing he does, because he hasn't wrapped his most common commands into short aliases and abbreviations[0]. I would find it exhausting to do that much typing relative to the amount of output. Here's a customization I would recommend everyone who spends a lot of time on the shell do: Be able to fuzzy find from the shell. The specifics aren't important, but here's how my bindings work (I use and recommend `fzf`[1] for this): - `⌥z`: Fuzzy find recent directory (using `fasd`[2]) - `⌥c`: Fuzzy find recursive subdirectory - `⌥e`: Fuzzy find recursive file All of these wor
Read the rest
k logically like this: If the binding is triggered at the start of a prompt, do what I mean (`cd` to directories, or edit a file), but if I've already typed something, insert it as a parameter, so for example I can hit `ls<space>⌥z` to fuzzy insert a recent directory (or just `⌥z` at a raw prompt to fuzzy select a recent directory to jump to). I'd argue fuzzy finding is the major enhancement to computer productivity of the last twenty years. I recommend using it on the shell (assuming you use the shell often enough to justify it). [0]: https://fishshell.com/docs/current/cmds/abbr.html [1]: https://github.com/junegunn/fzf [2]: https://github.com/clvv/fasd
In Customizing Your Shell

Showing the 15 most recent of 52 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.