__ _ _____ _ ___ __ _____ - - - - - -
/ _| ____ ___| |/__ \___ ______ _____| | / __\ / / \_ \ - - - - - -
| |_ / _ / __| __|/ /\/ _\/ _ \ \ / / _ \ |/ / / / / /\/ - - - - -
| _| (_| \__ \ |_/ / | | | (_| |\ V / __/ / /___/ /___/\/ /_ - - - - - -
|_| \__._|___/\__\/ |_| \__._| \_/ \___|_\____/\____/\____/ - - - - - -
fastTravelCLI is a fast, lightweight, and feature rich CD command replacement.
Typing out a long directory path can be a bit painful. Most tools that solve this problem give you less to type but still involve additional steps afterwards. fastTravelCLI allows you to easily save destinations as key-value pairs, and provides simple commands to manage your keys.
fastTravelCLI is being continuously improved, check out the issues for new features, support, and integrations in the works. Specifically, a fallback matching algorithm is in development for users that want a more automated experience.
Clone the repo, cd into it, and run the following based on your OS -
bash install/linux.sh
bash install/mac.sh
Compiles using go version >= 1.20.0, may work with older versions but not guaranteed.
Some features have dependencies:
-hist
command requires tree and fzf.
# Go to a directory you would like to set a waypoint for and run
ft -set [key]
# Travel to that location by running
ft [key]
# You can also travel to a subdirectory of a key
ft [key]/some/subdir
# ft can replace your cd command entirely
ft relative/dir
ft ..
ft -
# ft supports relative paths in the working directory and CDPATH
ft mydir
# ft allows you to visit previously visited directories
ft [
# Traverse back up your dir history using
ft ]
# You can also view your entire session history in a fuzzy finder (powered by fzf)
ft -hist
# View your saved locations with
ft -ls
# To remove a location run
ft -rm [key]
# To rename a location run
ft -rn [key] [new key]
# ft is easy to update to the latest release
ft -update
# or
ft -u
# To see a full list of available commands run
ft -help
# or
ft -h
NOTE: If you run into an error opening the file fastTravel.bin
you may need to adjust ownership of the fastTravelCLI folder.
sudo chown $USER:$USER $HOME/.local/share/fastTravelCLI
Zoxide is a great tool but the implementation is complex leading to many issues that cause it to be less than ideal for many use cases. Here are a few examples of Zoxide issues that fastTravelCLI solves gracefully or avoids entirely.
- Ambiguous Query Matching
- Lack of CDPATH support
- No session history navigation
- Unable to specify query for local project
- Unable to prioritize query to match child directories in cwd
If you use fzf to find a deeply nested directory that you access often, fastTravelCLI takes an experience like this:
cd $(find * -type d | fzf)
» |
7/7 (0)
› mystuff
mystuff/personal
mystuff/personal/projects/
mystuff/personal/projects/notes
mystuff/work
mystuff/work/notes
mystuff/work/docs
mystuff/work/projects/notes
mystuff/work/projects/
» notes|
2/7 (0)
› mystuff/personal/projects/notes
mystuff/work/projects/notes
» notes|
2/7 (0)
mystuff/personal/projects/notes
› mystuff/work/projects/notes
and condenses it to this:
ft wknotes
PRs and feature suggestions are welcome. I originally made this for myself so there's not alot of structure or official-ness to this project.