DEV Community

Cover image for 15 Command Line Tools which Spark Joy in Your Terminal
Jean-Michel 🕵🏻‍♂️ Fayard
Jean-Michel 🕵🏻‍♂️ Fayard

Posted on • Edited on • Originally published at jmfayard.dev

15 Command Line Tools which Spark Joy in Your Terminal

Put joy and productivity inside your Terminal with those cool command line tools.

But before we start, let's cover how you can install and uninstall them.

Table of contents

Quick install

I don't know about you, but I don't enjoy spending lots of time installing stuff.

So here is my executive summary

PROGRAMS="hub httpie ripgrep bat fzf fd fd-find jq autojump direnv tig tmux neovim exa just lazygit jump"
NPM="how-2 tldr"
export INSTALLER="sudo apt-get"    # on Debian/Ubuntu
export INSTALLER="something else"  # on another Linux
export INSTALLER="brew"            # on macOS
for program in $PROGRAMS ; do $INSTALLER install $program ; done
for program in $NPM ; do npm install -g $program ; done
Enter fullscreen mode Exit fullscreen mode

You may want to configure your .profile

## Put in .bash_profile or .zshrc
alias ls=exa
alias cat=bat
Enter fullscreen mode Exit fullscreen mode

Try, adopt or uninstall

Try out the CLI tools. If you don't like them, uninstall them the same way

PROGRAMS="neovim exa"
export INSTALLER="brew"            # on macOS
for program in $PROGRAMS ; do $INSTALLER uninstall $program ; done
Enter fullscreen mode Exit fullscreen mode

This being done, let's move on to the tools!

The 15 Command Line Tools which Spark Joy in Your Terminal

*tldr-pages/tldr: 📚 Collaborative cheatsheets for console commands

A must have

The man page is too long, didn't read.

Replace $ man git-checkout by $ tldr git-checkout

You will find what you need in 5s or less, 80% of the time or more

GitHub logo tldr-pages / tldr

Collaborative cheatsheets for console commands 📚.

tldr-pages

Build status Matrix chat Merged PRs GitHub contributors license Mastodon

What is tldr-pages?

The tldr-pages project is a collection of community-maintained help pages for command-line tools, that aims to be a simpler, more approachable complement to traditional man pages.

Maybe you're new to the command-line world. Perhaps you're just a little rusty or can't always recall the arguments for commands like lsof, or tar?

It certainly doesn't help that, in the past, the first option explained in man tar was:

$ man tar
...
-b blocksize
   Specify the block size, in 512-byte records, for tape drive I/O.
   As a rule, this argument is only needed when reading from or writing to tape drives,
   and usually not even then as the default block size of 20 records (10240 bytes) is very common.
...
Enter fullscreen mode Exit fullscreen mode

There is room for simpler help pages focused on practical examples. How about:

Screenshot of the tldr client displaying the tar command.

This repository is just that: an ever-growing collection of examples for the…

stedolan/jq: Command-line JSON processor

Unix scripts are based on the idea that you have a stdout with lines of outputs.

How do you autoamte things if you have JSON instead? (and JSON is everywhere)

jq is the answer

GitHub logo jqlang / jq

Command-line JSON processor

jq

jq is a lightweight and flexible command-line JSON processor akin to sed,awk,grep, and friends for JSON data. It's written in portable C and has zero runtime dependencies, allowing you to easily slice, filter, map, and transform structured data.

Documentation

Installation

Prebuilt Binaries

Download the latest releases from the GitHub release page.

Docker Image

Pull the jq image to start quickly with Docker.

Run with Docker

Example: Extracting the version from a package.json file
docker run --rm -i ghcr.io/jqlang/jq:latest < package.json '.version'
Enter fullscreen mode Exit fullscreen mode
Example: Extracting the version from a package.json file with a mounted volume
docker run --rm -i -v "$PWD:$PWD" -w "$PWD" ghcr.io/jqlang/jq:latest '.version' package.json
Enter fullscreen mode Exit fullscreen mode

Building from source

Dependencies

  • libtool
  • make
  • automake
  • autoconf

Instructions

git submodule update --init    # if building from git to get
Enter fullscreen mode Exit fullscreen mode

direnv/direnv: unclutter your .profile

My .profile is horrible so I'm looking forward to try this one

GitHub logo direnv / direnv

unclutter your .profile

direnv -- unclutter your .profile

Built with Nix Packaging status latest packaged version(s) Support room on Matrix

direnv is an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory.

Use cases

  • Load 12factor apps environment variables
  • Create per-project isolated development environments
  • Load secrets for deployment

How it works

Before each prompt, direnv checks for the existence of a .envrc file (and optionally a .env file) in the current and parent directories. If the file exists (and is authorized), it is loaded into a bash sub-shell and all exported variables are then captured by direnv and then made available to the current shell.

It supports hooks for all the common shells like bash, zsh, tcsh and fish. This allows project-specific environment variables without cluttering the ~/.profile file.

Because direnv is compiled into a single static executable, it is fast enough to be unnoticeable on each prompt. It is…

jonas/tig: Text-mode interface for git

GitHub logo jonas / tig

Text-mode interface for git

Tig: text-mode interface for Git

Linux CI macOS CI AppVeyor Build

What is Tig?

Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands.

Bugs and Feature Requests

Bugs and feature requests can be reported using the issue tracker or by mail to the Git mailing list. Ensure that the word "tig" is in the subject. For other Tig related questions please use Stack Overflow: https://stackoverflow.com/questions/tagged/tig.

If you are sending a bug report, please include the following information:

  • What Tig and ncurses versions are you using? (tig -v)

  • What system do you have? (uname -a, lsb_release -a)

  • What Git version are you using? (git -v)

Installation and News

Information…

tmux/tmux: terminal multiplexer

tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.

GitHub logo tmux / tmux

tmux source code

Welcome to tmux!

tmux is a terminal multiplexer: it enables a number of terminals to be created accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.

This release runs on OpenBSD, FreeBSD, NetBSD, Linux, macOS and Solaris.

Dependencies

tmux depends on libevent 2.x, available from this page.

It also depends on ncurses, available from this page.

To build tmux, a C compiler (for example gcc or clang), make, pkg-config and a suitable yacc (yacc or bison) are needed.

Installation

Binary packages

Some platforms provide binary packages for tmux, although these are sometimes out of date. Examples are listed on this page.

From release tarball

To build and install tmux from a release tarball, use:

./configure && make
sudo make install
Enter fullscreen mode Exit fullscreen mode

tmux can use the utempter library to update utmp(5), if it is…

santinic/how2: stackoverflow from the terminal

StackOverflow being such a massive part of a developer workflow, why not automating it?

GitHub logo santinic / how2

AI for the Command Line

how2: AI for your Terminal

how2 finds the simplest way to do something in a unix shell It's like man, but you can query it in natural language. It uses a mix of AI code-completion and StackOverflow search.

It effectively replaces Chrome => New Tab => Google => Click on StackOverflow => Scroll Down to first answer.

Go to how2terminal.com for more info.

how2 AI for the Command-Line

Demo video

v5.mp4

Install

MacOSX (via HowBrew):

brew tap how2terminal/how2
brew install how2

With NPM:

sudo npm install -g how2

If you install it without sudo, then you have to run it with npx how2 or alias the command manually.

Ubuntu/Debian:

Download latest .deb and then run:

wget how2terminal.com/how2.deb
sudo dpkg -i how2.deb

Binaries:

Go to the latest release and download the binaries.

Usage

By default, how2 uses an external AI server to find the best unix command line suggestion If you add the -s

BurntSushi/ripgrep : like grep, but better

ripgrep recursively searches directories for a regex pattern while respecting your gitignore

GitHub logo BurntSushi / ripgrep

ripgrep recursively searches directories for a regex pattern while respecting your gitignore

ripgrep (rg)

ripgrep is a line-oriented search tool that recursively searches the current directory for a regex pattern. By default, ripgrep will respect gitignore rules and automatically skip hidden files/directories and binary files. (To disable all automatic filtering by default, use rg -uuu.) ripgrep has first class support on Windows, macOS and Linux, with binary downloads available for every release. ripgrep is similar to other popular search tools like The Silver Searcher, ack and grep.

Build status Crates.io Packaging status

Dual-licensed under MIT or the UNLICENSE.

CHANGELOG

Please see the CHANGELOG for a release history.

Documentation quick links

Screenshot of search results

A screenshot of a sample search with ripgrep

Quick examples comparing tools

This example searches the entire Linux kernel source tree (after running make defconfig && make -j8) for [A-Z]+_SUSPEND, where all matches must be words. Timings were collected on a system…

sharkdp/bat: A cat(1) clone with wings.

Syntax highlighting for a large number of programming and markup languages, because why not?

You can alias it

$ alias cat=bat

GitHub logo sharkdp / bat

A cat(1) clone with wings.

bat - a cat clone with wings
Build Status license Version info
A cat(1) clone with syntax highlighting and Git integration

Key FeaturesHow To UseInstallationCustomizationProject goals, alternatives
[English] [中文] [日本語] [한국어] [Русский]

Syntax highlighting

bat supports syntax highlighting for a large number of programming and markup languages:

Syntax highlighting example

Git integration

bat communicates with git to show modifications with respect to the index (see left sidebar):

Git integration example

Show non-printable characters

You can use the -A/--show-all option to show and highlight non-printable characters:

Non-printable character example

Automatic paging

By default, bat pipes its own output to a pager (e.g. less) if the output is too large for one screen If you would rather bat work like cat all the time (never page output), you can set --paging=never as an option, either on the command line or in your configuration file. If you intend to alias cat to bat in your…

junegunn/fzf: A command-line fuzzy finder

Makes looking for a file as easy as in Visutal Studio Code or IntelliJ

GitHub logo junegunn / fzf

🌸 A command-line fuzzy finder

fzf - a command-line fuzzy finder Build Status Version License Contributors Sponsors Stars


fzf merch

Show your love for fzf -- T-shirts, mugs, and stickers now available

commitgoods.com/collections/fzf


fzf is a general-purpose command-line fuzzy finder.

It's an interactive filter program for any kind of list; files, command history, processes, hostnames, bookmarks, git commits, etc. It implements a "fuzzy" matching algorithm, so you can quickly type in patterns with omitted characters and still get the results you want.

Highlights

  • Portable -- Distributed as a single binary for easy installation
  • Fast -- Optimized to process millions of items instantly
  • Versatile -- Fully customizable through an event-action binding mechanism
  • All-inclusive -- Comes with integrations for Bash, Zsh, Fish, Vim, and Neovim

Table of Contents

sharkdp/fd: like find, but better

A simple, fast and user-friendly alternative to 'find'

GitHub logo sharkdp / fd

A simple, fast and user-friendly alternative to 'find'

fd

CICD Version info [中文] [한국어]

fd is a program to find entries in your filesystem It is a simple, fast and user-friendly alternative to find While it does not aim to support all of find's powerful functionality, it provides sensible (opinionated) defaults for a majority of use cases.

InstallationHow to useTroubleshooting

Features

  • Intuitive syntax: fd PATTERN instead of find -iname '*PATTERN*'.
  • Regular expression (default) and glob-based patterns.
  • Very fast due to parallelized directory traversal.
  • Uses colors to highlight different file types (same as ls).
  • Supports parallel command execution
  • Smart case: the search is case-insensitive by default. It switches to case-sensitive if the pattern contains an uppercase character*.
  • Ignores hidden directories and files, by default.
  • Ignores patterns from your .gitignore, by default.
  • The command name is 50% shorter* than find :-).

Demo

Demo

How to use

First, to…

wting/autojump

A cd command that learns - easily navigate directories from the command line

GitHub logo wting / autojump

A cd command that learns - easily navigate directories from the command line

NAME

autojump - a faster way to navigate your filesystem

DESCRIPTION

autojump is a faster way to navigate your filesystem. It works by maintaining a database of the directories you use the most from the command line.

Directories must be visited first before they can be jumped to.

USAGE

j is a convenience wrapper function around autojump. Any option that can be used with autojump can be used with j and vice versa.

  • Jump To A Directory That Contains foo:

    j foo
    
  • Jump To A Directory That Contains foo, Preferring Child Directories:

    You can prioritize child directories over matches in the databases via

    jc foo
    
  • Open File Manager To Directories (instead of jumping):

    Instead of jumping to a directory, you can open a file explorer window (Mac Finder, Windows Explorer, GNOME Nautilus, etc.) to the directory instead.

    jo music
    

    Opening a file manager to a child directory…

inconshreveable/ngrok: Introspected tunnels to localhost

You have your web app working on localhost, the CI is broken and you can't share your work with your colleagues.

Except that with ngrok, you can!

GitHub logo inconshreveable / ngrok

Unified ingress for developers

ngrok - Unified Ingress for Developers

https://ngrok.com

ngrok Community on GitHub

If you are having an issue with the ngrok cloud service please open an issue on the ngrok community on GitHub

This repository is archived

This is the GitHub repository for the old v1 version of ngrok which was actively developed from 2013-2016.

This repository is archived: ngrok v1 is no longer developed, supported or maintained.

Thank you to everyone who contributed to ngrok v1 it in its early days with PRs, issues and feedback. If you wish to continue development on this codebase, please fork it.

ngrok's cloud service continues to operate and you can sign up for it here: https://ngrok.com/signup

What is ngrok?

ngrok is a globally distributed reverse proxy that secures, protects and accelerates your applications and network services, no matter where you run them. You can think of ngrok as the front door to your…

github/hub:

A command-line tool that makes git easier to use with GitHub.

GitHub logo mislav / hub

A command-line tool that makes git easier to use with GitHub.

hub is a command line tool that wraps git in order to extend it with extra features and commands that make working with GitHub easier.

For an official, potentially more user-friendly command-line interface to GitHub see cli.github.com and this comparison.

This repository and its issue tracker is not for reporting problems with GitHub.com web interface. If you have a problem with GitHub itself, please contact Support.

Usage

$ hub clone rtomayko/tilt
#=> git clone https://github.com/rtomayko/tilt.git

# or, if you prefer the SSH protocol:
$ git config --global hub.protocol ssh
$ hub clone rtomayko/tilt
#=> git clone git@github.com:rtomayko/tilt.git
Enter fullscreen mode Exit fullscreen mode

See usage examples or the full reference documentation to see all available commands and flags.

hub can also be used to make shell scripts that directly interact with the GitHub API.

hub can be safely aliased as git, so you can type $ git <command> in the…

Build your own CLI tools, but maybe not in Bash

Command-line tools are great to automate and simplify your developer workflow.

Tools written by others are good, but why would you not write your own tools?

I have a strong opinion weakly held on this topic:

After 15 years of trying to program in Bash and being stuck at trials and errors, I think it's time to retire Bash.

Why not using your favorite programming language instead?

I found they are 10x time better than Bash.

Python, Go and JavaScript are all good choices to write a CLI tool.

Now my favorite language being Kotlin, I wanted to write a starter project for my own CLI tools using Kotlin multiplatform.

So if you allow me this shameless plug, have a look at the kotlin-cli-starter GitHub template

GitHub logo jmfayard / kotlin-cli-starter

Life is too short for Bash programming

A starter project to build command-line tools in Kotlin Multiplatform

Contains a re-implementation of a real world CLI tool: git-standup

jmfayard_kotlin-cli-starter__Life_is_too_short_for_Bash_programming_and_Telegram_and_GitHub_Desktop

Installation

You can install using one of the options listed below

Source Command
Node npm install -g kotlin-cli-starter
Installer curl -L https://raw.githubusercontent.com/jmfayard/kotlin-cli-starter/main/installer.sh | sudo sh
Tests ./gradlew allTests
Kotlin All Platforms Run ./gradlew allRun
Kotlin JVM Run ./gradlew run
Kotlin Native Run ./gradlew install then $ git standup
Kotlin Node.JS Run ./gradlew jsNodeRun

Why?

Being able to write your own command-line tools is a great skill to have. Automate all the things!

You can write the CLI tools in Kotlin and reap the benefits of using

  • a modern programming language
  • modern IDE support
  • modern practices such as unit testing and continuous integration
  • leverage Kotlin multiplatform libraries
  • run your code on the JVM and benefit from a wealth of Java libraries
  • or build a native executable, which starts very fast and…

Any cool tool that I'm missing?

No such list would be ever complete, so please add your recommandation in the comments.

Updates from my readers

jesseduffield/lazygit simple terminal UI for git commands

lazygit is a very cool git client

GitHub logo jesseduffield / lazygit

simple terminal UI for git commands

A simple terminal UI for git commands

GitHub Releases Go Report Card Codacy Badge Codacy Badge golangci-lint GitHub tag homebrew

commit_and_push

Sponsors

Maintenance of this project is made possible by all the contributors and sponsors. If you'd like to sponsor this project and have your avatar or company logo appear below click here. 💙

User avatar: Mark LussierUser avatar: Dean HerbertUser avatar: Peter BjorklundUser avatar: Oliver GüntherUser avatar: Pawan DhananjayUser avatar: User avatar: Carsten GehlingUser avatar: User avatar: Chau TranUser avatar: matejcikUser avatar: theAverageDev (Luca Tumedei)User avatar: User avatar: Aliaksandr StelmachonakUser avatar: Pedro PombeiroUser avatar: Burgy BenjaminUser avatar: Joe KlemmerUser avatar: Tobias LütkeUser avatar: Ben BeaumontUser avatar: User avatar: HollyUser avatar: Tom LanserUser avatar: Casey BoettcherUser avatar: Jeff ForcierUser avatar: User avatar: Maciej T. NowakUser avatar: James HillyerdUser avatar: YuryUser avatar: Olivier reivilibreUser avatar: Braden SteffaniakUser avatar: Jordan GillardUser avatar: SebastianUser avatar: Andy SlezakUser avatar: Martin KockUser avatar: Daniel KokottUser avatar: Jan HeijmansUser avatar: Kevin NowaldUser avatar: Ethan LiUser avatar: Robert ForlerUser avatar: Jan ZenknerUser avatar: User avatar: Frederick MorlockUser avatar: Maximilian LangenfeldUser avatar: User avatar: Neil LambertUser avatar: David Heinemeier HanssonUser avatar: Ethan FischerUser avatar: Terry TaiUser avatar: Adam RoesnerUser avatar: Tim MorganUser avatar: Maksym ShypulniakUser avatar: Kovács ÁdámUser avatar: User avatar: Patricio SerranoUser avatar: KiriUser avatar: Steven MasiniUser avatar: John Even BjørnevikUser avatar: Michael OberstUser avatar: Adam TrepanierUser avatar: Kenth FagerlundUser avatar: Julien TardotUser avatar: Ellord TayagUser avatar: Edgar Post-BuijsUser avatar: Pierre SpringUser avatar: Zac ClayUser avatar: Thomas MüllerUser avatar: Carl AssmannUser avatar: Sergey OgnevUser avatar: Moody LiuUser avatar: Michael HowardUser avatar: Lasse Bloch LauritsenUser avatar: David BrockmanUser avatar: Alexander SlavschikUser avatar: Aidan GaulandUser avatar: Maksym BieńkowskiUser avatar: Joshua WootonnUser avatar: User avatar: Simon Sandvik LeeUser avatar: Thomas GilbertUser avatar: Szymon MuchaUser avatar: Unnawut LeepaisalsuwannaUser avatar: Bret WortmanUser avatar: Simon CardonaUser avatar: André LameirinhasUser avatar: Scott VelezUser avatar: justinUser avatar: MayfieldUser avatar: Soma HolidayUser avatar: bizmythUser avatar: DessalinesUser avatar: Sean Hong(홍성민)User avatar: Alex DreymannUser avatar: Felipe OspinaUser avatar: Riccardo NovagliaUser avatar: rxzUser avatar: Robert BuchbergerUser avatar: housekeeperUser avatar: YuriiUser avatar: Pål Syvertsen StakvikUser avatar: User avatar: Zak El Fassi

Elevator Pitch

Rant time: You've heard it before, git is powerful, but what good is that power when everything is so damn hard to do? Interactive rebasing requires you to edit a goddamn TODO file in your editor? Are you kidding me? To stage part of a file you need to use a command line program to…




See the demo

casey/just: 🤖 Just a command runner

Inspired by make

GitHub logo casey / just

🤖 Just a command runner

Table of Contents↗️

just


just is a handy way to save and run project-specific commands.

This readme is also available as a book. The book reflects the latest release, whereas the readme on GitHub reflects latest master.

(中文文档在 这里 快看过来!)

Commands, called recipes, are stored in a file called justfile with syntax inspired by make:

screenshot

You can then run them with just RECIPE:

$ just test-all
cc *.c -o main
./test --all
Yay, all your tests passed!
Enter fullscreen mode Exit fullscreen mode

just has a ton of useful features, and many improvements over make:

  • just is a command runner, not a build system, so it avoids much of make's complexity and idiosyncrasies No need for .PHONY recipes!

  • Linux, macOS, Windows, and other reasonable unixes are supported with no additional dependencies. (Although if your system doesn't have an sh you'll need to choose a different shell.)

gsamokovarov/jump: Jump helps you navigate faster by learning your habits. ✌️

An alternative to cd that feels like it can read your mind

GitHub logo gsamokovarov / jump

Jump helps you navigate faster by learning your habits. ✌️

[releases]

Jump

Jump integrates with your shell and learns where you go. It tracks the directories you visit and lets you jump to the right one with just a few fuzzy-typed characters.

Demo


Installation

Packages are available on the following platforms:


























Platform Command
macOS
brew install jump or port install jump
Linux sudo snap install jump
Nix nix-env -iA nixpkgs.jump
Go go install github.com/gsamokovarov/jump@latest

Linux distribution packages
Distribution Command
Arch sudo yay -S jump
Ubuntu / Debian wget https://github.com/gsamokovarov/jump/releases/download/v0.67.0/jump_0.67.0_amd64.deb && sudo dpkg -i jump_0.67.0_amd64.deb
Fedora wget https://github.com/gsamokovarov/jump/releases/download/v0.67.0/jump-0.67.0-1.x86_64.rpm && sudo rpm -i jump-0.67.0-1.x86_64.rpm
Void xbps-install -S jump

Shell Integration

Jump is used through its helper function – j by default. Add it to your shell:

bash / zsh

eval "$(jump shell)"
Enter fullscreen mode Exit fullscreen mode

fish

jump shell fish | source

PowerShell

Invoke-Expression (&jump shell pwsh | Out-String)

Nushell

jump shell nushell | save --append $nu.config-path

Murex

murex-package install https://github.com/lmorg/murex-module-jump.git

Jump begins…

Top comments (14)

Collapse
 
bravoecho profile image
B.E.

TUI file managers such as nnn (github.com/jarun/nnn, minimalistic, my favourite) or lf (github.com/gokcehan/lf/, a more interactive one)

delta, more limited than lazygit, focused on just diffs, but it does it really really well, and can be a nice complement (github.com/dandavison/delta)

glow terminal markdown renderer (github.com/charmbracelet/glow): some might think this is superfluous, because markdown is supposed to be meaningfully readable as plain text, but I often find poorly formatted files, sometimes "augmented" with a lot of inline HTML, to the point of becoming impossible to parse for the human eye

Collapse
 
vonheikemen profile image
Heiker

Speaking of creating your own cli tools. I would like to share something cool: a scripting language called ABS.

This is why I think is cool.

  • It has a C-like syntax.
  • You can call external commands and handle the result in a convenient way.
  • It has a module system.
  • It has a builtin tool that allows you to create cli tools.

Here is a little snippet.

tz = `cat /etc/timezone`

if !tz.ok {
  echo("Ooops, something went wrong")
  exit(1)
}

continent, city = tz.split("/")

echo("Best city in the world?")

selection = stdin()

if selection == city {
  echo("You might be biased...")
} else {
  echo("Yes, ${selection} is awesome.")
}
Enter fullscreen mode Exit fullscreen mode

I wrote about this language a few years ago, here is the post if anyone is interested.

I like this a lot because it allows people who are familiar with a languages like javascript or PHP (that would be me) to write shell scripts in a way that feels comfortable.

Collapse
 
pieter profile image
Pieter D

If bat looks appealing to you and you happen to be a Vim user, you might want to consider running view /path/to/file instead of bat. It'll open any file as readonly in Vim, with all your favorite plugins like Git integration present. Instead of piping to | less, you could also pipe to | view -. You may have to enter something like :set syntax=json if the syntax isn't autodetected based on content, although there's probably a simple setting or plugin to enable autodetection.

If you're not a Vim user and you want something that works with zero configuration, bat seems like a good choice!

Collapse
 
bravoecho profile image
B.E.

jump (github.com/gsamokovarov/jump) is in my opinion a better alternative to autojump

I personally prefer jump because it's actively maintained, but especially because – like all modern tools listed here – it's a standalone executable that does not require Python

it works really well, the author says it can "read his mind" and I tend to agree 🙂

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

Thanks, I've added the suggestion!

Collapse
 
dazfuller profile image
Darren Fuller

I’m using ripgrep and bat daily, and they make everything just that much better.

Another tool I’m using a lot is Just. I might have processes which need a number of steps, or building a project with a lot of arguments. I can abstract it all away and use something like “just build” instead.

github.com/casey/just

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

I started using just in my own project, thanks, it's nice!

github.com/jmfayard/refreshVersion...

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard

thanks, I've added the suggestion

Collapse
 
siddharthshyniben profile image
Siddharth

Hey! I made this CLI tool called fcd which replaces the cd command. It basically searches for wherever you are trying to cd and then copies the appropriate cd command to your clipboard.

GitHub logo SiddharthShyniben / fcd

Faster cd-ing.

Contributors Forks Downloads Stargazers Issues MIT License


>_

fcd

Better cding for macOS
Explore the docs »

Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Documentation
  5. Roadmap
  6. Contributing
  7. License
  8. Contact

About The Project

Please star this repo if you found this tool useful 🌟

fcd Screen Shot

fcd is a utility which helps you cd faster on macOS.

Ever had to type out a long cd ~/Sites/Projects/project, find out the path is wrong, rewrite it to cd ~/Sites/Sandbox/project? You just wasted a minute or two. This inspired me to create this tool: fcd.

fcd automatically reads the dirname and the basename of the input and searches for any folder with basename as the name in the dirname folder (Basically, if you input "some/where/else", the program returns the path to "some/where/**/else"). Once it finishes:

  • If there is more than one folder named basename, it gives you…
Collapse
 
siddharthshyniben profile image
Siddharth

I wanted to implement autojump like functionality ever since I made fcd.

Collapse
 
eggbean profile image
eggbean

If you want exa to behave just like ls, so that you do not need to learn any new switches, I have made this wrapper script:
gist.github.com/eggbean/74db77c4f6...

Collapse
 
klvenky profile image
Venkatesh KL

Z is similar to autojump & works great for me.

Collapse
 
joeklemmer profile image
Joe Klemmer

I've found lazygit to be quite handy, myself.

github.com/jesseduffield/lazygit

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard • Edited

I've tried it and love it, thanks!