What CLI tools do you LOVE to use? Is there something you wouldn’t want to miss?
I asked this question in the Stackable Slack a few days ago, got some cool replies and wanted to share them on.
Interested in discovering new CLI tools to enhance your dev experience? Here’s a hand-picked selection of CLI tools, for you to check out!
Quickly jump to folders by just typing a few chars. It automatically learns which directories you use the most frequent.
Autojump is “a faster way to navigate your filesystem” (as described in the original autojump repo).
autojump-rs is a drop-in replacement for autojump. It delivers responses quicker, due to being written in Rust instead of Python.
Note: I tend to navigate to the same directories over and over, and always hesitate before remembering what the exact command for the file explorer is. It immediately resonated.
You can find the
autojump-rs repo here. The original autojump repository does a better job of conveying how the tool is used. So you might want to start there.
Upon entering a directory, it sets up my whole development environment for that specific project. I use it in combination with Nix.
direnv is an extension for your shell, with the goal to “unclutter your .profile”.
On every command you issue, it checks for a
.envrc file. If found, it sets (and unsets) environment variables depending on your current directory.
Here’s an example demonstrating how the right
helm binary is visible (or not), depending on the current working directory, thanks to
direnv working in the background:
~ $ helm repo list helm: command not found ~ $ cd projects/stackable ~/projects/stackable $ helm repo list NAME URL bitnami https://charts.bitnami.com/bitnami stackable-stable https://repo.stackable.tech/repository/helm-stable stackable-dev https://repo.stackable.tech/repository/helm-dev stackable-test https://repo.stackable.tech/repository/helm-test ~/projects/stackable $ cd ~ $ helm helm: command not found
direnv, you can stop worrying about versions of tools and pay more attention to getting things done.
A faster alternative to find, and the output is not as cluttered with permission denied warnings.
fd lets you find stuff in your filesystem, but without stumbling over the command syntax of
find. It also does all kinds of neat tricks to be faster than you expect.
Wonderful when trying to pipe stuff between programs that don’t quite agree on each other or the format.
jq lets you do useful things with JSON! Think “Swiss Army knife for JSON”. Do you want to transform or get data from a JSON source with a single command?
A great alternative to writing one-off JSON processing code in your usual scripting language of choice.
If you’re curious to find out more, head over to the tutorial. It has some great usage examples.
Are you wrangling YAML & XML as well as JSON? You might also want to check out yq as well.
Oh My Zsh
A sufficiently-fancy Zsh config without too much hassle.
Not a CLI tool, but a framework for making Zsh more fun to use. Oh My Zsh helps you to manage your Zsh configuration and provides good looking themes. An easy way to customize your Zsh experience.
It’s just so fast to search for anything across all my code, docs and notes.
rg is a faster version of
grep. So fast in fact, that you won’t mind using it, even when you let it loose on lots of data at once.
You can find its repo, and some use-cases here.
Another drop-in replacement for a popular tool! This time for the glorious tldr tool.
tldr $CLI_TOOL provides usable, and useful examples of how
$CLI_TOOL can be used.
$ tldr find # if you can relate to this command, check out the next tool!
Yes, it’s slightly faster. You can find tealdeer here.
Looking For More?
The above list is a hand-picked selection of recommendations from the Stackable dev team.
If you’re looking for more examples of powerful CLI tools – check out this thread on reddit. It focuses on CLI tools written in Rust, but there’s a lot of good stuff in there!