A silvery, fast learning and interactive directory navigator
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



A silvery, fast learning and interactive directory navigator. Marlin provides quick access to your most frequently and recently used directories from right in your Fish shell.

Marlin is similar in design to popular scripts like fasd, z, and autojump, but is designed to take advantage of the unique features of Fish to provide an even more powerful tool. It is also designed to have a simpler implementation to provide the best performance and not lag your shell.

Here is a list of key features:

  • Lightweight on resources: Marlin only runs when you change directories or try to complete a path; it does not have pre-exec or post-exec hooks.
  • Path expansion for any command: Paths can be searched and expanded in any command, not just cd.
  • Frequent and recent paths: Results are ordered based on both the frequency you visit a directory and how recently you visited it.
  • Interactive searching: If more than one result matches an expansion, you can interactively choose a directory using an interactive filter tool like fzf, selecta, or peco.


Install with Oh My Fish:

$ omf install marlin

That's it, Marlin is ready to go!


Marlin learns the directories you frequent while you navigate the filesystem. After cding around a few times, you can recall those directories using comma expansion, Marlin's way of substituting queries with a path. A comma expansion has the following form:


Each query is a case-insensitive regular expression that is applied to your directory history and filter only matching directories. To execute the expansion, just press the TAB key and the query will be replaced dynamically with the matching result. You can continue to press TAB to switch through all of the matching results in order of relevancy.

If you have an interactive filter tool installed like fzf, selecta, or peco, you can use one of those tools to page through multiple results instead. The popular tools will be used automatically if installed. To use a specific tool, set the $FILTER environment variable to the command desired. You can also disable interactive filtering by setting $FILTER to be empty:

set -g FILTER

Importing history

You can import your history from fasd by running the marlin:import-fasd command.


MIT © sagebind et al