EDIT: Added a companion video https://youtu.be/fU8HB1cvG9w
Awesome tools that I learned about from the comments:
- clipboard (not sure how I functioned without it, it’s a bit like vim registers but in the terminal)
- fzf-tab
- atuin
I’ve compiled a list of 10 CLI tools that I use the most and which impacted my terminal-based workflow significantly:
https://piotrzan.medium.com/10-cli-tools-that-made-the-biggest-impact-f8a2f4168434
Here is tl;dr:
- fzf: A fuzzy finder that enhances command-line workflows with interactive searching.
- bpytop: Resource monitor that shows usage and stats for processor, memory, disks, network and processes.
- tmux: A terminal multiplexer for managing multiple terminal sessions efficiently.
- lazygit: A TUI for git operations, simplifying repository management.
- gh (GitHub CLI): A GitHub CLI tool to manage repositories, issues, and PRs from the terminal.
- entr: A utility that runs commands when files change, useful for automation.
- just: A command runner for managing project-specific tasks with simple commands.
- taskwarrior: A command-line tool for efficient task management.
- tldr: Simplified man pages providing quick command examples.
- pet: A snippet manager for saving and reusing complex command-line commands.
It wasn’t easy to choose, for example I skipped Autokey which is really amazing and I built nice workflow around it. What are yours?
Comments
yasser_kaddoura · 2024-08-11 · 31 points
denisidoro/navi: An interactive cheatsheet tool for the command-line is superior to knqyf263/pet: Simple command-line snippet manager.
Regarding fzf, Aloxaf/fzf-tab: Replace zsh’s default completion selection menu with fzf! is a life changer if you integrate it properly with commands & if you have a script to preview any file type.
For those who are interested for more CLI/TUI tools, there are awesome lists out there, such as:
- rothgar/awesome-tuis: List of projects that provide terminal user interfaces
- agarrharr/awesome-cli-apps: 🖥 📊 🕹 🛠 A curated list of command line apps
- toolleeo/cli-apps: The largest Awesome Curated list of CLI/TUI applications with source data organized into CSV files
HelpImOutside · 2024-08-11 · 6 points
Navi looks super cool but in my experience this type of thing is something I install then completely forget about. I’m sure once you’ve used it for a while it’s invaluable but..
yasser_kaddoura · 2024-08-11 · 2 points
I use it for 2 situations:
When I find myself googling something for a command that I don’t use often, and an alias isn’t convenient to remember. Let’s say you want to use a tool without sourcing config, and you find yourself googling it. In navi you can simple add something like the following configuration, you can find it easily by presssing C-g and type “vim without”. This is faster than googling and easier to find than an alias.
# Run vim without rc vim -u NONE
Accelerating writing a command by using
variables, for instance include files as arguments for a command# Downgrade pkg sudo pacman -U
$pkg: ls /var/cache/pacman/pkg/\*zst I don’t use navi heavily, since most commands I execute I use C-r with fzf which shows the commands that I usually use.
piotr1215 · 2024-08-11 · 5 points
Thank you for sharing!
fzf-tabis really cool, added it to my plugins. Navi looks great at first glance, but I have extensive solleciton of commmands inpetand it works well for me, so no reason to swap.
[deleted] · 2024-08-11 · 0 points
Totally agree, I went the same route and have now lots of various scripts that integrate with zsh and work for me.
piotr1215 · 2024-08-11 · 3 points
Totally agree, I went the same route and have now lots of various scripts that integrate with zsh and work for me.
[deleted] · 2024-08-11 · 0 points
Thank you, I’ve browsed it and there are a few gems. Maybe I will start using clipboard again, it has some bugs before but this is a neat tool.
piotr1215 · 2024-08-11 · 2 points
Thank you, I’ve browsed it and there are a few gems. Maybe I will start using clipboard again, it has some bugs before but this is a neat tool.
ratthing · 2024-08-11 · 8 points
I use a great knowledge base tool called nb (https://xwmx.github.io/nb/). It is a massive Bash script that uses Git as the backend for managing notes, files, bookmarks, and todos. Its a little clunky at first, but once you get the hang of it, it is very useful.
Innovator-X · 2026-04-27 · 1 points
wow the creator of the repo is a legend. Their work output is insane.
freefallfreddy · 2024-08-11 · 6 points
I’ve switched from
entrtowatchexec.piotr1215 · 2024-08-11 · 5 points
I actually switched from watchexed to entr haha
jstanforth · 2024-08-11 · 1 points
Just curious, what are the benefits of one vs the other?
freefallfreddy · 2024-08-11 · 4 points
For me: it’s easier to select files to watch. With entr you have to use ls or find to select files, then pipe those to entr. With watchexec you can pass in extensions, regexes (I think) and it recurses into subdirectories to find matching files to watch.
jstanforth · 2024-08-11 · 2 points
Ahh, nice, thanks! Super-useful already after a couple minutes of experimenting with it.
freefallfreddy · 2024-08-11 · 6 points
Also:
lazydocker, such a quality of life thing. Especially when I want to quickly shell into containers or restart them.piotr1215 · 2024-08-11 · 1 points
Great recommendation, I keep forgetting to use it haha. Always fumbling with docker commands instead or use pet snippets.
foomojive · 2024-08-12 · 1 points
I use ctop
freefallfreddy · 2024-08-12 · 1 points
Cool. Looks like their feature sets don’t overlap so much though.
foomojive · 2024-08-12 · 1 points
Well ctop can quickly exec a shell for a single container, view logs, start and stop, etc.
freefallfreddy · 2024-08-12 · 1 points
I don’t see start/stop in their README.
foomojive · 2024-08-12 · 2 points
Mm, ok. I am not a contributor to the project, I just use it. Press enter over a container for a context menu where you can log, start, stop, pause, unpause, and I think remove a container. Don’t know why this is not in the readme.
Anyway to each their own, if you like lazydocker go for it
theunglichdaide · 2024-08-11 · 6 points
Not a CLI, but I found this website very useful https://terminaltrove.com/
I discovered many cool CLI tools through it.
[deleted] · 2024-08-11 · 0 points
Thank you for the recommendations, both Atuin and glances looks really cool. Last week I’ve been thinking about creating a project for sharing command line history, looks like atuin does exactly what I thought about!
piotr1215 · 2024-08-12 · 1 points
Thank you for the recommendations, both Atuin and glances looks really cool. Last week I’ve been thinking about creating a project for sharing command line history, looks like atuin does exactly what I thought about!
[deleted] · 2024-08-12 · 0 points
Even without the sync, having history for tmux session and folder separately is relaly cool!
piotr1215 · 2024-08-12 · 2 points
Even without the sync, having history for tmux session and folder separately is relaly cool!
gumnos · 2024-08-11 · 9 points
Of those, I find
tmuxindispensable, andentr&fzfare my go-tos when I have the need for their respective functionalities (though it’s not terribly frequent). I’ve usedtaskwarrior, but found that it was overkill for most of what I do—when I have time-based tasks, I put them on myremind(1)calendar, and otherwise-unbounded tasks just go in a todo file (which is linked to my~/.planso I can usefingerfrom a remote machine to get my task-list).I am comfortable enough with
gitthat I don’t really needlazygit, and I don’t use GitHub enough to warrant usinggh.I didn’t find that
tldrgave me anything I couldn’t largely get from eitheraproposorman, so it never stuck.I tend to use
top(1)orsystat(1)for my resource monitoring, so don’t really find myself reaching for the fancier versions oftoplikehtoporbpytopBut I hadn’t heard of
justorpet. I suspect this old-fart would usemake(1)where you’re usingjust. Butpetlooks pretty slick.Thanks for sharing!
piotr1215 · 2024-08-11 · 1 points
As a fellow old fart who used Makefile most of the time, just is really slick if you want to give it a try!
belibebond · 2024-08-12 · 1 points
It’s actively managed and features are added frequently. It’s cross platform and works with cicd. Really an excellent tool. Give just a try.
AmazingDisplay8 · 2024-08-11 · 4 points
Thanks for pet. I didn’t know it existed. Good list
dfwtjms · 2024-08-11 · 4 points
Isn’t that just aliases and functions with extra steps and dependencies?
pouetpouetcamion2 · 2024-08-11 · 4 points
no a tool, but bash 3 boilerplate from kevin van zonneveld (i mean “main.sh”) https://github.com/kvz/bash3boilerplate.git brings good template for argparsing, err logging on term (no systemd or ) and trapping. this and shellcheck enables you to write a few scripts quickly. they complete well with listed tools.
mgutz · 2024-08-12 · 3 points
- lazydocker
- ripgrep
- neovim
- yazi - file manager
- fd - find
- dua - fast disk usage (can be interactive)
- glances - system resource overview
piotr1215 · 2024-08-12 · 1 points
You are second person recommending
glances, it slooks really neat.
thesobercoder · 2024-08-11 · 5 points
You might want to try bottom, which I suspect might be faster than bpytop because it is written in rust.
ludicroussavageofmau · 2024-08-11 · 12 points
If you want a similar look and feel to bpytop but with good performance, try btop++. It’s by the same author and is the successor to bpytop (has been since 2021).
RoboticElfJedi · 2024-08-11 · 6 points
I never tire of these posts, I usually find something new.
I looked into lazygit recently. It looked like it hadn’t been under development for years - I couldn’t get it to install, as it won’t work on python 3.7+.
piotr1215 · 2024-08-11 · 1 points
Thanks! I just checked and last commit was 2 days ago, the repo looks pretty active.
RoboticElfJedi · 2024-08-11 · 2 points
I was wrong - perhaps I got it confused. Playing with it now!
Big_Combination9890 · 2024-08-11 · 2 points
I didn’t know about
bpytop, and now I do! Thanks so much, I was on the lookout for a complete sysmon for my setup!Btw. as far as interface design goes, that thing should be a textbook example for terminal user-discoverability done right.
ITooSpooky · 2024-08-12 · 2 points
Instead of using bpytop use btop++ which is a rewrite by the same author using c++, bpytop has been discontinued since 2021
Big_Combination9890 · 2024-08-12 · 1 points
Oh, thank you, I thought the project could need some updates!
dhaitz · 2024-08-12 · 2 points
Here’s a useful list of modern shell commands: johnalanwoods/maintained-modern-unix
Tools like fd, bat, lsd etc. are faster, prettier and more convenient (e.g. with git integration) than their traditional counterparts
yuri0r · 2024-08-13 · 2 points
i went from tmux to zellij, layouts are cool, starts from 1 by default.
gitui, does almost everything i need in regards to git.
atuin, holy fuck its great.
rd_626 · 2024-08-11 · 1 points
RemindMe! 1 month
RemindMeBot · 2024-08-11 · 1 points
I will be messaging you in 1 month on 2024-09-11 14:58:47 UTC to remind you of this link
5 OTHERS CLICKED THIS LINK to send a PM to also be reminded and to reduce spam.
Parent commenter can delete this message to hide from others.
Info Custom Your Reminders Feedback
bew78 · 2025-04-05 · 1 points
Nix ✨
qiang_shi · 2025-10-28 · 1 points
hard pass.
SUPER complex
only navel gazers with apparently infinitely zero value free time use nix
Status_Tea_2017 · 2025-06-04 · 1 points
llm the cli by Simon Willison is a pretty magical IMO and is on my top 10 list.
Simple_Paper_4526 · 2025-09-01 · 1 points
fzf, ripgrep, bat, jq, exa, htop, tldr, lazygit, entr, and fd. lately i’d add Qodo cli too since it plugs in ai review/gen without leaving terminal.
qiang_shi · 2025-10-28 · 1 points
throw away all your ai cli tools and look at sst/opencode
thank me later
iluvecommerce · 2026-02-05 · 1 points
Great list! These traditional CLI tools are essential for any developer’s toolkit.
As someone who’s been building CLI tools, I created Sweet! CLI (https://sweetcli.com) to tackle a different problem: AI-powered automation. Instead of remembering complex commands, you describe what you need in natural language and it writes/executes the scripts automatically. It’s like having fzf for your entire workflow - describe what you want and it finds the right implementation.
What makes it different is it actually executes the code it generates (with safety checks), making it perfect for one-off automation tasks that you’d normally write throwaway scripts for. It complements tools like just and entr beautifully.
(I’m the founder, building it as a solo developer to solve my own repetitive scripting problems!)
What kind of repetitive tasks do you find yourself scripting most often?
Noundry · 2026-03-10 · 1 points
Solid list. You might also want to check out Worktale, a CLI tool that turns your git history into a private, interactive developer journal and dashboard. Everything stays local, so it’s handy for tracking your code activity and prepping work summaries without sending data anywhere.
Noundry · 2026-03-11 · 1 points
Solid list. You might also want to check out Worktale, a CLI tool that turns your git history into a private, interactive developer journal and dashboard. Everything stays local, so it’s handy for tracking your code activity and prepping work summaries without sending data anywhere.
ahk-_- · 2024-08-11 · 0 points
Emacs.
bagpussnz9 · 2024-08-11 · 3 points
there it is :-)
[deleted] · 2024-08-11 · 5 points
Nice one, chest also allows for creating custom chest sheets.
piotr1215 · 2024-08-11 · 1 points
Nice one, chest also allows for creating custom chest sheets.