Stop Memorizing Command-Line Flags: Let Navi Run Your Cheatsheets For You
You know that feeling when you need to remember the exact syntax for a tar command, or you're three levels deep into piping awk and grep together and you've completely lost track of what you're doing? Most of us keep a graveyard of half-remembered one-liners in text files or browser bookmarks, and we copy-paste them until they break. Navi is a small open-source tool that turns those scattered notes into an interactive, searchable cheatsheet you can actually run from your terminal.
What It Does
Navi is an interactive cheatsheet tool for the command line. It lets you browse through cheatsheets (either ones you write yourself or ones you download from maintainers) and execute commands directly from them. The clever bit is that suggested values for arguments are dynamically displayed in a list, so you don't just get a static snippet—you get something you can actually fill in and run.
Under the hood, it uses fzf or skim for the fuzzy-finding interface, which means you get the familiar interactive search experience those tools are known for. You can use navi as a plain command, or wire it up as a shell widget similar to Ctrl-R, which populates your shell history with the actual command you ran rather than the word navi. There's also a Tmux widget, alias support, and a shell scripting mode for when you want to call it from other scripts.
Why It's Cool
-
It solves the copy-paste problem, not just the memory problem. Plenty of tools help you remember commands. What's different here is that navi actually executes them. No more pasting a command, realizing the placeholder argument is wrong, and editing it by hand. The suggested values show up as a list you pick from.
-
Your cheatsheets are just files. They're
.cheatfiles with a simple syntax. Here's a full example from the README:% git, code # Change branch git checkout <branch> $ branch: git branch | awk '{print $NF}'That's it. A tag line, a comment description, the command, and a way to populate the variable. If you can write a shell command, you can write a cheatsheet.
-
It plays nicely with tools you already use. You can pull in cheatsheets from tldr and cheat.sh, import them from git repositories, and even auto-export them from TiddlyWiki notes via a plugin. That last one is a niche but genuinely thoughtful integration.
-
Multiple ways to invoke it means it fits your workflow. Command mode gives you access to all subcommands and flags. The shell widget populates history correctly so you can edit before running. The Tmux widget works in any command-line app, even over SSH. That's a lot of flexibility for a tool that's essentially a fancy cheatsheet browser.
-
It teaches you as you go. The README explicitly lists "it will teach you new one-liners" as a benefit. That's the kind of side effect you want from a tool—browsing for one command and picking up three others along the way.
How to Try It
The recommended install is via Homebrew:
brew install navi
If you're not on macOS or Linux with Homebrew, navi is available through a wide range of package managers—the README links to a Repology badge showing the full list, and there's a dedicated installation doc in the repo.
Once installed, just run:
navi
The first time you run it, navi will help you download and manage cheatsheets. By default they're stored at ~/.local/share/navi/cheats/. From there you can browse featured cheatsheets, import from git repos, write your own, or pull in cheatsheets from other tools.
If you want the widget experience (which is probably what most people will want), check the shell widget installation docs in the repo. If you're a Tmux user, there's a separate how-to for that as well.
The repository is at github.com/denisidoro/navi. The README also links to a specific issue (#491) if you want to replicate the setup shown in the demo video.
Final Thoughts
Navi isn't trying to replace your shell or reinvent how you work. It's a focused tool that does one thing well: making your cheatsheets interactive and executable. If you find yourself constantly looking up the same commands, or if you maintain a personal collection of one-liners that you copy-paste regularly, this is worth a look. The .cheat file syntax is simple enough that you can start with a handful of your own commands and grow from there. It's the kind of tool that quietly earns its place in your setup once you've used it a few times.
Follow @githubprojects for more developer tools and open source projects.