💾 Archived View for gmi.noulin.net › cliclub.gmi captured on 2023-04-19 at 22:36:40. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

cli.club

_

Command-line Interface Tools and Alternatives

A collection of the best CLI/Ncurses software covering a wide range of categories from messaging, music, text editing and more.

RSS

Communication

IRC

XMPP

Matrix

Email

Telegram

Signal

Tox

Media

Music

Images

Video

Browsers

News Readers

File Managers

CalDav

CardDav

Development

Text Editors

Servers

Shells

Tools

Terminal Emulators

IRC

Irssi: Your text mode chatting application since 1999

IRC built-in. Multi-protocol friendly for module authors.

Shipped-by-default Perl scripting with a wide range of available extensions.

Integrates into the UNIX stack: Your window manager, your terminal emulator, your remote connection, your terminal multiplexer, your IRC bouncer, your IRC adapter.

Irssi is free software licensed under the GPLv2, available for Linux, BSD, Solaris, Haiku, Apple, Cygwin, …

Irssi: Your text mode chatting application since 1999

WeeChat: The extensible chat client

Full-featured IRC plugin: multi-servers, proxy support, IPv6, SASL authentication, nicklist, DCC, and many other features.

WeeChat: The extensible chat client

tiny: Yet another terminal IRC client

tiny is an IRC client written in Rust.

tiny: Yet another terminal IRC client

sic: simple irc client

sic is an extremely simple IRC client. It consists of less than 250 lines of code. It is the little brother of irc it.

sic: simple irc client

XMPP

Profanity: A console based XMPP client

Profanity is a console based XMPP client written in C using ncurses and libstrophe, inspired by Irssi.

Profanity: A console based XMPP client

Poezio: A free console XMPP client

Its goal is to let you connect very easily (no account creation needed) to the network and join various chatrooms, immediately. It tries to look like the most famous IRC clients (weechat, irssi, etc). Many commands are identical and you won't be lost if you already know these clients. Configuration can be made in a configuration file or directly from the client.

Poezio: A free console XMPP client

Freetalk: A console based chat client

GNU Freetalk is a console based chat client for Jabber and other XMPP servers. It has context sensitive auto-completion for buddy names, commands, and even ordinary English words. Similar to GNU Emacs, You can customize and extend GNU Freetalk with Scheme language.

Freetalk: A console based chat client

mcabber: A small XMPP (Jabber) console client

Includes features such as SASL/SSL/TLS support, MUC (Multi-User Chat) support, history logging, command completion, OpenPGP encryption, OTR (Off-the-Record Messaging) support, dynamic modules and external action triggers.

mcabber: A small XMPP (Jabber) console client

Matrix

gomuks: A terminal Matrix client

A terminal Matrix client written in Go using mautrix and mauview.

gomuks: A terminal Matrix client

matrix-commander: Simple CLI-based Matrix client

Simple but convenient CLI-based Matrix client app for sending, receiving, creating rooms, inviting, verifying, and so much more.

matrix-commander: Simple CLI-based Matrix client

matrixcli: Command line Matrix client

matrixcli is a simple matrix client based on the matrix-python-sdk.

matrixcli: Command line Matrix client

weechat-matrix: Weechat Matrix protocol script written in python

weechat-matrix is stable and quite usable as a daily driver. It already supports large parts of the Matrix protocol, including end-to-end encryption (though some features like cross-signing and session unwedging are unimplemented).

weechat-matrix: Weechat Matrix protocol script written in python

Email

NeoMutt: Teaching an Old Dog New Tricks

NeoMutt is a command line mail reader (or MUA). It’s a fork of Mutt with added features.

NeoMutt: Teaching an Old Dog New Tricks

Alpine: A free software email client

Alpine is a rewrite of the Pine Message System that adds support for Unicode and other features. Alpine is meant to be suitable for both inexperienced email users and the most demanding of power users.

Alpine: A free software email client

Sup: A console-based email client for people with a lot of email

It presents an interface of a list of threads, which are each hierarchical collections email messages. Threads can have multiple tags applied to them. It supports a very fast full-text search, automatic contact-list management, custom code insertion via a Ruby hook system, and more. If you’re the type of person who treats email as an extension of your long-term memory, Sup is for you.

Sup: A console-based email client for people with a lot of email

Telegram

Telegram CLI: Command-line interface for Telegram

Telegram CLI is a fully featured Telegram messenger client that works in the CLI instead of a GUI.

Telegram CLI: Command-line interface for Telegram

Signal

signal-cli: An unofficial commandline and dbus

signal-cli is a commandline interface for libsignal-service-java. It supports registering, verifying, sending and receiving messages. To be able to link to an existing Signal-Android/signal-cli instance, signal-cli uses a patched libsignal-service-java, because libsignal-service-java does not yet support provisioning as a linked device.

signal-cli: An unofficial commandline and dbus

Tox

Toxic: A Tox-based instant messaging and video chat client

Toxic is a client with an ncurses interface, written entirely in C. It has support for all basic features, as well as 1-on-1 audio/video chats, and is capable of working on bare-bones systems that lack graphical interfaces. Development is lead by Jfreegman.

Toxic: A Tox-based instant messaging and video chat client

Music

ncmpcpp: NCurses Music Player Client (Plus Plus)

Ncmpcpp is an mpd client (compatible with mopidy) with a UI very similar to ncmpc, but it provides new useful features such as support for regular expressions for library searches, extended song format, items filtering, the ability to sort playlists, and a local filesystem browser.

ncmpcpp: NCurses Music Player Client (Plus Plus)

mpc: A minimalist command line interface to MPD

Command line user interface for MPD server written in C.

mpc: A minimalist command line interface to MPD

Spotify TUI: Terminal Spotify client

A Spotify client for the terminal written in Rust.

Spotify TUI: Terminal Spotify client

ncspot: Cross-platform ncurses Spotify client

ncspot is a ncurses Spotify client written in Rust using librespot. It is heavily inspired by ncurses MPD clients, such as ncmpc.

ncspot: Cross-platform ncurses Spotify client

Images

FFmpeg: A complete, cross-platform solution to record, convert and stream audio and video.

FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation.

FFmpeg: A complete, cross-platform solution to record, convert and stream audio and video.

Feh: A fast and light image viewer

Feh is a light-weight, configurable and versatile image viewer. It is aimed at command line users, but can also be started from graphical file managers. Apart from viewing images, it can compile text and thumbnail listings, show (un)loadable files, set X11 backgrounds, and more.

Feh: A fast and light image viewer

Nitrogen: Background browser and setter for X windows.

Nitrogen is a fast and lightweight (GTK2) desktop background browser and setter for X Window.

Nitrogen: Background browser and setter for X windows.

sxiv: Simple X Image Viewer

Simple X Image Viewer is a lightweight and scriptable image viewer written in C.

sxiv: Simple X Image Viewer

Video

mpv: A free, open source, and cross-platform media player

mpv is a free (as in freedom) media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types.

mpv: A free, open source, and cross-platform media player

yt-dlp: A youtube-dl fork with additional features and fixes

Download videos from youtube.com or other video platforms.

yt-dlp is a youtube-dl fork based on the now inactive youtube-dlc. The main focus of this project is adding new features and patches while also keeping up to date with the original project.

yt-dlp: A youtube-dl fork with additional features and fixes

Streamlink: Pipe videostreams into a video player

Streamlink is a CLI utility which pipes video streams from various services into a video player, such as VLC.

The main purpose of streamlink is to avoid resource-heavy and unoptimized websites, while still allowing the user to enjoy various streamed content.

Streamlink: Pipe videostreams into a video player

ytfzf: Find and watch youtube videos from the terminal

A POSIX script that helps you find Youtube videos (without API) and opens/downloads them using mpv/youtube-dl.

ytfzf: Find and watch youtube videos from the terminal

Browsers

Surf: A simple WebKit browser

Surf is a simple web browser based on WebKit2/GTK+. It is able to display websites and follow links. It supports the XEmbed protocol which makes it possible to embed it in another application. Furthermore, one can point surf to another URI by setting its XProperties.

Surf: A simple WebKit browser

Lynx: The text web browser

Lynx is a customizable text-based web browser for use on cursor-addressable character cell terminals. As of 2021, it is the oldest web browser still being maintained, having started in 1992.

Lynx: The text web browser

News Readers

Newsboat: An RSS/Atom feed reader

Newsboat is an RSS/Atom feed reader for the text console. It’s an actively maintained fork of Newsbeuter.

Newsboat: An RSS/Atom feed reader

Snownews: A text-mode RSS feed reader


Snownews is a console RSS/Atom feed reader for Linux and other unix platforms, originally written by Oliver Feiler.

Snownews: A text-mode RSS feed reader

Sfeed: Simple RSS and Atom parser

Sfeed is a RSS and Atom parser (and some format programs).

It converts RSS or Atom feeds from XML to a TAB-separated file. There are formatting programs included to convert this TAB-separated format to various other formats. There are also some programs and scripts included to import and export OPML and to fetch, filter, merge and order feed items.

Sfeed: Simple RSS and Atom parser

File Managers

ranger: A console file manager with VI key bindings

It provides a minimalistic and nice curses interface with a view on the directory hierarchy. It ships with rifle, a file launcher that is good at automatically finding out which program to use for what file type.

ranger: A console file manager with VI key bindings

nnn: The unorthodox terminal file manager

nnn (n³) is a full-featured terminal file manager. It's tiny, nearly 0-config and incredibly fast.

It is designed to be unobtrusive with smart workflows to match the trains of thought.

nnn can analyze disk usage, batch rename, launch apps and pick files. The plugin repository has tons of plugins to extend the capabilities further e.g. live previews, (un)mount disks, find & list, file/dir diff, upload files. A patch framework hosts sizable user-submitted patches which are subjective in nature.

nnn: The unorthodox terminal file manager

lf: Terminal file manager

lf (as in "list files") is a terminal file manager written in Go with a heavy inspiration from ranger file manager.

lf: Terminal file manager

fff: Fucking Fast File-Manager

A simple file manager written in bash.

fff: Fucking Fast File-Manager

CalDav

Khal: A CLI calendar program

Khal is a standards based CLI and terminal calendar program, able to synchronize with CalDAV servers through vdirsyncer.

Khal: A CLI calendar program

Todoman: A simple CLI task manager

Todoman is a simple, standards-based, cli todo (aka: task) manager. Todos are stored into icalendar files, which means you can sync them via CalDAV using, for example, vdirsyncer.

Todoman: A simple CLI task manager

CardDav

Khard: An address book for the Unix console

Khard is an address book for the Unix console. It creates, reads, modifies and removes vCard address book entries at your local machine. Khard is also compatible to the email clients mutt and alot and the SIP client twinkle.

Khard: An address book for the Unix console

Text Editors

Vim: The ubiquitous text editor

Vim is a greatly improved version of the good old UNIX editor Vi. Many new features have been added: multi-level undo, syntax highlighting, command line history, on-line help, spell checking, filename completion, block operations, script language, etc. There is also a Graphical User Interface (GUI) available. Still, Vi compatibility is maintained, those who have Vi "in the fingers" will feel at home.

Also see Neovim

Vim: The ubiquitous text editor

Neovim

Emacs: An extensible, customizable, free/libre text editor

At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing.

Emacs: An extensible, customizable, free/libre text editor

Nano: A simple editor, inspired by Pico

GNU nano is a text editor for Unix-like computing systems or operating environments using a command line interface. It emulates the Pico text editor, part of the Pine email client, and also provides additional functionality. Unlike Pico, nano is licensed under the GNU General Public License.

Nano: A simple editor, inspired by Pico

Servers

darkhttpd: When you need a web server in a hurry


Darkhttpd is a simple, fast HTTP 1.1 web server for static content. It does not support PHP or CGI etc but is designed to serve static content, which it does very well.

darkhttpd: When you need a web server in a hurry

Quark: Suckless simple static web server

quark is an extremely small and simple HTTP GET/HEAD-only web server for static content.

The goal of this project is to do one thing and do it well, namely serving static web directories and doing that right. Most other solutions either are too complex (CGI support, dependencies on external libraries, ...) or lack features you expect (TLS, virtual hosts, partial content, not modified since, ...). quark tries to find a midway and just restrict itself to being static while still offering functions you only find in more bloated solutions and being as secure as possible (chroot, privilege dropping, strict parsers, no malloc at runtime, pledge, unveil, ...).

Quark: Suckless simple static web server

Prosody: A modern XMPP server

Prosody is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources. Additionally, for developers it aims to be easy to extend and give a flexible system on which to rapidly develop added functionality, or prototype new protocols.

Prosody is open-source software under the permissive MIT/X11 license.

Prosody: A modern XMPP server

ejabberd: An XMPP application server

ejabberd is an XMPP application server and an MQTT broker, written mainly in the Erlang programming language. It can run under several Unix-like operating systems such as macOS, Linux, FreeBSD, NetBSD, OpenBSD and OpenSolaris. Additionally, ejabberd can run under Microsoft Windows.

ejabberd: An XMPP application server

Shells

Dash: Debian Almquist Shell

Dash (Debian Almquist shell) is a modern POSIX-compliant implementation of /bin/sh (sh, Bourne shell).

Dash is not Bash compatible, but Bash tries to be mostly compatible with POSIX, and thus Dash.

Dash: Debian Almquist Shell

Zsh: Designed for interactive use


The Z shell is a Unix shell that can be used as an interactive login shell and as a command interpreter for shell scripting. Zsh is an extended Bourne shell with many improvements, including some features of Bash, ksh, and tcsh.

Zsh: Designed for interactive use

Tools

QEMU: A generic and open source machine emulator and virtualizer

QEMU is capable of emulating a complete machine in software without any need for hardware virtualization support. By using dynamic translation, it achieves very good performance. QEMU can also integrate with the Xen and KVM hypervisors to provide emulated hardware while allowing the hypervisor to manage the CPU. With hypervisor support, QEMU can achieve near native performance for CPUs. When QEMU emulates CPUs directly it is capable of running operating systems made for one machine (e.g. an ARMv7 board) on a different machine (e.g. an x86_64 PC board).

QEMU: A generic and open source machine emulator and virtualizer

xclip: Command line interface to the X11 clipboard

xclip is a command line utility that is designed to run on any system with an
X11 implementation. It provides an interface to X selections ("the clipboard")
from the command line. It can read data from standard in or a file and place it
in an X selection for pasting into other X applications. xclip can also print
an X selection to standard out, which can then be redirected to a file or
another program.

xclip: Command line interface to the X11 clipboard

tmux: A terminal multiplexer

tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.

tmux: A terminal multiplexer

dmenu: A dynamic menu for X

dmenu is a dynamic menu for X, originally designed for dwm. It manages large numbers of user-defined menu items efficiently.

dmenu: A dynamic menu for X

qrcp: Transfer files over Wi-Fi

Transfer files over wifi from your computer to your mobile device by scanning a QR code without leaving the terminal.

qrcp: Transfer files over Wi-Fi

Terminal Emulators

st: A simple terminal for X

st is a simple terminal emulator for X which sucks less.

st: A simple terminal for X

Rxvt-unicode: A customizable terminal emulator

rxvt-unicode is a customizable terminal emulator forked from rxvt. Features of rxvt-unicode include international language support through Unicode, transparency, the ability to display multiple font types and support for Perl extensions.

Rxvt-unicode: A customizable terminal emulator

Alacritty: A modern terminal emulator

Alacritty is a modern terminal emulator that comes with sensible defaults, but allows for extensive configuration. By integrating with other applications, rather than reimplementing their functionality, it manages to provide a flexible set of features with high performance. The supported platforms currently consist of BSD, Linux, macOS and Windows.

The software is considered to be at a beta level of readiness; there are a few missing features and bugs to be fixed, but it is already used by many as a daily driver.

Top

For recommendations please email contact@cli.club or submit an issue on GitHub.

Alacritty: A modern terminal emulator

GitHub