delightful CLI delightful

A curated list of delightful CLI software for console lovers, and of course all FOSS.

Everyone is invited to contribute. To do so, please read our guidelines.

Table of contents

Audio players

Website Summary Written in License
cmus cmus is a small, fast and powerful console music player for Unix-like operating systems C GPLv2
mpg123 Fast console MPEG Audio Player and decoder library C, Assembly LGPL2.1
pianobar pianobar is a free/open-source, console-based client for the personalized online radio Pandora C MIT

MPD clients

MPD stands for Music Player Daemon and it is one of the most extensible and powerful audio tools available on Linux. It acts as a "server" and you interact with it through a client, of which there are many, graphical, web-based, as well as CLI. For a broader list, see the Arch Wiki page

Website Summary Written in License
clerk MPD client using rofi or fzf Perl MIT
fmui fzf mpd user interface Shell GPL-3.0
mpc mpc connects to a MPD and controls it according to commands and arguments passed to it C GPL-2.0
ncmpcpp featureful ncurses based MPD client inspired by ncmpc C++ GPL-2.0


Website Summary Written in License
Deluge is a lightweight, Free Software, cross-platform BitTorrent client Python GPLv3
rTorrent Simple and lightweight ncurses BitTorrent client. Requires libtorrent backend C++ GPLv2
Transmission-CLI A Fast, Easy and Free BitTorrent Client C, Objective-C GPLv2 or GPLv3

Download managers

Website Summary Written in License
aria2 aria2 is a lightweight multi-protocol & multi-source command-line download utility C++ GPLv2
lftp Sophisticated command line file transfer program (ftp, http, sftp, fish, torrent) C++ GPLv3
You-Get Tiny command-line utility to download media contents (videos, audios, images) from the Web, in case there is no other handy way to do it Python MIT
youtube-dl A command-line program to download videos from and a few more sites Python Unlicense
wget Is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS the most widely-used Internet protocols C GPLv3


Website Summary Written in License
aerc aerc is an email client that runs in your terminal Go MIT
alot Terminal-based Mail User Agent Python GPLv3
Alpine Fast, easy-to-use and Apache-licensed email client based on Pine C Apache
Himalaya A CLI email client written in Rust. The aim of Himalaya is to extract the email logic into a simple (yet solid) CLI API that can be used directly from the terminal, from scripts, from UIs… Possibilities are endless! Rust, Nix, Lua, Shell BSD-3-Clause
mu/mu4e Maildir indexer/searcher + emacs mail client + guile bindings GPLv3
Mutt Small but very powerful text-based mail client C GPLv2+
NeoMutt Command line mail reader (or MUA). It's a fork of Mutt with added features C GPLv2
notmuchmail A fast mail indexer built on top of xapian C GPLv3
S-nail S-nail provides a simple and friendly environment for sending and receiving mail C BSD

File managers

Website Summary Written in License
fff A simple file manager written in bash Bash MIT
lf Terminal file manager written in Go using server/client architecture Go MIT
Midnight Commander Console-based, dual-paneled file manager C GPLv2
n³/nnn Tiny, lightning fast, feature-packed file manager C BSD-2-Clause
ranger A VIM-inspired filemanager for the console Python GPLv3
Vifm Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt C GPLv2

Instant messaging


Website Summary Written in License
BitchX A full-featured, scriptable free software IRC client for UNIX-like systems C GPLv2
catgirl is a TLS-only terminal IRC client. C GPLv3
ii is a minimalist FIFO and filesystem-based IRC client C MIT/X
Irssi Your text mode chatting application since 1999. IRC built-in. Multi-protocol friendly for module authors C GPLv2
tiny an IRC client written in Rust with a clutter-free interface Rust MIT
WeeChat Modular, lightweight ncurses-based IRC client C GPLv3


Website Summary Written in License
gomuks A terminal based Matrix client written in Go Go AGPLv3
weechat-matrix Weechat Matrix protocol script written in python Python MIT


Website Summary Written in License
BitlBee BitlBee brings IM (instant messaging) to IRC clients C GPLv2
Finch Pidgin but CLI C GPLv2+


Website Summary Written in License
Toxic An ncurses-based Tox client C GPLv3


Website Summary Written in License
Profanity Profanity is a console based XMPP client written in C using ncurses and libstrophe, inspired by Irssi C GPLv3+


Website Summary Written in License
Rainbow Stream A smart and nice Twitter client on terminal written in Python Python MIT
toot Mastodon CLI & TUI client Python GPLv3
turses A twitter client for the console Python GPLv3
tut a Mastodon TUI Go MIT

Password Managers

Website Summary Written in License
gopass gopass is a simple but powerful password manager for your terminal Go MIT
KeePassXC keepassxc-cli for the terminal, but installs a GUI C++ Multiple
lesspass LessPass is a stateless password manager Python GPLv3
pass the standard unix password manager Bash GPLv2+


Website Summary Written in License
castero TUI podcast client for the terminal Python MIT
castget A command-line podcast downloader C GPLv2
marrie A simple podcast client that runs on the CLI Python BSD-3-Clause
pcd CLI podcast client (podcatcher) written in golang Go GPLv3
shellcaster Terminal-based podcast manager built in Rust Rust GPLv3


Website Summary Written in License
Canto Canto is an Atom/RSS feed reader for the console that is meant to be quick, concise, and colorful Python GPLv2
Newsboat Newsboat is an RSS/Atom feed reader for the text console. It’s an actively maintained fork of Newsbeuter C++, Rust MIT
Snownews Snownews is a command-line RSS feed reader. It runs on everything Unix C, Perl GPLv3
Sfeed Sfeed is a RSS and Atom parser (and some format programs). It converts RSS or Atom feeds from XML to a TAB-separated file C ISC

Text editors

Website Summary Written in License
dte A small and easy to use console text editor C GPLv2
Emacs The extensible, customizable, self-documenting real-time display editor by GNU Lisp, C GPLv3
Helix A kakoune / neovim inspired editor, written in Rust. Rust MPL-2.0
Howl A general purpose, fast and lightweight editor with a keyboard-centric minimalistic user interface Moonscript/Lua MIT
Kakoune Modal editor · Faster as in less keystrokes · Multiple selections · Orthogonal design C++ Unlicense
micro a modern and intuitive terminal-based text editor Go MIT
nano Console text editor based on pico with on-screen key bindings help C GPLv2
Neovim Vim's rebirth for the 21st century Vim script, C, Lua Apache
tilde Tilde is a text editor for the console/terminal, which provides an intuitive interface for people accustomed to GUI environments such as Gnome, KDE and Windows C++ GPLv3
vim Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient. C, Vim Script VIM License
Vis A vi-like editor based on Plan 9's structural regular expressions C, Lua ISC

Office tools

Website Summary Written in License
present A terminal-based presentation tool with colors and effects. Python Apache 2.0
slides A terminal-based presentation tool. Go MIT
Taskwarrior A GTD, todo list, task management, command line utility with a multitude of features. C++, Perl, Python MIT

Video players

Website Summary Written in License
MPlayer Video player that supports a complete and versatile array of video and audio formats C GPLv2
mpv Movie and audio player based on MPlayer and mplayer2 C, Objective-C, Lua GPLv2
VLC Command-line version of the famous video player that can play smoothly high definition videos in the TTY. The rc interface can be launched with vlc -I rc, and the ncurses interface can be launched with vlc -I ncurses C LGPG2.1 & GPLv2

(Non-)Web browsers

Website Summary Written in License
amfora A fancy terminal browser for the Gemini protocol Go GPLv3
astronaut A Gemini browser for the terminal Go GPLv3
asuka asuka is a Gemini Project client written in Rust with NCurses Rust MIT
AV-98 A CLI-based Gemini Client Python BSD 2-clause
bolluks a bash Gemini client Bash MIT
Bombadillo Bombadillo is a non-web client that supports Gopher, Gemini and many more Go GPLv3
Browsh A fully-modern text-based browser, rendering to TTY and browsers Javascript, Go LGPL-2.1
Elpher A Gopher/Gemini client for GNU Emacs Lisp GPLv3
Lynx Text browser that supports http(s) and Gopher ISO C GPLv2


Website Summary Written in License
asciinema Easily record terminal sessions and replay them in a terminal as well as in a web browser. Python GPLv3
dijo A scriptable habit tracker that runs in your terminal. Rust MIT
duf Disk Usage/Free Utility - a better 'df' alternative Go MIT
Glow A terminal based markdown reader designed from the ground up to bring out the beauty—and power—of the CLI Go MIT
ocm Owl's Contact Manager - The pass-like contact manager Shell GPLv3
vdx An intuitive CLI for processing video, powered by FFmpeg Typescript MIT


If you have questions or feedback regarding this list, then please create an Issue in our tracker, and optionally @mention one or more of our maintainers:


CC0 Public domain. This work is free of known copyright restrictions.