• Stars
    star
    13,795
  • Rank 2,228 (Top 0.05 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created about 5 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An interactive cheatsheet tool for the command-line

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 soted 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.

More Repositories

1

floki

A JSON/EDN browser for the terminal
Clojure
315
star
2

dotfiles

Awesome personal dotfiles
Shell
161
star
3

krouter

A lightweight Android activity router
Kotlin
122
star
4

cheats

Community-sourced cheatsheets for navi
109
star
5

beavr

A command-line autocompleter with steroids 💪
Clojure
40
star
6

graffiti

An opinionated, declarative GraphQL implementation in Clojure
Clojure
35
star
7

abra

Easily share data between terminal windows!
Rust
24
star
8

docpars

An ultra-fast parser for declarative command-line options for your shell scripts.
Rust
22
star
9

korn

Kotlin for React Native
Kotlin
20
star
10

navi-tldr-pages

tldr-pages for navi, an interactive cheatsheet tool for the command-line
Shell
19
star
11

pipers

Use pipe expressions in your PromQL queries or code!
JavaScript
14
star
12

rosebud

A personal financial management system
Clojure
13
star
13

remacro

Plain-text macro expander with React-inspired widgets. Markdown with steroids. 💪
JavaScript
12
star
14

hello-kotlin-android

A functional reactive Android app written in Kotlin
Java
7
star
15

reseau

A highly scalable, reactive, MVVM-like library for Android
Kotlin
7
star
16

docoptsh

A command line argument parser written in pure Bash
Shell
6
star
17

xpt

An abstraction over whatever package managers you have installed in your system
Shell
5
star
18

homebrew-tools

Homebrew taps for tools I maintain
Ruby
5
star
19

louvre

A lightweight, cross-platform game scraper written in Rust
Rust
4
star
20

enzyme

Control Windows features with a keyboard, a mouse, a joystick or speech recognition
AutoHotkey
4
star
21

emojis

Emoji list
Shell
3
star
22

wacom2Tuio

Cross-platform TUIO output bridge for Wacom tablets
C++
3
star
23

leila

Hexapod robot
JavaScript
3
star
24

blog

Personal blog
HTML
1
star
25

katacoda-scenarios

Katacoda Scenarios
Shell
1
star
26

uri

HTML
1
star
27

channel-rs

Rust
1
star
28

misc

Shell
1
star
29

storm

Cloud utilities
Rust
1
star
30

rust-common

Toolbelt for Rust code
Rust
1
star
31

tuioGestures

Execute command-line code and hotkeys using TUIO-compatible devices
JavaScript
1
star
32

denisidoro.github.io

About me
HTML
1
star
33

git-monorepo

A proof-of-concept CLI for faster workflows using monorepos.
Shell
1
star
34

quark

Clojure(script) utility belt
Clojure
1
star
35

move-reminder

A mind map ecosystem which uses indented plain text files.
TypeScript
1
star
36

xWacom

Add custom multitouch gestures to your Wacom tablet
C++
1
star
37

bandex

API em PHP para obtenção dos cardápios dos bandejões da USP e da ECP
PHP
1
star