MCPcopy Index your code
hub / github.com/denisidoro/navi

github.com/denisidoro/navi @v2.24.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.24.0 ↗ · + Follow
206 symbols 448 edges 48 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

navi icon Actions Status GitHub release

An interactive cheatsheet tool for the command-line.

Demo

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

navi can be installed with the following package managers:

Packaging status

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
  • 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 stored at ~/.local/share/navi/cheats/.

You can also:

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:

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.

Extension points exported contracts — how you extend this code

Runnable (Interface)
(no doc) [7 implementers]
src/prelude.rs
ToStringExt (Interface)
(no doc) [2 implementers]
src/common/fs.rs
Fetcher (Interface)
(no doc) [1 implementers]
src/structures/fetcher.rs

Core symbols most depended-on inside this repo

to_string
called by 57
src/common/fs.rs
get
called by 14
src/config/yaml.rs
out
called by 8
src/common/shell.rs
parse_output_single
called by 8
src/finder/post.rs
run
called by 7
src/commands/info.rs
main
called by 5
src/commands/repo/add.rs
meta
called by 5
src/common/git.rs
fnv
called by 5
src/common/hash.rs

Shape

Function 92
Method 69
Class 33
Enum 9
Interface 3

Languages

Rust100%

Modules by API surface

src/config/mod.rs26 symbols
src/filesystem.rs16 symbols
src/config/yaml.rs15 symbols
src/common/fs.rs13 symbols
src/parser.rs12 symbols
src/finder/post.rs11 symbols
src/structures/fetcher.rs5 symbols
src/finder/structures.rs5 symbols
src/finder/mod.rs5 symbols
src/config/cli.rs5 symbols
src/common/terminal.rs5 symbols
src/common/hash.rs5 symbols

For agents

$ claude mcp add navi \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact