.github | ||
assets | ||
docs | ||
scripts | ||
shell | ||
src | ||
tests | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
Makefile | ||
README.md | ||
rust-toolchain.toml | ||
rustfmt.toml |
navi
An interactive cheatsheet tool for the command-line.
navi allows you to browse through cheatsheets (that you may write yourself or download from maintainers) and execute commands. Suggested values for arguments are dynamically displayed in a list.
Pros
- it will spare you from knowing CLIs by heart
- it will spare you from copy-pasting output from intermediate commands
- it will make you type less
- it will teach you new one-liners
It uses fzf, skim, or Alfred under the hood and it can be either used as a command or as a shell widget (à la Ctrl-R).
Table of contents
- Installation
- Usage
- Cheatsheet repositories
- Cheatsheet syntax
- Customization
- More info
- Trying out online
- Similar tools
- Etymology
Installation
navi can be installed with the following package managers:
The recommended way to install navi is by running:
brew install navi
If brew
isn't available, you can check alternative install instructions.
Usage
There are multiple ways to use navi:
- by typing
navi
in the terminal- pros: you have access to all possible subcommands and flags
- as a shell widget for the terminal
- pros: the shell history is correctly populated (i.e. with the actual command you ran instead of
navi
) and you can edit the command as you wish before executing it
- pros: the shell history is correctly populated (i.e. with the actual command you ran instead of
- as a Tmux widget
- pros: you can use your cheatsheets in any command-line app even in SSH sessions
- as aliases
- as a shell scripting tool
- as an Alfred workflow
In particular, check these instructions if you want to replicate what's shown in the demo above.
Cheatsheet repositories
Running navi for the first time will help you download and manage cheatsheets. By default, they are soted at ~/.local/share/navi/cheats/
.
You can also:
- browse through featured cheatsheets
- import cheatsheets from git repositories
- write your own cheatsheets (and share them, if you want)
- use cheatsheets from other tools, such as tldr and cheat.sh
- auto-update repositories
- auto-export cheatsheets from your TiddlyWiki notes using a TiddlyWiki plugin
Cheatsheet syntax
Cheatsheets are described in .cheat
files that look like this:
% git, code
# Change branch
git checkout <branch>
$ branch: git branch | awk '{print $NF}'
The full syntax and examples can be found here.
Customization
You can:
- setup your own config file
- set custom paths for your config file and cheat sheets
- change colors
- resize columns
- change how search is performed
More info
Please run the following command to read more about all possible options:
navi --help
In addition, please check the /docs folder.
Similar tools
There are many similar projects out there (beavr, bro, cheat, cheat.sh, cmdmenu, eg, how2, howdoi, Command Line Interface Pages and tldr, to name a few).
They are excellent projects, but navi remains unique in the following ways:
- it's natural to write cheatsheets tailored to your needs
- arguments are neither hardcoded nor a simple template
Etymology
Navi is a character from The Legend of Zelda Ocarina of Time that provides Link with a variety of clues to help him solve puzzles and make progress in his quest.