Essential terminal packages in 2020

June 26, 2020

3 mins

This is the start of a new series about maximising your terminal experience. I will write about what I think are essential packages for the CLI, a simple but super effective Vim setup and setting some sane Tmux defaults.

In this first article, I am going to list some of what I think are essential CLI packages. These are ones I use every day and could not live without. I am leaving Vim and Tmux off this list as they will get there own articles.

I spend all my time in a terminal. This is where I do all my development, hacking and note-taking. Spending so much time there I want it to work for me, providing a buttery smooth experience.

Here is a list of my top CLI packages.

1. ZSH and oh-my-zsh:

This is my chosen shell. It has way too many features to list here but here are a choice few:

  • automatic cd: Just type the name of the directory
  • recursive path expansion: For example “/u/lo/b” expands to “/usr/local/bin”. This is not one I use much because I lead on the tools mentioned below.
  • spelling correction and approximate completion: If you make a small mistake typing a directory name, ZSH will fix it for you
  • plugin and theme support: ZSH includes many different plugin frameworks. This is where oh-my-zsh comings in. Its a community drive framework for managing your ZSH configuration.

ZSH

2. FZF

FZF is a command-line fuzzy finder. It is super fast, light and works so well with all my other tools.

fzf

3. RipGrep (rg)

RipGrep is a stupid fast replacement for grep. It does away with lots of the hard to remember flags that grep requires. By default, it respects your .gitignore, and skips hidden files.

4. Autojump

Autojump is a super-fast way to navigate your filesystem. It learns the directories you visit most and remembers them for next time.

5. HTTPie

HTTPie is a user-friendly command line HTTP client. It has JSON support, syntax highlighting and lots more.

6. Bat

Bat is a drop-in replacement for cat but with superpowers. It's highly configurable and supports syntax highlighting.

Bat

7. exa

exa is a modern replacement for ls. It is highly configurable, provides better defaults.

HTTPie

8. twf

twf is a tree view explorer inspired by fzf.

HTTPie

You can find my dotfiles here. This is how I use them, how will you?

Thanks for reading 🙏

If there is anything I have missed, or if there is a better way to do something then please let me know.

Check out our software focused podcast - Salted Bytes