Cool Tools: CLI Edition

3 min read
2 tags

I’ve noticed I’m spending more and more time with only a terminal open lately, with that, I’ve found quite a few handy little CLI apps, utilities, and even built setup a pretty shell theme.

What my setup looks like

I use zsh as my primary shell with oh-my-zsh and a powerlevel10k theme with the Meslo NerdFont to add all the fancy icons and ligatures into my command line. I’ve also been messing around with plugins in zsh but am still pretty new to how that works. All I’ve really tried is the zsh autcomplete plugin which has been a nice to have.

Admittedly, I don’t do a whole lot with zsh that you couldn’t do with bash, I just prefer the plugin ecosystem and themes available there over baseline bash.

Some tools I’ve been using

EZA

This is like an updated version of `ls` that can do some pretty cool stuff like listing information about folders containing git repos, listing human readable file sizes by default, and rendering out file trees.

I also have this aliased to `ls` so I don’t have to fight muscle memory at all.

LazyGit

I’ve only been using lazygit for a few weeks but I am already a huge fan. It provides a really solid view into your repo status, history, and staged files. On top of that, it makes things like rebasing easy as well and guides you through the process.

a screenshot of the lazygit CLI showing a view of the git log for a main branch, as well as unstaged files, status, and commits

My favourite and most used feature for lazygit is using it to open new pull requests. If you open lazygit from a git repo directory, and hit `o` it will open a new PR from the currently checked out branch. So easy.

LazyDocker

this is a similar application to lazygit, but this time for Docker! You can use this to either view all the containers, networks, and volumes machine wide or focus in on specific docker compose setups.

A screenshot of the lazydocker ui reviewing a docker compose setup

I use this app at least once a week for wiping old and unused images, volumes, and networks. I also really like using lazydocker with my compose projects. It lets you see current proxied ports, logs, CPU/RAM usage, the current ENV, and stats for each of your service containers. This makes debugging environments and monitoring performance quite easy.

Superfile

a screenshot of the superfile CLI looking over a folder structure

this is basically windows explorer, but good, and in your terminal. Superfile is fantastic at viewing file details, traversing in and out of folders when looking for something, sorting files by edit time or name, and copy/cut/delete-ing multiple files at once.