Ask HN: What's your favorite CLI or ncurses program? - wkoszek
======
luxpir
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.

~~~
_ak
newsbeuter author here. If you want to develop your own text terminal tools, I
can really recommend STFL:
[http://www.clifford.at/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.

~~~
luxpir
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!

------
realusername
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 !

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

~~~
PopeOfNope
This is awesome.

------
nicwest
tig: [https://github.com/jonas/tig](https://github.com/jonas/tig)

ranger: [https://github.com/hut/ranger](https://github.com/hut/ranger)

vim

~~~
octetta
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!

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

~~~
iofj
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.

------
DanBC
Orpheus - an MP3 player.
[http://thekonst.net/orpheus](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.

~~~
anthk
Wordstar -> jstar from joe(1).

Or try wordgrinder

[https://kmandla.wordpress.com/2008/11/30/howto-use-
wordgrind...](https://kmandla.wordpress.com/2008/11/30/howto-use-wordgrinder-
like-a-pro/)

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

------
yami
Dwarf Fortress

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

[https://github.com/nicolargo/glances](https://github.com/nicolargo/glances)

bmon and iftop can be used to see network usage:

[https://github.com/tgraf/bmon/](https://github.com/tgraf/bmon/)

[http://www.ex-parrot.com/pdw/iftop/](http://www.ex-parrot.com/pdw/iftop/)

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

[http://guichaz.free.fr/iotop/](http://guichaz.free.fr/iotop/)

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://kmandla.wordpress.com/software/](https://kmandla.wordpress.com/software/)

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

------
znpy
Mutt or The emacsclient in terminal mode (ncurses)

------
Yaa101
For many years that is Midnight Commander for me.

------
SandB0x
The bpython interpreter is great

[http://bpython-interpreter.org/](http://bpython-interpreter.org/)

[http://bpython-interpreter.org/screenshots.html](http://bpython-
interpreter.org/screenshots.html)

~~~
nicwest
if you are a vim person then I can recommend ptpython:
[https://github.com/jonathanslenders/ptpython](https://github.com/jonathanslenders/ptpython)

[https://raw.githubusercontent.com/jonathanslenders/ptpython/...](https://raw.githubusercontent.com/jonathanslenders/ptpython/master/docs/images/example1.png)

------
hultner
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.

~~~
chazu
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 :)

------
g0rfel
ATM when testing deployment flow:

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

I like sed.

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

~~~
marios
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.

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

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

~~~
luxpir
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 :)

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

------
pppp
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" "$@"

------
Nicolargo
Glances:
[http://nicolargo.github.io/glances/](http://nicolargo.github.io/glances/)

------
dagw
slrn was pretty much perfect back in the day.

------
neunhoef
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.

------
p4bl0
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_.

------
alex101
Does Vim count? I guess so :)

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

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

------
_gdd_
beet ([https://github.com/sampsyo/beets](https://github.com/sampsyo/beets))

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

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

------
rkangel
menuconfig

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

------
orkoden
fortune | cowsay

~~~
contingencies
Yep. Try also with
[https://github.com/globalcitizen/taoup](https://github.com/globalcitizen/taoup)

------
adamlindsay
jq, vim, sysdig

~~~
bonf
+1 on jq

~~~
dozzie
jq is small peanuts compared with App::RecordStream.

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

iptraf-ng: bandwidth usage by port.

lsof: list open files(including network files).

------
bonf
mitmproxy has a great terminal UI

------
Jach
Moon-buggy.

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

------
mahouse
Irssi

------
olalonde
Vim :)

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

~~~
a3n
i3: hell to the yeah.

------
baochan
rtorrent has become my go-to torrent client.

------
a3n
tig

htop

ipython

vim

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

------
tokamach
ncmpcpp is a great MPD client.

------
kanche
vim, htop and ncmpcpp :)

------
jacobroufa
tig

------
yc1010
iftop

------
fla
qemu

------
posnet
ack

------
sssk
mc

------
jordibunster
git

