Home

Awesome

Awesome Command Line (CLI/TUI) Programs Awesome

This repository - to the best of my knowledge - contains the largest collection of command line (CLI/TUI) tools available in the form of awesome list. With source information maintained in a handy CSV file.

To contribute, see the contribution section. Read the instructions before rushing at changing the README file: you must edit the CSV files, not the README!

Some links are available to related resources.

Summary:

Contents

<a name="ai"></a>AI / ChatGPT

Interfaces and front-ends to GPT engines and other tools powered by artificial intelligence and Natural Language Processing.

<a name="flashcard"></a>Anki, decks and flashcards

Manage decks of flashcards and Anki decks.

<a name="backup"></a>Backup

Tools to manage the backup of files and directories.

<a name="calc"></a>Calculators

Calculators for mathematical operations among numbers, dates, base conversions, etc..

<a name="chat"></a>Chat and instant messaging

Clients for chat and other instant messaging protocols, e.g., IRC, Discord, Mattermost, Matrix, Slack, Telegram, Reddit.

<a name="file-dir-cleanup"></a>Clean up of files and directories

Find/remove duplicate files, automatically organize files, etc..

<a name="copilot"></a>Co-pilot

Programs that use GPT and GPT-like engines to generate commands at the command line or code in general from natural language.

<a name="launcher"></a>Command launchers

Applications to launch/execute programs, either interactively, automatically, in parallel, etc..

<a name="cheatsheet"></a>Commands cheatsheet and snippets

Tools to manage often used commands, code snippets, and alternative manual pages.

<a name="vm"></a>Containerization and virtualization

Tools to manage virtual machines and/or containers and related utilities.

<a name="conversion"></a>Conversion

File format converters.

<a name="data-management"></a>Data management

Tools to manage data files.

<a name="data-management-json"></a>Data management - JSON/YAML/etc.

Tools to manage data files, dedicated to JSON, YAML and other similar formats.

<a name="data-management-tabular"></a>Data management - Tabular data

Tools to manage tabular data files, such as CSV, spreadsheets, and database tables.

<a name="transfer"></a>Data transfer

Programs for transferring files and data between different machines.

<a name="devops"></a>DevOps

Applications for supporting DevOps tasks, such as containers or cloud systems management.

<a name="diff"></a>Diff

Calculation of diffs between files and data, even with context or semantic awareness (i.e., considering the meaning of the data).

<a name="cd"></a>Directory changers (alternatives to cd)

Programs for improving the efficiency of directory traversal by remembering common paths and other approaches; alternatives to the cd command.

<a name="disk-analyzer"></a>Disk usage analyzers

Programs to analyze and summarize the usage of disks, visualize and report the size of directories and sub-directories, etc..

<a name="editors"></a>Editors

Text editors.

<a name="email"></a>Email

Email clients (MUA - Mail User Agents), mail synchronization, generation indexing and search.

<a name="file-handling"></a>File and file system handling

Tools for managing files and directories (copy, move, extraction from compressed archives, change permissions, etc.).

<a name="rm"></a>File deletion and trash bin (alternatives to rm)

Tools to manage the deletion of files/directories, often with the support of a trash can, i.e., the ability to restore deleted items.

<a name="file-explorer"></a>File explorer and tree visualization

Show directory trees and navigate through the file system (but not full-featured file managers).

<a name="find"></a>File finding (alternatives to find)

Search the filesystem looking for files with specific characteristics, e.g., names; alternatives to find.

<a name="ls"></a>File listing (alternatives to ls)

List directory content and files, with colors or icons; alternatives to ls.

<a name="file-manager"></a>File manager

Applications for interactively managing files and directories.

<a name="file-renamer"></a>File renamers

Utilities to rename files and directories: address multiple items with one command, interactively edit the name within an editor, etc..

<a name="file-system"></a>File systems

File systems with specific features; e.g., the possibility to add tags and labels to files.

<a name="file-watch"></a>File watching for changes

Services that watch files for changes and perform actions when something happens.

<a name="financial"></a>Financial tools

Personal ledger trackers, currency converters, and tools to manage and track cryptocurrencies.

<a name="font"></a>Font management

Utilities to manage system fonts and to generate text using ASCII-art-like characters.

<a name="funny"></a>Funny tools

Miscellaneous of tools that provide some funny/aesthetical functionality (animations, funny quotes, original message visualization, etc.).

<a name="option-picker"></a>Fuzzy finders and option pickers

Fuzzy finders and generic option pickers in lists of strings.

<a name="games"></a>Games

Board games, puzzles, roguelikes, role-play, adventures, card games, etc..

<a name="git"></a>Git and accessories

Tools to support and extend the functionalities of the git version tracker.

<a name="graphics"></a>Graphics

Applications to process images, colors, and ASCII art.

<a name="history"></a>History management

Programs to replace or improve the management of command line history.

<a name="markdown"></a>Markdown

Utilities to display, convert and reformat Markdown files.

<a name="networking"></a>Networking

Networks and communication tools: bandwidth monitoring, packet inspection, remote connection, VPNs, terminal sharing, etc..

<a name="note-taking"></a>Note taking

Tools to take, organize and manage notes.

<a name="office"></a>Office tools

Programs to manage spreadsheets and to make presentations.

<a name="online"></a>Online search and resources

Tools that interact with online resources to provide their services, e.g., searches, wiki, etc..

<a name="organizers"></a>Organizers and calendars

Calendar and appointment managers.

<a name="package-manager"></a>Package managers

Package managers to manage/install/uninstall software packages, as source code or binaries.

<a name="password-manager"></a>Password managers

Programs to store and manage collections of passwords and other login/authentication information.

<a name="pastebin"></a>Pastebin

Services that allows online sharing of text and other content.

<a name="monitor-top"></a>Process viewers and monitoring (alternatives to top)

Programs to list and monitor currently running processes; alternatives to the top command.

<a name="productivity"></a>Productivity

Applications for improving own productivity that do not deserve (at the moment) a specific category; e.g., resume generators and mind maps.

<a name="programming-boilerplate"></a>Program templates and boilerplate

Utilities that generate licenses, documentation structure (README files), project directories and other boilerplate for software projects.

<a name="programming"></a>Programming

Tools for developers, including debuggers, testing, line counters, boilerplate and license generators, etc..

<a name="prompt"></a>Prompts

Prompts and welcome messages at the command line.

<a name="rss"></a>RSS

RSS feed visualizers, converters, and managers.

<a name="religion"></a>Religion

Tools to handle religious material, e.g. reading the Holy Bible.

<a name="science"></a>Science

Packages for scientific research and science applications, e.g., bibliography and publication management.

<a name="screen-recorder"></a>Screen recorder

Tools to record the content of the terminal and manage the recording (e.g., converting into animated GIFs).

<a name="screensaver"></a>Screen savers

Screen savers with animations for the idle times of the computer.

<a name="security"></a>Security and encryption

Cryptography, ciphered archive managers, encrypted file-systems.

<a name="shells"></a>Shells

Shell programs that enable the interaction through the terminal.

<a name="music"></a>Sound and music

Music players, podcast, synthesizers, downloaders, online radios.

<a name="monitor"></a>System monitoring

Applications to display the usage of system resources: network, memory, power, etc..

<a name="system"></a>System tools

System management tools, such as for brightness control, dotfile and environment variable management, notifications, etc..

<a name="terminal"></a>Terminals

Terminal and terminal multiplexers.

<a name="text-processing"></a>Text processing

Text processing utilities to cut or sort lines, find dead links, colorize command output, etc..

<a name="text-search"></a>Text search (alternatives to grep)

Search files and exploring directory trees to look for text or patterns (RegEx) contained in files; alternatives to the grep command.

<a name="text-search-replace"></a>Text search and replace (alternatives to sed)

Tools to search text within files and perform operations on it, such as text replacement; alternatives to sed.

<a name="time-tracker"></a>Time trackers

Time and habit trackers to measure the amount of time spent on different activities.

<a name="todo-manager"></a>Todo managers

Todo list and task managers.

<a name="torrent"></a>Torrent

Clients and download managers using the BitTorrent protocol.

<a name="typing"></a>Typing test and practice

Games and utilities to measure and/or improve the typing ability.

<a name="utility"></a>Utilities

Miscellaneous utilities that are not do not fit in other categories and they are not numerous enough that they do not require a dedicated category.

<a name="versioning"></a>Versioning

Tools for file versioning that are not related to git.

<a name="video"></a>Video

Programs to process and manage video files (downloader, editing, players, etc.).

<a name="viewers"></a>Viewers

File viewers for images and other formats (e.g., e-books).

<a name="browser"></a>Web browser

Web browsers with textual interface.

<a name="webdev"></a>Web development

Web development tools, including load test tools, API clients and managers, link checkers and extractors, etc..

<a name="writing"></a>Writing

Tools to assist the writing of text and documents, including translation, spell checking, etc..

<a name="resources"></a>Related resources

A list of some online resources that contribute interesting links to apps and info.

Toolleeo’s CLIpedia - Blog with information on CLI apps, screenshots and other details (license, author, etc.).

The Art of Command Line - A wonderful summary from Joshua Levy regarding command line (Bash in particular) tools, programs, tips, and tricks; contains many pointers to resources and repositories, in the form of "to do this you must know that", which gives great pointers but requires further investigation from different sources; translated in many languages.

Inconsolation blog - "Adventures with lightweight and minimalist software for Linux": reviews of many command-line programs; many programs reviewed (400+, at least), with screenshots and animated GIFs; the style of presentation is ironic and funny, but requires some effort to figure out the real contribution of a program.

A little collection of cool unix terminal/console/curses tools - "Some are little-known, some are just too useful to miss, some are pure obscure..." from Kristof Kovacs; nice list with screenshot; mostly oriented to system administration; unfortunately there are no clickable links.

Caleb Xu shell awesome - Focused on UNIX shell tools.

Adam Harris awesome CLI apps - Nice list of tools; somehow too much JavaScript/Node.js-centered for my tastes.

Marcel Bischoff awesome commandd line apps - Nice up-to-date list of useful tools.

Awesome CLI by sintaxi - Relatively short list with short descriptions; with some original entries.

awesome-ttygames - Large awesome list of terminal games. The collection is maintained in a YAML format. Each item contains a description and an optional screencast.

Site Generators - A comprehensive list of Static Site Generators.

Awesome git addons - A curated list of add-ons that extend/enhance the git CLI.

Terminals Are Sexy - A curated list of Terminal frameworks, plugins & resources for CLI lovers.

Awesome Terminal Recorder - Curated list of outstanding terminal Recorder that make your day brighter! Each item is associated with an animated GIF that shows some examples of usage.

commandlinefu.com - The place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too.

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

texteditors.org - A huge collection of links to resources on text editor. It contains references to non-CLI programs.

Terminal Trove - Collection of terminal CLI/TUI programs, with one page per program, nice screenshots and animated GIFs.

<a name="contribute"></a>How to contribute

If you have any suggestion or want your project to be included in the list, you can contribute in the following ways.

As a follower of the 0-inbox approach for emails, I strive to maintain a 0-length list of pull requests for new contributions.

Open an issue

To suggest a new program, check the existence of the program in the list. If it is not present, you can open an issue including the following items:

At least one of the two items homepage and git must be present.

Pull request on data/apps.csv

The peculiarity of this repository is that the source of information is structured into CSV files with a simple structure. See the data/ directory.

If you want to contribute using a pull request, add the new entry to data/apps.csv. In the CSV file, the git field refers to a clonable git URL.

Please make changes to the CSV file only, not to the README file. I will review the request and, upon acceptance, I will take care of generating the README and updating the list.

Contribution via email

If you prefer an email, contact me at toolleeo@gmail.com by sending the same information required for the "open an issue" method.

Generation of the README file

If necessary, this README file can be (re-)generated from the CSV files. To build README.md run:

make

python3 is required for building. And make, of course. :-)