delightful CLI 
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 |
BitTorrent
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 YouTube.com 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 |
Email
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
IRC
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 |
Matrix
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 |
Multi-protocol
Website |
Summary |
Written in |
License |
BitlBee |
BitlBee brings IM (instant messaging) to IRC clients |
C |
GPLv2 |
Finch |
Pidgin but CLI |
C |
GPLv2+ |
Tox
Website |
Summary |
Written in |
License |
Toxic |
An ncurses-based Tox client |
C |
GPLv3 |
XMPP
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+ |
Microblogging
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+ |
Podcast
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 |
Miscellaneous
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 |
Maintainers
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:
License
