Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What's your favorite CLI or ncurses program?
55 points by wkoszek on Sept 4, 2015 | hide | past | web | favorite | 73 comments

I've become a big fan of ncurses software over the years without really realising. Newsbeuter, irssi, cmus/mocp, vim, mutt. It's the resource efficiency and speed of use that make the difference with their shiny UI counterparts. That and still having a GUI, albeit a minimum viable GUI.

It has inspired me more than once to pick up K&R's C and have a stab at a tool of my own that I'd love to have - but it's way down on the current list of priorities.

...Now wondering why the question - are you working on something?

EDIT: Forgot a special mention for Finch (pidgin client), which along with the others runs nicely on Tmux (another forgotten mention) on a perma-on server. Rpi2 in my case.

newsbeuter author here. If you want to develop your own text terminal tools, I can really recommend STFL: http://www.clifford.at/stfl/

Without it, I would have probably been driven crazy when I attempted to put together a UI. It helped me get from an idea to a working prototype really quickly. In the case of newsbeuter, like 2 days.

Consider me suitably humbled. Thanks for a great (the best?) RSS reader.

Much appreciation and thanks for the pointer!

My own project would involve segmenting common office doc formats for translation, saving translations to translation memory (in standard TMX format), attempting to match new segments with pre-translated and perhaps later integrate some project co-working/server functionality. All a little daunting, so all help, such as your pointer, is very welcome!

I'm using ncmpcpp with MPD for music but have experience some problems, the software feels a bit unstable and tends to slow down a lot, eventually causing segfault every few weeks. How's cmus/mocp here, can you use them with MPD/Spotify?

afaik mocp is it's own daemonized process, so you can close the client and the music keeps on playing; cmus is a standalone client that just reads from the filesystem and URLs and does not daemonize. cmus unfortunately skips and segfaults at times on the latest Debian packaged version, which is of course a few versions back (2.5.0 vs 2.7.0 iirc) and so I'm relying on mocp much more now.

To answer your question more directly, again afaik, mocp is not accessible over MPD (separate daemon altogether) and does not play nicely with Spotify, but I'm not a user, so wouldn't know. Neither is mocp accessible over the network (afaik!).

With ncurses I would say htop, you can see what happens on the machine quickly. And for pure CLI, sysdig is a must-have on every machine !

ncdu: ncurse disk usage (very convenient to see what is consuming too much space)

This is awesome.

I like it

Oh my god... how have I never seen ranger before? Back in my MS-DOS development days, I used an old program called LIST.COM. Ranger feels lighter than MC. I love it. Thanks for sharing!

mc aka [midnight commander!](https://www.midnight-commander.org/)

Seconded. Although I still think Turbo C and Borland Pascal 7 win out, but it's not like I'm using those anymore.

I miss the demo days.

Orpheus - an MP3 player. http://thekonst.net/orpheus

I used to love Wordstar and wordperfect. I'm a bit surprised at the glut of curses / cli text editors and the lack of curses / cli word processors.

Wordstar -> jstar from joe(1).

Or try wordgrinder


Glances is a cross-platform curses-based system monitoring tool written in Python.... https://github.com/nicolargo/glances

Dwarf Fortress

glances is nice if you want to get an overview of your system resources:


bmon and iftop can be used to see network usage:



Similar to iftop there is also iotop, but instead of showing network usage, it shows disk usage:


Side note: There was a blog a couple years ago, which isn't being updated now, that would post reviews of CLI tools. Anyone that is interested in this topic should take a look at it:


https://inconsolation.wordpress.com/ (new blog from the same person that did http://kmandla.wordpress.com)

Mutt or The emacsclient in terminal mode (ncurses)

For many years that is Midnight Commander for me.

Semi related, anyone got a great lib/framework for graphs/charts/plots in ncursers with python? I'm considering to build some simple terminal monitor utility to keep track of health status but haven't really looked in to it yet.

A couple of neat options here:

Look into urwid first, which is a full TUI framework in python.

Also consider using libcaca, which has excellent python bindings but is generally used for flashier stuff than simple utilities (text-based demoscene stuff, etc etc)...

Apologies for not linking to the relevant projects, but I'm certain you'll find them with a quick search :)

ATM when testing deployment flow:

  function sd()  {
  while [ $n -gt 0 ]
      sed -i ''"${1}"'d' $HOME/.ssh/known_hosts
I like sed.

If you are careful, you can avoid that annoying problem altogether:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $1


is needlessly complicated. this would do the same:


care to explain what the script does and how ncurses is involved here ?

It removes a line from the known_host file. When spinning up a new VM/container or reaching a machine that has an IP/hostname you've used before (happens a lot in dev environments/NATed networks), you'll get a warning about a possible MITM attack.

ncurses is not involved though.

mocp. It replaced iTunes for me (although I've long since switched to Linux).

Wait can you get this for Mac? I couldn't find it.

Edit: Apparently it's on homebrew but as "moc" (I was searching for "mocp" before).

I wish I could do that, but having an iPod forces me to run a windows virtual machine just for iTunes.

I used to sync my iPod with foobar2000 on Win7 to avoid having to deal with iTunes - I'm sure there are a few other Linuxy options to explore too. Vive la résistance :)

cmus in a similar vein, although annoyingly the Debian packaged version segfaults for me in some edge cases (adding large libraries, adding m4a files).

I've experienced the same thing with ncmpcpp, it can be a bit annoying.

Midnight Commander, a clone of the original Norton Commander for D.O.S.

nvlc - a ncurses vlc videolan media player built into vlc.

nvlc is just a script supplied with vlc: #! /bin/sh exec /usr/bin/vlc -I "ncurses" "$@"

slrn was pretty much perfect back in the day.

I only say that on many days I spend more time in my vim than in my bed. I usually run it in a terminal Window.

ncurses: emacs.

cli: cd, ls, mv, rm, grep, …, i.e., the core utils, + git, svn.

I couldn't live without the core utils, and I use them a lot as I don't have a graphical file manager (I think the last time I used one was in 2007, I might try again someday).

Also, I don't know if it counts in either category but: ssh, of course.

Does Vim count? I guess so :)

I'll add two that have yet to be mentioned: moreutils and youtube-dl.

Taskwarrior - www.taskwarrior.org, best CLI todo list manager.

- nethack - mc - ag - ssh - renice,pkill,htop - ncdu

Vim, mutt, wicd-curses, irssi, mplayer|mpd and conky


Does 'sl' count? Because it should...

fortune | cowsay

jq, vim, sysdig

+1 on jq

jq is small peanuts compared with App::RecordStream.

nethogs: bandwidth usage by process(Does not work with UDP!)

iptraf-ng: bandwidth usage by port.

lsof: list open files(including network files).

mitmproxy has a great terminal UI


#"$%#"$%RFDS I am hooked :) Damn you!

There goes my morning.


Vim :)

git, ranger, cmus, byobu (I shifted to i3 though)

i3: hell to the yeah.

rtorrent has become my go-to torrent client.





little bash and python tools that I write myself, to automate my specific workflows.

ncmpcpp is a great MPD client.

vim, htop and ncmpcpp :)







Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact