>_

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.



Visit our sister site: https://pqc.club

Communication

Media

Development

Productivity

Utilites

Files

Version Control

Images

Other

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, … 

WeeChat: The extensible chat client

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

tiny: Yet another terminal IRC client

 tiny is an IRC client written in Rust. 

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. 

kirc: Tiny IRC client

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

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. 

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. 

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. 

Matrix

iamb: A Matrix client for Vim addicts

 iamb is a Matrix client written in Rust with Vim-style keys. It supports threads, spaces, e2ee, and more. 

gomuks: A terminal Matrix client

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

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. 

matrixcli: Command line Matrix client

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

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

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. 

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. 

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. 

aerc: a pretty good email client

 aerc is an email client that runs in your terminal. It's highly efficient and extensible, perfect for the discerning hacker. 

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. 

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. 

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. 

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. 

mpc: A minimalist command line interface to MPD

 Command line user interface for MPD server written in C. 

spotify-player: A Spotify player in the terminal

 A Spotify player in the terminal with full feature parity written in Rust. Considered a replacement for spotify-tui as it is no longer maintained. 

Spotify TUI: Terminal Spotify client

 ** No Longer Maintained ** A Spotify client for the terminal written in Rust. 

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. 

asak: A cross-platform audio recording/playback CLI tool with TUI, written in Rust

 A cross-platform audio recording/playback CLI tool with TUI, written in Rust. The goal is to be an audio Swiss Army Knife (asak), like SoX but more interactive and fun. 

glicol-cli: cross-platform music live coding in terminal

 It's a command line interface that you can use for music live coding with Glicol. It watches a file changes and then update the music in real-time. 

cmus: Small, fast and powerful console music player

 Small, fast and powerful console music player 

Instant-Music-Downloader: Instant music downloader

 Instant music downloader 

itunes-remote: Control iTunes via CLI

 Control iTunes via CLI 

pianobar: Pandora client

 Pandora client 

somafm-cli: Listen to SomaFM in your terminal

 Listen to SomaFM in your terminal 

mpd: Music Player Daemon

 Music Player Daemon 

moc: Console audio player for Linux/UNIX

 Console audio player for Linux/UNIX 

musikcube: Cross-platform, terminal-based music player, audio engine, metadata indexer, and server

 Cross-platform, terminal-based music player, audio engine, metadata indexer, and server 

beets: Music library manager and tagger

 Music library manager and tagger 

swaglyrics-for-spotify: Spotify Lyrics

 Spotify Lyrics 

dzr: deezer.com player

 deezer.com player 

radio-active: Internet radio player with 40k+ stations

 Internet radio player with 40k+ stations 

mpvc: Music player interfacing mpv

 Music player interfacing mpv 

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. 

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. 

Nitrogen: Background browser and setter for X windows.

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

sxiv: Simple X Image Viewer

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

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. 

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. 

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. 

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. 

mps-youtube: Youtube player

 Youtube player 

editly: Declarative video editing

 Declarative video editing 

Movies

moviemon: Everything about your movies

 Everything about your movies 

movie: Get movie info or compare movies

 Get movie info or compare movies 

Games

Dwarf Fortress: Roguelike construction and management simulation

 Roguelike construction and management simulation 

Cataclysm-DDA: Turn-based survival game set in a post-apocalyptic world

 Turn-based survival game set in a post-apocalyptic world 

Pokete: Pokemon-like

 Pokemon-like 

Books

epr: epub reader

 epub reader 

Bible.Js CLI: Bible

 Bible 

SpeedRead: Spritz-alike speedreader

 Spritz-alike speedreader 

medium-cli: Read medium.com stories

 Read medium.com stories 

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. 

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. 

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. 

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. 

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. 

CalDav

Khal: A CLI calendar program

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

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. 

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. 

Screensavers

cmatrix

 Scrolling 'Matrix'-like screen. 

pipes.sh

 Random pipes that grow across the screen. 

yulelog

 Christmas Yule Log fireplace. 

cli-fireplace

 Digital fireplace. 

Graphics

cli-mandelbrot

 Traverse the Mandelbrot fractal. 

sparkly-cli

 Generate sparklines ▁▂▃▅▂▇.. 

pastel

 Generate, analyze, convert and manipulate colors. 

lowcharts

 Draw low-resolution graphs. 

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 

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. 

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. 

kakoune: Modal editor inspired by vim

 Modal editor inspired by vim 

micro: A simple and intuitive editor

 A simple and intuitive editor 

o: Configuration-free text editor and IDE

 Configuration-free text editor and IDE 

helix: Modal editor inspired by kakoune

 Modal editor inspired by kakoune 

Servers

serve

 Serve static files (https, CORS, GZIP compression, etc). 

simplehttp

 Easily serve a local directory over HTTP. 

shell2http

 Shell script based HTTP server. 

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.

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, ...). 

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. 

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. 

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. 

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. 

Tools

legit: Generate Open Source licences as files or file headers

 Generate Open Source licences as files or file headers 

mklicense: Create a custom LICENSE file painlessly with customized info

 Create a custom LICENSE file painlessly with customized info 

rebound: Fetch Stack Overflow results on compiler error

 Fetch Stack Overflow results on compiler error 

foy: Lightweight general purpose task runner/build tool

 Lightweight general purpose task runner/build tool 

just: Modern make-like command runner

 Modern make-like command runner 

bcal: Byte CALculator for storage conversions and calculations

 Byte CALculator for storage conversions and calculations 

bitwise: Base conversion and bit manipulation

 Base conversion and bit manipulation 

cgasm: x86 assembly documentation

 x86 assembly documentation 

grex: Generate regular expressions from user-provided test cases

 Generate regular expressions from user-provided test cases 

gdb-dashboard: Modular visual interface for GDB

 Modular visual interface for GDB 

iola: Socket client with REST API

 Socket client with REST API 

add-gitignore: Interactively generate a .gitignore for your project based on your needs

 Interactively generate a .gitignore for your project based on your needs 

is-up-cli: Check if a domain is up

 Check if a domain is up 

reachable: Check if a domain is up

 Check if a domain is up 

loadtest: Run load tests

 Run load tests 

diff2html-cli: Create pretty HTML from diffs

 Create pretty HTML from diffs 

pls: a prettier and powerful ls(1) for the pros

 pls is a prettier and powerful ls(1) for the pros. The "p" stands for pretty: pls output is cleaner, friendlier and more colorful. powerful: pls provides more features than the competition. performant: pls is speedy and performant (written in Rust). practical: pls has sensible defaults and an effortless interface. petite: pls is a small, single-file, binary executable. pliable: pls can be extensively tweaked by power users and pros. personable: pls prioritises consumption by humans over scripts. Documentation: https://pls.cli.rs/ Credit: https://github.com/dhruvkb 

lazygit: simple terminal UI for git commands

 Lazygit is a simple terminal UI for git commands, written in Go with the gocui library. Lazygit enables you to have a feeling of Sourcetree but in a terminal-centric environment. Lazygit is fast and easy to use, you just need to call lazygit in your terminal inside a git repository. 

k9s: Kubernetes CLI To Manage Your Clusters In Style

 K9s provides a terminal UI to interact with your Kubernetes clusters. The aim of this project is to make it easier to navigate, observe and manage your applications in the wild. K9s continually watches Kubernetes for changes and offers subsequent commands to interact with your observed resources. 

nb: A command line and local web note‑taking, bookmarking, archiving, and knowledge base application

 nb is a command line and local web note‑taking, bookmarking, archiving, and knowledge base application with: plain text data storage, encryption, filtering, pinning, #tagging, and search, Git-backed versioning and syncing, Pandoc-backed conversion, [[wiki-style linking]], terminal and GUI web browsing, inline images, todos with tasks, global and local notebooks, organization with folders, customizable color themes, extensibility through plugins, and more, in a single portable script. 

ntfy.sh: Send push notifications to your phone or desktop using PUT/POST

 ntfy (pronounced "notify") is a simple HTTP-based pub-sub notification service. With ntfy, you can send notifications to your phone or desktop via scripts from any computer, without having to sign up or pay any fees. If you'd like to run your own instance of the service, you can easily do so since ntfy is open source. ntfy.sh 

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

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. 

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. 

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. 

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. 

Posting: The modern API client that lives in your terminal

 Posting is an HTTP client, not unlike Postman and Insomnia. As a TUI application, it can be used over SSH and enables efficient keyboard-centric workflows. Your requests are stored locally in simple YAML files, so they're easy to read and version control. 

Terminal Emulators

st: A simple terminal for X

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

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. 

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. 

Frontend Development

caniuse-cmd

 Search caniuse.com about browser support of features. 

strip-css-comments-cli

 Strip comments from CSS. 

viewport-list-cli

 Return a list of devices and their viewports. 

surge

 Publish static websites for free. 

Mobile Development

mobicon-cli

 Mobile app icon generator. 

mobisplash-cli

 Mobile app splash screen generator. 

deviceframe

 Put device frames around your mobile/web/progressive app screenshots. 

Database

mycli

 MySQL client with autocompletion and syntax highlighting. 

pgcli

 Postgres client with autocompletion and syntax highlighting. 

sqlline

 Shell for issuing SQL via JDBC. 

iredis

 Redis client with autocompletion and syntax highlighting. 

usql

 Universal SQL client with autocompletion and syntax highlighting. 

Devops

htconvert

 Convert .htaccess redirects to nginx.conf redirects. 

SAWS

 Supercharged AWS CLI. 

s3cmd

 Fully-Featured S3 client. 

pm2

 Production Process Manager for Node.js. 

ops

 Unikernel compilation and orchestration tool. 

flog

 A fake log generator for log formats such as apache-common, apache error and RFC3164 syslog. 

k9s

 Manage Kubernetes Clusters. 

PingMe

 Send messages/alerts to multiple messaging platforms & email. 

ipfs-deploy

 Deploy static websites to IPFS. 

Discharge

 Deploy static websites to Amazon S3. 

updatecli

 A declarative dependency management tool. 

Docker

lstags

 Synchronize images across registries. 

dockly

 Interactively manage containers. 

lazydocker

 Simple docker/docker-compose interface. 

docker-pushrm

 Push a readme to container registries. 

Release

release-it

 Automate releases for Git repositories and/or npm packages. Changelog generation, GitHub/GitLab releases, etc. 

clog

 A conventional changelog for the rest of us. 

np

 A better npm publish. 

release

 Generate changelogs with a single command. 

semantic-release

 Fully automated version management and package publishing. 

NPM

npm-name-cli

 Check whether a package name is available on npm. 

npm-user-cli

 Get user info of a npm user. 

npm-home

 Open the npm page of the package in the current directory. 

pkg-dir-cli

 Find the root directory of a npm package. 

npm-check-updates

 Find newer versions of package dependencies than what your package.json allows. 

updates

 Flexible npm dependency update tool. 

wipe-modules

 Remove node_modules of inactive projects. 

Boilerplate

yo

 Scaffolding tool for running Yeoman generators. 

boilr

 Create projects from boilerplate templates. 

cookiecutter

 Create projects from templates. 

mevn-cli

 Light speed setup for MEVN (Mongo Express Vue Node) Apps. 

scaffold-sttic

 Scaffolding utility for vanilla JS. 

HTTP Client

HTTPIE

 A user-friendly HTTP client. 

HTTP Prompt

 Interactive HTTP client featuring autocomplete and syntax highlighting. 

ain

 HTTP client with a simple format to organize API endpoints. 

curlie

 A curl frontend with the ease of use of HTTPie. 

Learning

cmdchallenge

 Presents small shell challenge with user submitted solutions. 

explainshell

 Type a snippet to see the help text for each argument. 

howdoi

 Instant coding answers. 

how2

 Node.js implementation of howdoi. 

the fuck

 Magnificent app which corrects your previous console command. 

tldr

 Simplified and community-driven man pages. 

wat

 Instant, central, community-built docs. 

teachcode

 Guide for the earliest lessons of coding. 

navi

 Interactive cheatsheet tool. 

yai

 AI powered terminal assistant. 

Data

visidata

 Spreadsheet multitool for data discovery and arrangement. 

Processors

jq

 JSON processor. 

yq

 YAML processor. 

dasel

 JSON/YAML/TOML/XML processor (like jq/yq). 

yaml-cli

 Query/update YAML. 

ramada-cli

 Process data with functional pipelines. 

xq

 XML and HTML beautifier and content extractor. 

JSON

jp

 JSON parser. 

fx

 Command-line JSON viewer. 

vj

 Makes JSON human readable. 

underscore-cli

 Utility-belt for hacking JSON and Javascript. 

strip-json-comments-cli

 Strip comments from JSON. 

GROQ

 JSON processor with queries and projections. 

gron

 Make JSON greppable. 

YAML

dyff

 YAML diff tool. 

Columns

parse-columns-cli

 Parse text columns to JSON. 

q

 Execution of SQL-like queries on CSV/TSV/tabular text file. 

Text

figlet

 Creates large text out of ASCII characters. 

stegcloak

 Hide secrets with invisible characters in plain text securely. 

Clients

doing

 Keep track of what you’re doing and track what you’ve done. 

ffscreencast

 A ffmpeg screencast with video overlay and multi monitor support. 

meetup-cli

 Meetup.com client. 

neomutt

 Email client. 

terjira

 Jira client. 

ipt

 Pivotal Tracker client. 

uber-cli

 Uber client. 

buku

 Browser-independent bookmark manager. 

papis

 Extensible document and bibliography manager. 

pubs

 Scientific bibliography manager. 

fjira

 Fuzzy finder and TUI application for Jira. 

Time Tracking

timetrap

 Simple timetracker. 

moro

 Simple tool for tracking work hours. 

timewarrior

 Utility with simple stopwatch, calendar-based backfill and flexible reporting. 

watson

 Generate reports for clients and manage your time. 

utt

 Simple time tracking tool. 

bartib

 Easy to use time tracking tool. 

arttime

 Featureful timer with native desktop notifications and curated ASCII art. 

Notes

idea

 A lightweight tool for keeping ideas in a safe place quick and easy. 

geeknote

 Evernote client. 

taskwarrior

 Manage your TODO list. 

terminal velocity

 A fast note-taking app. 

eureka

 Input and store your ideas. 

sncli

 Simplenote client. 

td-cli

 A TODO manager to organize and manage your TODO's across multiple projects. 

taskbook

 Tasks, boards & notes for the command-line habitat. 

dnote

 A interactive, multi-device notebook. 

nb

 A note‑taking, bookmarking, archiving, and knowledge base application. 

obs

 Interact with your Obsidian vault. 

Finance

bagels: Powerful expense tracker that lives in your terminal.

 Bagels expense tracker is a TUI application where you can track and analyse your money flow, with convenience oriented features and a complete interface.

ledger

 Powerful, double-entry accounting system. 

hledger

 Robust, fast, intuitive plain text accounting tool with CLI, TUI and web interfaces. 

moeda

 Foreign exchange rates and currency conversion. 

cash-cli

 Convert Currency Rates. 

cointop

 Track cryptocurrencies. 

ticker

 Stock ticker. 

Presentations

WOPR

 A simple markup language for creating rich terminal reports, presentations and infographics. 

decktape

 PDF exporter for HTML presentations. 

mdp

 A markdown presentation tool. 

sent

 Simple plaintext presentation tool. 

slides

 A markdown presentation tool. 

Calendars

calcurse

 Calendar and scheduling. 

gcalcli

 Google calendar client. 

khal

 CalDAV ready CLI and TUI calendar. 

vdirsyncer

 CalDAV sync. 

remind

 A sophisticated calendar and alarm program. 

birthday

 Know when a friend's birthday is coming. 

General

aria2

 HTTP, FTP, SFTP, BitTorrent and Metalink download utility. 

bitly-client

 Bitly client. 

deadlink

 Find dead links in files. 

crawley

 Unix-way web crawler. 

kill-tabs

 Kill all Chrome tabs. 

alex

 Catch insensitive, inconsiderate writing. 

clevercli

 Collection of ChatGPT powered utilities. 

macOS

open-pip-cli

 Watch videos in picture-in-picture player. 

osx-wifi-cli

 Manage wifi connections. 

active-win-cli

 Get the title/id/etc of the active window. 

stronghold

 Configure security settings from the terminal. 

dark-mode

 Toggle dark mode. 

Terminal

gotty

 Share your terminal as a web application. 

localtunnel

 Expose your localhost to the world for easy testing and sharing. 

mosh

 Remote SSH client that allows roaming with intermittent connectivity. 

ngrok

 Secure introspectable tunnels to localhost. 

tmate

 Instant terminal (tmux) sharing. 

warp

 Secure and simple terminal sharing. 

overtime

 Time-overlap tables for remote teams. 

Network

get-port-cli

 Get an available port. 

is-reachable-cli

 Check if hostnames are reachable or not. 

acmetool

 Automatic certificate acquisition for ACME (Let's Encrypt). 

certificate-ripper

 Extract server certificates. 

neoss

 User-friendly and detailed socket statistics. 

Theming

splash-cli

 Beautiful wallpapers from Unsplash. 

wallpaper-cli

 Get or set the desktop wallpaper. 

themer

 Generate personalized themes for your editor, terminal, wallpaper, Slack, and more. 

jackpaper

 Set images from Unsplash as wallpaper. 

quickwall

 Directly set wallpapers from Unsplash. 

oh-my-posh

 Prompt theme engine. 

Shell

has

 Checks for the presence of various commands and their versions on the path. 

ultimate-plumber

 Write Linux pipes with live previews. 

fkill-cli

 Simple cross-platform process killer. 

task-spooler

 Queue jobs for linear execution. 

undollar

 Strip the '$' preceding copy-pasted terminal commands. 

pipe_exec

 Run executables from stdin, pipes and ttys without creating a temporary file. 

System

fastfetch

 System information tool. 

battery-level-cli

 Get current battery level. 

brightness-cli

 Change screen brightness (windows). 

yank

 Yank terminal output to clipboard. 

screensaver

 Start the screensaver. 

google-font-installer

 Download and install Google Web Fonts on your local machine. 

glances

 System monitoring tool. 

tiptop

 System monitor. 

gzip-size-cli

 Get the gzipped size of a file. 

Markdown

doctoc

 Generates table of contents for markdown files. 

grip

 Preview markdown files as GitHub would render them. 

mdv

 Styled terminal markdown viewer. 

glow

 Styled markdown rendering. 

gtree

 Use markdown to generate directory trees and the directories itself. 

Security

pass

 Password manager. 

gopass

 Fully-featured password manager. 

xiringuito

 SSH-based VPN. 

hasha-cli

 Get the hash of text or stdin. 

ots

 Share secrets with others via a one-time URL. 

Math

mdlt

 Do quick math right from the command line. 

qalculate

 Calculate non-trivial math expressions. Unit conversions, symbolic calculations and more. 

Weather

wttr.in

 

wego

 

weather-cli

 

Browser

s

 Open a web search in your terminal. 

hget

 Render websites in plain text from your terminal. 

mapscii

 Terminal Map Viewer. 

nasa-cli

 Download NASA Picture of the Day. 

getnews.tech

 Fetch news headlines from various news outlets. 

trino

 Translation of words and phrases. 

translate-shell

 Google Translate interface. 

Speedtest

speedtest-net

 Test internet connection speed and ping using speedtest.net. 

speed-test

 speedtest-net wrapper with different UI. 

speedtest-cli

 Test internet bandwidth using speedtest.net. 

bandwhich

 Track bandwidth utilization by process. 

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. 

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. 

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. 

fff: Fucking Fast File-Manager

 A simple file manager written in bash. 

midnight-commander

 A feature rich visual file manager. 

vifm

 VI influenced file manager. 

clifm

 The command line file manager. 

far2l

 Orthodox file manager. 

yazi

 Blazing fast file manager. 

CRUD

trash-cli

 Move files and directories to the trash. 

empty-trash-cli

 Empty the trash. 

del-cli

 Delete files and folders. 

cpy-cli

 Copies files. 

rename-cli

 Rename files quickly. 

renameutils

 Mass renaming in your editor. 

diskonaut

 Disk space navigator. 

Files

chokidar-cli

 CLI to watch file system changes. 

file-type-cli

 Detect the file type of a file or stdin. 

bat

 A cat clone with syntax highlighting. 

NCDu

 A disk usage analyzer with an ncurses interface. 

unix-permissions

 Swiss Army knife for Unix permissions. 

transmission-cli

 Torrent client for your command line. 

webtorrent-cli

 Streaming torrent client. 

entr

 Run an arbitrary command when files change. 

organize-cli

 Organize your files automatically. 

organize-rt

 organize-cli in Rust with more customization. 

RecoverPy

 Recover overwritten or deleted files. 

Sync

rclone

 Sync files with various cloud providers. 

ffsend

 Quick file share. 

share-cli

 Share files with your local network. 

google-drive-upload

 Upload/sync with Google Drive. 

gdrive-downloader

 Download files/folders from Google Drive. 

portal

 Send files between computers. 

shbin

 Turn a Github repo into a pastebin. 

sharing

 Send and receive files on your mobile device. 

ncp

 Transfer files and folders, to and from NFS servers. 

Listing

alder

 Minimal tree with colors. 

eza

 Improved version of ls. 

tre

 tree with git awareness, editor aliasing, and more. 

ll

 ls with git status. 

lsd

 ls with many extra features. 

autojump

 A cd command that learns - easily navigate directories from the command line. 

pm

 The easy way to switch to your projects on the shell. 

z

 z is the new j, yo. 

pathpicker

 After parsing the output from a command, PathPicker presents you with a nice UI to select which files you're interested in. 

fz

 Seamless fuzzy tab completion for z. 

goto

 Directory aliases for the shell with autocomplete. 

z.lua

 cd command that learns your habits. 

zoxide

 Fast directory jumper in Rust. 

tere

 A faster alternative to using cd and ls. 

happyfinder

 (another) Fuzzy file finder for the command line. 

find-up-cli

 Find a file by walking up parent directories. 

ripgrep

 A line-oriented search tool that recursively searches your current directory for a regex pattern. 

fzf

 A general purpose command-line fuzzy finder, can be used with any list: files/directories, command history, processes, hostnames, bookmarks, git commits, etc. 

fselect

 Find files with SQL-like queries. 

fd

 A simple, fast and user-friendly alternative to find. 

broot

 Fuzzy finder similar to fzf, but with space usage visualization. 

rare

 Real-time regex aggregation and analysis. 

skim

 A general fuzzy finder written in rust, similar to fzf. 

ast-grep

 A tool for code structural search, linting and rewriting. 

Git

SnowFS

 A fast, scalable version control system for binaries. 

git commander

 Interactive git tool. 

git-stats

 A local GitHub-like contributions calendar. 

dev-time

 Get the current local time of a GitHub user. 

tig

 Text-mode interface for git. 

grv

 Text-mode interface for git with customisable vi bindings. 

git-standup

 Recall what you did on the last working day. 

git-secret

 Store your private data inside a git repository. 

gitlab-cli

 Create GitLab merge requests. 

git-extras

 Git utilities. 

gita

 Manage multiple git repos side by side. 

readme-md-generator

 Interactively generate README.md files. 

node-semantic-git-commit-cli

 Ensure semantic commits messages. 

import-github-labels-cli

 Sync labels between Github repos. 

git-all-branches

 Improved git branch -a. 

czg

 Interactively generate standardized commit messages. 

shallow-backup

 Git integrated backup tool. 

lazygit

 Simple TUI for git commands. 

GitHub

CLI GitHub

 Fancy GitHub client. 

hub

 Make git easier to use with GitHub. 

git-labelmaker

 Edit GitHub labels. 

Emoji

gitmoji-cli

 Use emoji in commit messages. 

gitmoji-changelog

 Generate gitmoji changelogs. 

General

SVGO

 Optimize SVG files. 

carbon-now-cli

 Generate beautiful images of your code. 

imgur-uploader-cli

 Upload images to imgur. 

pageres-cli

 Capture website screenshots. 

GIFs

gifgen

 Simple high quality GIF encoding. 

gifsicle

 Create, manipulate, and optimize GIF images and animations. 

ttygif

 Convert terminal recordings to animated gifs. 

ttygif

 ttyrec to gif. 

ttystudio

 A terminal-to-gif recorder minus the headaches. 

asciinema

 Terminal session recorder and companion app for asciinema.org. 

givegif

 GIFs on the command line. 

Conversion

imagemagick

 Gold standard for anything images. 

imgp

 Blazing fast batch image resizer and rotator. 

korkut

 Quick and simple image processing. 

Fun

quote-cli

 Get a random quote or the quote of the day in your CLI. 

fortune

 Shows a random fortune. 

ponysay

 Pony rewrite of cowsay. 

yosay

 Like cowsay, but for yeoman. 

lolcat

 Outputs text in rainbow colors. 

text-meme

 Generate text memes. 

dankcli

 Add text to meme image templates. 

ricksay

 Quotes from Rick and Morty. 

Emoji

emoj

 Find relevant emoji from text on the command-line. 

emoji-finder

 Quickly find and copy emoji to the clipboard via the command-line. 

oji

 Interactive text emoji maker. 

Top

For recommendations please submit an issue on github.