Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


My version of a directory navigation tool. Inspired by but generally simpler (and I think a bit more intuitive) than others like autojump and z. Currently zsh-only.

Instead of regex searching a list of directories weighted by "frecency" (recent + frequency), I prefer to have a list of visited directories and just tab complete their basenames. This is what j does. I typically remember the basename of the directory I want to visit, just not the path, so this works very well for me.

When there are multiple directories with the same basename, a curses-based interface is opened to select one from a list. The list is ordered by time of last visit, so it is very easy to return to recent directories. Overall, I like this process because it is very predictable: I know I'm going to go where I expect.

I wrote a bit about the development process here. This is of course mostly just a written-for-fun tool, that I happen to find useful. If you do as well, great!


To install, run the following commands. The install.zsh script installs j's data files to ~/.j. To change this, export $J_DIR before running the install script.

git clone /path/to/j
cd /path/to/j

Then source j.zsh by adding something like

source /path/to/j/j.zsh

to your .zshrc.


j [--] <basename>
j [options] [args]

  -           Jump to the last visited directory.
  -c, --clean [N]
              Remove all directories that no longer exist or that
              have been accessed more than <N> days ago.
  -h, --help  Show this help message and exit.
  -l, --list <basename>
              List all entries for <basename>.
  -p, --prune <basename>
              Interactively delete entries for <basename>.
  -r, --recent
              Select one of the past 10 last visited directories
              and jump to it.


Data and other files are stored in the directory pointed to by $J_DIR, which is ~/.j by default. A custom location can be used by exporting $J_DIR before sourcing j.zsh.

Directories can be ignored by adding glob patterns to $J_DIR/ignore.


Tests are run with zunit. Run zunit in the root directory to run the tests.


MIT license. See the LICENSE file.


No releases published


No packages published