Tell me your favorite CLI apps
Posted by D7x8@reddit | linux | View on Reddit | 218 comments
As the title says.
Aside from the obvious like fastfetch, htop, vim, etc what CLI apps are out there which replace a GUI app?
I like these as it is much more convenient and faster to have it all one command away and they use much less system resources (looking at you electron) as well as just making me look like a hackerman.
Matilde_di_Canossa@reddit
neomuttis still the best email client.4xlsd@reddit
btop, w3m, and ranger . if I had 4gb of ram that stack would be all I need
PerformanceUpper6025@reddit
clear
skhds@reddit
I think tmux is a must
ghostnation66@reddit
False. Just use neovim as your myltiplexer
skhds@reddit
but isn't neovim basically a GUI editor? though, I've never used one yet
ke151@reddit
Another cool trick for tmux (and possibly other multiplexers) is you can attach the exact same console session with multiple devices. For example I have done my phone and laptop both to my server so I can peek at a long running task while on the go, but not have to type long commands on touchscreen. Also it's just cool!
punkwalrus@reddit
Man, tmux saved my bacon in a project I had all last week. Basically, I had to set up a script and a conf file for 100 servers, each unique in its own way, to run a service. Then I had a test run, which depending on the system, took anywhere from 20 to 400 minutes. The VPN to connection to this client was flaky as hell, and disconnected up many times during the day, either because of "lack of input," or just randomly.
I was able to roll out the tests on several sessions, several windows each, and my only limit was the ssh connection limits of the admin server. Disconnected? Reconnected to the VPN, reconnected to each tmux session, and I was back in business. I would have tore my hair out if I had to redo the tests because of disconnections.
nandru@reddit
tmux sucks!
this post was made by the screen gang
libra00@reddit
screen gang!
I used to have a linux box that pretty much only existed to run screen with tinyfugue so I could stay connected to MUSHes for weeks or months at a time. I used putty to ssh in and then screen -d -R to resume. Before I had my own linux box I had a variety of, ah, ill-gotten accounts on university computers around the internet that I'd telnet into to use screen/tinyfugue.
zylad@reddit
None of that is impossible with tmux. As a person who used screen to keep SSH sessions opened to all the servers in the fleet (which required recompiling screen because of its low limit on number of windows) I can attest that. Switched to tmux years ago and never looked back. My daily workflow utilises it heavily.
libra00@reddit
Oh I don't doubt it, I just don't have a use for that kind of operation anymore so I've never had a reason to look at tmux. Screen is just what I used to use. Like, why tmux when I can just have like 12 terminal windows open at once? Or even better, 12 tabs in Konsole?
alexklaus80@reddit
I'm starting to think that a lot lot lately. Many terminal emulators allows for tiling within one window as well, and then more and more cool features. And I'm starting to get annoyed when I want to use tmux in place of screen on another host, creating another tmux on tmux situation which is troublesome if you're not careful with configs.
It still has a use when I want to use tmux session running on another server, but certainly tmux is not nearly as important as it once was. It's so much so that my colleagues may know how to use screen but not tmux (and I learned how to use screen just recently).
zylad@reddit
Yeah, the modern terminal emulators are pretty good in that regard. For me it’s just a muscle memory with tmux (which I set to have many of screen’s key bindings) is just muscle memory but if I had to start using Linux again now, I’d probably ended up just relying on one of the terminal emulators :)
alexklaus80@reddit
It’s in by muscle memory too, and literally none of any shell seasons started without tmux on local terminal for years and years. So no reason to leave from tmux, but something tells me that maybe try something else at least for once. Maybe I’ll be back anyways, but yeah modern ones has quite a lot to offer that I have to wonder if I would like it more.
libra00@reddit
Yeah I was gonna say, tiling is also absurdly popular. I mean I guess it's nice to be able to switch sessions with a hotkey, but I'm pretty sure konsole uses standard browser tab controls, so..
Oh yeah running remote that totally makes sense, that's fair.
majesticmerc@reddit
You damn screen punks!
TuxTool@reddit
Tmux4life!
Junior_Common_9644@reddit
I converted from GNU Screen to tmux years ago. Never went back.
D7x8@reddit (OP)
I’ve looked into the tmux/screen tools but I tend to use multiple tabs in kitty. Is there use cases for it which beat just using kitty tabs?
killchopdeluxe666@reddit
Splitting a single terminal, such as a terminal over serial line. Comes up with embedded stuff sometimes.
skhds@reddit
Mostly for remote ssh stuff. I personally use it for nested tabs, outer tabs being kitty tabs and tmux for internal tabs per server.
nandru@reddit
IIRC, you can reconnect to a interrupted remote session
Also, mutiple windows/sessions with one ssh connection, even if kitty already does something similar
GhostVlvin@reddit
Sry bro, I detach nvim and use kitty as splitter. I don't like that for escape sequences to work properly they need to be supported by both VT and tmux and tmux must pass them to VT. It's much simpler for VT to support split panes and detach capability
skhds@reddit
Don't need to be sorry, everyone has their preferences. I had to use Windows for a long time, so kitty just wasn't available to me and I have been adjusted to using tmux as a result. Nowadays, on my desktop, I use kitty terminal and nest each different sessions with tmux (because I have to run all my work on a remote server).
neckyo@reddit
zellij is the eay
ready_or_not_3434@reddit
Definetly. Once you get used to detaching sessions and keeping your environment running over ssh its impossible to go back to a normal terminal window.
Rimadandan@reddit
Show me your magic, wizard !
SinglePanic@reddit
Double this. Also zellij since recently.
alexklaus80@reddit
Wowww panes are draggable?! This is wild!
global-gauge-field@reddit
Zellij was having some issues with codex. Do you know if it is resolved by now ?
SinglePanic@reddit
No idea actually, sorry. Only been using it on a couple of my servers, I still prefer tmux since I'm too used to it.
diegotbn@reddit
Obligatory recommendation for zellij which has completely replaced tmux for me. I have it automatically start every time I open a new terminal window.
knue82@reddit
I used it for quite some time but now I'm using Kitty which reders tmux superfluous for me. Those rare times I need to detach a terminal session, I'm going with screen.
ChocolateDonut36@reddit
tmust
unu_p_aici_3@reddit
Tmux
rcentros@reddit
Mutt for email. slrn for newsgroups. JOE (Joe's Own Editor) Jstar "flavor" for writing. Fountain-Mode in Emacs for screenplay writing (Afterwriting-cli for making PDF files from Fountain files). Calcurse for a Calendar and ToDo app. Dict for an offline dictionary. Links2 for a semi usable, non-GUI Internet browser.
Sanek3400@reddit
Vim, if you know how to use it efficiently
Online_Matter@reddit
Tell me your best trick
GhostVlvin@reddit
:g//norm! @q
ghostnation66@reddit
What does this do
IanCrapReport@reddit
Once you learn the dot command and macros, there's no going back.
__Punk-Floyd__@reddit
git
Lurksome-Lurker@reddit
Tintin++
Super niche, but if your into MUD games it’s the best client out there.
air_gopher@reddit
Late to the party, but did anyone mention jless ?
tungnon@reddit
yt-dlp
https://github.com/yt-dlp/yt-dlp
boar-b-que@reddit
I use the ever-loving tar out of yt-dlp.
I use an invidious instance as my YT frontend, but copy links to videos and music into my terminal and then download them straight from YT with yt-dlp.
My zsh helper aliases for yt-dlp look like so:
mdleslie@reddit
Same, but I have this alias set up:
korowal@reddit
Do you use it for YouTube?
directheated@reddit
This bad boy has filled up an entire 4 tb drive for me. No more with these hard drive prices 😭
nablavct@reddit
I use this a lot Pretty damn good functionality
mdleslie@reddit
Ticker.
Important-Brief-3076@reddit
Nmtui and minicom, as a network junior they are my biggest helpers
_l33ter_@reddit
this
miami-vice@reddit
"Made with lust."
micppp@reddit
Clicked it and my first thought was ‘of course this exists’ 😂
_l33ter_@reddit
xDD
Evantaur@reddit
Hijacking this for s second.
Was there at some point an image viewer named as pornview or have I been dreaming (I remember seeing that in Debian reposs)
mrandr01d@reddit
What the...
_l33ter_@reddit
...freaking way I've missed all the years? Did you mean to write? :)
D7x8@reddit (OP)
This is the most genius yet down bad solution I have ever seen
_l33ter_@reddit
in another cli-tab you can run some
nmapand fast switching back :Pnablavct@reddit
Why would you do this
_l33ter_@reddit
I've combined the best thing
so I don't have to leave the cli ?!
Professional-Pen8246@reddit
cowsay
Iceman042@reddit
Btop / bat / fzf
DaylightAdmin@reddit
ncdu, I am a simple man.
tobeportable@reddit
https://github.com/byron/dua-cli
Nc0de@reddit
gdu
0_8pzzzz@reddit
finally find gdu here, the app I would install for every system setup.
ColbieSterling@reddit
Thank you, I had no idea this tool existed. This solves a frustrating problem for me!
DaylightAdmin@reddit
just be careful with the delete!
also u/Nc0de recommended gdu, it looks like a rewrite with multi threading, maybe it is better.
Scout339v2@reddit
dnf
lmao
TrickEye6408@reddit
Mtr is pretty solid
Sirius707@reddit
NeoVim, btop and nmtui are the ones i use regularly (nmtui to switch networks on my laptop).
ben2talk@reddit
Fastfetch as a favourite? I don't think so - interesting fluff at best, completely useless bit of fun...
Zoxide and fzf are incredible partnered with yazi - I use them every time I open Dolphin.
If you want to look like a 'hackerman' then buy yourself a stupidly expensive gamer chair and hoodie and act like a petulant teenager.
durbich@reddit
Midnight Commander (mc)
soysopin@reddit
Confirm. Also, mc's internal editor, mcedit, can be used outside the file manager, has syntax highlighting and simpler key bindings that other editors.
aieidotch@reddit
and far2l
Teru-Noir@reddit
Ffmpeg
Werzaz@reddit
chezmoi for syncing my dot files, supports templates so I can share most config between machines and still customize for small differences
stogie-bear@reddit
I recently got serious about my battery life and powertop was indispensable. And nano is usually a lot quicker for small things than firing up Kate and browsing folders in the gui.
BluFudge@reddit
how much of a difference does it make? how significant?
stogie-bear@reddit
I was able to get 2-3 hours more battery.
BluFudge@reddit
Oh that's nice. Might have to finally look into this.
Optimal_Mastodon912@reddit
kew
FalscherHase@reddit
https://www.visidata.org/ for tabular data
psadi_@reddit
Nvim, Lazygit, and Fzf are three things I rely on the most.
Remuz@reddit
cheat, navi, tldr, aerc email, todo.txt, borg backup, translate-shell
Sufficient-Dare-5270@reddit
fzf is easily my most used tool daily. it completely changes how you navigate history or find files when you pair it with ripgrep. honestly cannot imagine using a terminal without fuzzy finding anymore. standard cd feels so tedious after you get used to it lol. htop is another classic i always install immediately on any new machine just to quickly see what is eating up my ram
Redneckia@reddit
Gimme some if ur wisdom
chrillefkr@reddit
Btop, gdu
Raviexthegodremade@reddit
A bit specific, since it's a tool specifically for Nix users, but Nh and Nix-Alien are both extremely useful tools, nh streamlining the process of updating with different configurations other than the default channels setup, since usually with a setup like flakes updating takes 2 separate commands entirely, first using the new Nix CLI to update the lock file (how the package manager pins package versions) and another to rebuild, then using the nicos-rebuild command with --flake ${flake-path} passed. Instead Nh combines them both and makes the difference an extra flag on the command, along with giving a handy build graph so you can see what's building and why. Nix-Alien is used to decipher what libraries a given program needs, as Nix doesn't support dynamically linked executables by default, as a result of its sandboxed nature, so you need to manually configure what libraries are provided in the ld path.
Barafu@reddit
microA text editor. Once I tried it, I kicked NeoVim out, along with nano.atuinReplaces bash history. Press arrow up, and it shows a TUI with your past commands.ezaBetter ls. You probably shouldalias ls='eza -al --color=always --group-directories-first --icons'precompAn abandoned archiver that is specifically geared for office documents, ebooks, PDFs and CAD files. Compresses those 3 times more than 7zip on maximums.pwgenLittle app that generates passwords which are random, but easy to visually track. Happens a lot if you need passwords in situations where you can't copypaste and have to type them, like logging on the phone. You need to make passwords 30% longer to keep them as secure.Lykoro_@reddit
I would add yazi, a nice tui file explorer to replace nautilus or whatever you're using and also replace ncdu with gdu because it is faster in my experience (I think it is because gdu is multithreaded). Anyway, good list, i'll definitely try some of those.
zinozAreNazis@reddit
Micro is a good replacement for nano. It’s not in the same category as neovim.
Also for your eza alias you forgot -h (coverts units to human readable eg. instead of bytes it would use MB)
Inevitable_Taro4191@reddit
Nice list. I recommend gdu instead of ncdu, it's orders of magnitude faster(threaded)? But equal functionality.
libra00@reddit
Oh lawd, they still iterating on pico are they? :P I'll have to check it out, tho nowadays I do most general text-editing in kate and then coding in zed, so I already have pretty good gui editors..
boar-b-que@reddit
Most of my coding and writing is done in kate (but standalone, not with Plasma as my DE simply because I don't care for Plasma.)
However, Micro is pretty damn good for a console text editor. It's completely replaced Pico/Nano for me. It's standalone, easy to configure, as easy to use as Pico, and can be installed anywhere Pico could be.
libra00@reddit
I used to use kate for coding. I switched to using zed because it has LLM coding agents built in and I wanted to play with them.
I use Scrivener for writing though. Couldn't find good linux-native novel-writing software with all the features I want, so I just run it in wine.
Barafu@reddit
So do I. but because
microis a single file without dependencies, I can install it in one command on any machine I SSH into, even if that machine has no Internet or package manager or root access.VSCODE-ing over SSH is fun as long as it works.
libra00@reddit
Yeah, great little editor for portability, I'm just too used to GUI conveniences, even though I'm very much a keyboard warrior, I don't even like using nano anymore. :P
LBreda@reddit
LOL I wrote the same alias too.
OneTurnMore@reddit
Very similar, but I just call it
d.LBreda@reddit
Mine is `alias mkcd='() { mkdir -p "$1" && cd "$1"; }'`
NYIsles55@reddit
By any chance have you tried lsd as an ls replacement? How does that compare to eza?
Also, if you like ncdu, check out gdu.
beizhia@reddit
I found abcde when I was ripping my cd collection a few years back. I usually use k3b, but running from cli (and in scripts) was super convenient.
-RedFox-@reddit
Btop
LxckyFox@reddit
Cmus
Salt_Ostrich2705@reddit
i love ncdu at work for our headless servers.
pppjurac@reddit
AENCR@reddit
Cowsay 😛😛
sfled@reddit
fortune | cowsay
crshbndct@reddit
Ponysay
mrandr01d@reddit
"sudo" lmao
sporeot@reddit
I'm a "doas" convert here.
BluFudge@reddit
same lol, though i don't even use openbsd
arthank-chroot@reddit
Truth I speak to you, I do not have sudo installed on my machine. I do use systemd for convenience. I just su when I need to do privileged stuff.
libra00@reddit
What's the difference between su and sudo? Also I'm not sure how systemd factors into this? I'm kinda new-old to linux; I used to administer linux servers in the 90s/2000s, but I haven't really messed with it since I switched over my daily driver about months ago, so I'm still learning all the differences.
arthank-chroot@reddit
Sudo is a systems thing, sort of. It's systemd's solution to privilege elevation, whereas su is just login as root. You don't "temporarily" become root to execute a command. You straight up change user in the shell. Sadly it too suffers from some exploits having to do with in place decryption on memory pages... making you root without a password. Sudo tends to have more exploits, but as of late, everything is on fire anyway.
libra00@reddit
Ohh, gotcha. I thought you were saying there was a command called 'su'.
arthank-chroot@reddit
There is a command called
su. You can check this using the man pages.man sulibra00@reddit
Ahh, ok, so su just logs you into root as if you'd done that from the beginning? Interesting.
arthank-chroot@reddit
Just the shell/terminal session. It is scope restricted to the shell instance, it does not directly affect the rest of the system or even another tab in the terminal. Well, technically, that's how a login shell works anyway. Each shell instance is its own interface to the system. That's why when you have gui you actually have several shells you're logged into in the background via tty and pts. Note that when you open a terminal to check via the command
whoit will also list the current shell you're using to do that as a pts instancelibra00@reddit
Oh, that makes sense, ok. That sounds handy for if you need to do a ton of stuff all at once, saves you having to sudo/type passwords a bunch.
drunnells@reddit
Screen - Have multiple terminals in one. So ssh in, start screen, switch between screens or split them.
Lynx - Text based web browser.
Evantaur@reddit
Screen is quite ass compared to tmux
BluFudge@reddit
who cares man? no screen, no tmux
Lawnmover_Man@reddit
Screen is from 1987. Give it a break. It was very awesome for a lot of people for a very long time. Then a better solution came. No need to shit on screen.
BluFudge@reddit
lf and vd
askoma@reddit
broot
Sleisl@reddit
`broot -w` is fantastic
Miver_St@reddit
fresh-editor and musikcube
cornmonger_@reddit
helix, git, ssh, and rsync
it's a simple life
neckyo@reddit
musikcube has surprised me. having the music player on the terminal in a tab suits me well.
dontquestionmyaction@reddit
difft
viper233@reddit
bc
Bash calculator. Make sure you pass the "-l" option for long format.. vim, grep are a close second and third.
MrGOCE@reddit
YAZI
NEOVIM
NMTUI
BLUETUI
MUSIKCUBE OR KEW
Putrid_Guitar9437@reddit
ani-cli
Mortui75@reddit
Micro TUI text editor.
robkam@reddit
Ytree v3 file manager
geolaw@reddit
pianobar for Pandora, mpv for video/audio
yetanothersky@reddit
nvim, tmux, lsd, duf, ncdu, bat, yt-dlp, stow, chezmoi, fzf, ranger, btop, doas
yetanothersky@reddit
nvim, tmux, lsd, duf, ncdu, bat, yt-dlp, stow, chezmoi, fzf, ranger, btop, doas
Environmental_Mud624@reddit
tldr
TontaGelatina@reddit
yazi, I just cannot figure out how to make it so even when i upload a file to a website it would open yazi instead of dolphin
zoxide, fzf, rg, fd, btop
availableName4378@reddit
no love for ranger here?
TontaGelatina@reddit
yazi gang
imareddituserhooray@reddit
tree - great output format for viewing nested directories
ab (apache bench) - simple load test tool
nc (netcat) - fantastic network request tool
ganonfirehouse420@reddit
yt-dlp, nvim, btop, mc, yazi, fzf, gallery-dl, ncmpcpp, mpv, pipe-rename, numbat
Misicks0349@reddit
oh wow numbat looks really nice.
Sh1ner@reddit
I am new to CLI tooling, however I love atuin, zoxide. Delta for git is awesome but its still new to me.
Tier: S
atuin - nicer history + shared history across 2 devices zoxide - path history fuzzy match
Tier: (P)rettier than the default:
batcat - a nicer cat - syntax highlighting
eza - a nicer ls / tree, colours, icons if u want
Tier: (N)ew stuff:
delta - git
fzf
ripgrep
I got claude to build me a mini tool for interactive git visual checkout with preview commits on branch using the 3 above if I recall correctly.
gplusplus314@reddit
It should probably be stated that a CLI is not the same as a TUI. Chances are, if you’re looking to replace a GUI with a terminal experience, you’re likely looking for a TUI, not a CLI.
amroamroamro@reddit
https://awesometui.com/
https://github.com/rothgar/awesome-tuis
the_other_Scaevitas@reddit
firstly, btop is better than htop
Secondly, I use posting instead of postman. It works just like postman but it has a TUI instead of a GUI
sleepingonmoon@reddit
fish
ger042@reddit
nmon
IngwiePhoenix@reddit
cdMost used, most needed, most essential.
OliMoli2137@reddit
zoxide
apex6666@reddit
Sl
corpse86@reddit
lowfi, youtube-tui, musikcube, cava, rclone
timmy_o_tool@reddit
Alien
libra00@reddit
I don't even know if there's a GUI version, but wavemon is excellent for diagnosing wifi issues, you can see your link quality adn signal level in big obvious graphs at the top, plus a ton of other useful information below.
5thAlaudae@reddit
aria2c
bongjutsu@reddit
I wrote a bash script that lets me launch any of my Steam installed games by typing their name so I can run them via dmenu and friends
West-468@reddit
Sorry, i only use programs.
OyiniPh8dau5eixu@reddit
r/ProgrammerHumor/comments/1r5hev2/everythingisappnow
philosophical_lens@reddit
Yazi
ColbieSterling@reddit
pandoc
ficskala@reddit
i think my most used ones are ssh, ping, fdisk, and iperf3, i never really looked into finding CLI alternatives for GUI apps since most gui apps i use have a reason to have a gui in the first place, it's just more convenient most of the time to have a gui, especially if it's not something you use often, if you use something very often, then yeah, a cli variant might make more sense
Unlikelycle@reddit
grep
HelixFluff@reddit
jq didn’t seem listed yet but I’ve done some beautiful yet heinous things with it.
hellotheremiss@reddit
nano
works perfectly as a 'no-distraction' writing program, being so basic.
I edited the config file so it opens with word-wrapping and uses as much screen space as possible.
KOM_Unchained@reddit
claude
ezoe@reddit
ffmpeg.
BinkReddit@reddit
This is the goat.
ardouronerous@reddit
yt-dlp.
Much more options than the GUI app built on top of it.
eN0Rm@reddit
ls
01111010t@reddit
You mean sl?
Dacio_Ultanca@reddit
Choo choo, mother fucker!
SaturnMoth@reddit
Surprised no-one's mentioned gum yet. It's completely changed the way I approach writing tools, I include way more interactivity now instead of front loading it all with arguments.
6tBF4Cg4qqAAZA@reddit
Gemini-CLI
JagerAntlerite7@reddit
gitDFS_0019287@reddit
Remind for calendaring.
arthank-chroot@reddit
cmus for music is a pretty decent cli tool. It uses ncurses.
b1urbro@reddit
btop k9s fzf
just-a-hriday@reddit
Wiremix if you use pipewire.
Cmus is the best music player ever.
noobjaish@reddit
Pacseek, Nvim, Btop, Lazydocker
Eddie_lol@reddit
vnstat
I like stats
pepa65@reddit
Yes, `tmux`, `ssh`, `bash` and `nano` of course, but when needing to use 2FA, I use `twofat` (github.com/pepa65/twofat)
Significant-Market-9@reddit
nnn
CarryOnRTW@reddit
tmux
zoxide
yt-dlp
chezmoi
btop
lsd
bat
delta
Euphoric-Demand2927@reddit
hledger
FrozenJambalaya@reddit
Tmux and midnight-commander.
lathiat@reddit
silversearcher-ag or ripgrep - super fast grep lftp - multi threaded downloads over sftp and other protocols lnav - log viewer
ChocolateDonut36@reddit
brightnessctl, like is so uncomplicated literally you decrease 10% brightness by doing
brightnessctl set -10%is so literal I love it!Working_Narwhal_1067@reddit
Yt-dlp
tminhdn@reddit
Yazi, zoxide
CheeseGiz@reddit
“The fuck” cause im newbie
MonBatou@reddit
Vim gpg pass tar
nickjj_@reddit
https://github.com/nickjj/plutus as a CLI income and expense tracker, I replaced GnuCash with it. I use it to help file taxes. It can generate reports with over 12,000 items in 100ms on 12 year old hardware.
RoseSec_@reddit
zoxide
StEditiV@reddit
cliamp (local music and radio player)
FewInsurance2163@reddit
Glances
reviewmynotes@reddit
vi, grep, awk, rsync, ssh, scp, screen, perl, cat, | (pipe), > (funnel), ls, cp, mv, rm, find, diff, sed, and regular expressions.
Sbatushe@reddit
duf
South_Plant_7876@reddit
Btop, fd, dysk, lazygit
rjkush17@reddit
most loved neovim ig you count and second is tmux currently exploring yazi loving it
zp2835@reddit
mc, rclone, yt-dlp, wget, micro (I know, I know, but somtimes I just can't be bothered with VIM)
aieidotch@reddit
https://github.com/alexmyczko/ruptime
https://github.com/alexmyczko/fnt
https://chawan.net
Leerv474@reddit
fzf
HecticJuggler@reddit
tldr, lazygit, ladydocker
dreamingdude@reddit
Lazygit, tmux & bat
HecticJuggler@reddit
tldr, lazydocker, lazygit
dayeye2006@reddit
Busybox
Expert-Stage-4207@reddit
Mc (Midnight Commander). The first one I install on a Linux PC!
Complex_Life_2912@reddit
tmux and mc
faultydesign@reddit
tmux