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

WebsiteSummaryWritten inLicense
cmuscmus is a small, fast and powerful console music player for Unix-like operating systemsCGPLv2
mpg123Fast console MPEG Audio Player and decoder libraryC, AssemblyLGPL2.1
pianobarpianobar is a free/open-source, console-based client for the personalized online radio PandoraCMIT

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

WebsiteSummaryWritten inLicense
clerkMPD client using rofi or fzfPerlMIT
fmuifzf mpd user interfaceShellGPL-3.0
mpcmpc connects to a MPD and controls it according to commands and arguments passed to itCGPL-2.0
ncmpcppfeatureful ncurses based MPD client inspired by ncmpcC++GPL-2.0


WebsiteSummaryWritten inLicense
Delugeis a lightweight, Free Software, cross-platform BitTorrent clientPythonGPLv3
rTorrentSimple and lightweight ncurses BitTorrent client. Requires libtorrent backendC++GPLv2
Transmission-CLIA Fast, Easy and Free BitTorrent ClientC, Objective-CGPLv2 or GPLv3

Download managers

WebsiteSummaryWritten inLicense
aria2aria2 is a lightweight multi-protocol & multi-source command-line download utilityC++GPLv2
lftpSophisticated command line file transfer program (ftp, http, sftp, fish, torrent)C++GPLv3
You-GetTiny command-line utility to download media contents (videos, audios, images) from the Web, in case there is no other handy way to do itPythonMIT
youtube-dlA command-line program to download videos from and a few more sitesPythonUnlicense
wgetIs a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS the most widely-used Internet protocolsCGPLv3


WebsiteSummaryWritten inLicense
aercaerc is an email client that runs in your terminalGoMIT
alotTerminal-based Mail User AgentPythonGPLv3
AlpineFast, easy-to-use and Apache-licensed email client based on PineCApache
HimalayaA 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, ShellBSD-3-Clause
mu/mu4eMaildir indexer/searcher + emacs mail client + guile bindingsGPLv3
MuttSmall but very powerful text-based mail clientCGPLv2+
NeoMuttCommand line mail reader (or MUA). It's a fork of Mutt with added featuresCGPLv2
notmuchmailA fast mail indexer built on top of xapianCGPLv3
S-nailS-nail provides a simple and friendly environment for sending and receiving mailCBSD

File managers

WebsiteSummaryWritten inLicense
fffA simple file manager written in bashBashMIT
lfTerminal file manager written in Go using server/client architectureGoMIT
Midnight CommanderConsole-based, dual-paneled file managerCGPLv2
n³/nnnTiny, lightning fast, feature-packed file managerCBSD-2-Clause
rangerA VIM-inspired filemanager for the consolePythonGPLv3
VifmVifm 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 muttCGPLv2

Instant messaging


WebsiteSummaryWritten inLicense
BitchXA full-featured, scriptable free software IRC client for UNIX-like systemsCGPLv2
catgirlis a TLS-only terminal IRC client.CGPLv3
iiis a minimalist FIFO and filesystem-based IRC clientCMIT/X
IrssiYour text mode chatting application since 1999. IRC built-in. Multi-protocol friendly for module authorsCGPLv2
tinyan IRC client written in Rust with a clutter-free interfaceRustMIT
WeeChatModular, lightweight ncurses-based IRC clientCGPLv3


WebsiteSummaryWritten inLicense
gomuksA terminal based Matrix client written in GoGoAGPLv3
weechat-matrixWeechat Matrix protocol script written in pythonPythonMIT


WebsiteSummaryWritten inLicense
BitlBeeBitlBee brings IM (instant messaging) to IRC clientsCGPLv2
FinchPidgin but CLICGPLv2+


WebsiteSummaryWritten inLicense
ToxicAn ncurses-based Tox clientCGPLv3


WebsiteSummaryWritten inLicense
ProfanityProfanity is a console based XMPP client written in C using ncurses and libstrophe, inspired by IrssiCGPLv3+


WebsiteSummaryWritten inLicense
Rainbow StreamA smart and nice Twitter client on terminal written in PythonPythonMIT
tootMastodon CLI & TUI clientPythonGPLv3
tursesA twitter client for the consolePythonGPLv3
tuta Mastodon TUIGoMIT

Password Managers

WebsiteSummaryWritten inLicense
gopassgopass is a simple but powerful password manager for your terminalGoMIT
KeePassXCkeepassxc-cli for the terminal, but installs a GUIC++Multiple
lesspassLessPass is a stateless password managerPythonGPLv3
passthe standard unix password managerBashGPLv2+


WebsiteSummaryWritten inLicense
casteroTUI podcast client for the terminalPythonMIT
castgetA command-line podcast downloaderCGPLv2
marrieA simple podcast client that runs on the CLIPythonBSD-3-Clause
pcdCLI podcast client (podcatcher) written in golangGoGPLv3
shellcasterTerminal-based podcast manager built in RustRustGPLv3


WebsiteSummaryWritten inLicense
CantoCanto is an Atom/RSS feed reader for the console that is meant to be quick, concise, and colorfulPythonGPLv2
NewsboatNewsboat is an RSS/Atom feed reader for the text console. It’s an actively maintained fork of NewsbeuterC++, RustMIT
SnownewsSnownews is a command-line RSS feed reader. It runs on everything UnixC, PerlGPLv3
SfeedSfeed is a RSS and Atom parser (and some format programs). It converts RSS or Atom feeds from XML to a TAB-separated fileCISC

Text editors

WebsiteSummaryWritten inLicense
dteA small and easy to use console text editorCGPLv2
EmacsThe extensible, customizable, self-documenting real-time display editor by GNULisp, CGPLv3
HelixA kakoune / neovim inspired editor, written in Rust.RustMPL-2.0
HowlA general purpose, fast and lightweight editor with a keyboard-centric minimalistic user interfaceMoonscript/LuaMIT
KakouneModal editor · Faster as in less keystrokes · Multiple selections · Orthogonal designC++Unlicense
microa modern and intuitive terminal-based text editorGoMIT
nanoConsole text editor based on pico with on-screen key bindings helpCGPLv2
NeovimVim's rebirth for the 21st centuryVim script, C, LuaApache
tildeTilde is a text editor for the console/terminal, which provides an intuitive interface for people accustomed to GUI environments such as Gnome, KDE and WindowsC++GPLv3
vimVim is a highly configurable text editor built to make creating and changing any kind of text very efficient.C, Vim ScriptVIM License
VisA vi-like editor based on Plan 9's structural regular expressionsC, LuaISC

Office tools

WebsiteSummaryWritten inLicense
presentA terminal-based presentation tool with colors and effects.PythonApache 2.0
slidesA terminal-based presentation tool.GoMIT
TaskwarriorA GTD, todo list, task management, command line utility with a multitude of features.C++, Perl, PythonMIT

Video players

WebsiteSummaryWritten inLicense
MPlayerVideo player that supports a complete and versatile array of video and audio formatsCGPLv2
mpvMovie and audio player based on MPlayer and mplayer2C, Objective-C, LuaGPLv2
VLCCommand-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 ncursesCLGPG2.1 & GPLv2

(Non-)Web browsers

WebsiteSummaryWritten inLicense
amforaA fancy terminal browser for the Gemini protocolGoGPLv3
astronautA Gemini browser for the terminalGoGPLv3
asukaasuka is a Gemini Project client written in Rust with NCursesRustMIT
AV-98A CLI-based Gemini ClientPythonBSD 2-clause
bolluksa bash Gemini clientBashMIT
BombadilloBombadillo is a non-web client that supports Gopher, Gemini and many moreGoGPLv3
BrowshA fully-modern text-based browser, rendering to TTY and browsersJavascript, GoLGPL-2.1
ElpherA Gopher/Gemini client for GNU EmacsLispGPLv3
LynxText browser that supports http(s) and GopherISO CGPLv2


WebsiteSummaryWritten inLicense
asciinemaEasily record terminal sessions and replay them in a terminal as well as in a web browser.PythonGPLv3
dijoA scriptable habit tracker that runs in your terminal.RustMIT
dufDisk Usage/Free Utility - a better 'df' alternativeGoMIT
GlowA terminal based markdown reader designed from the ground up to bring out the beauty—and power—of the CLIGoMIT
ocmOwl's Contact Manager - The pass-like contact managerShellGPLv3
vdxAn intuitive CLI for processing video, powered by FFmpegTypescriptMIT


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.