Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

cli-apps

The largest Awesome Curated list of CLI/TUI applications with source data organized into CSV files
https://github.com/toolleeo/cli-apps

Last synced: 2 days ago
JSON representation

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

    • Clipboard - An easy-to-use information management tool that acts like an external brain.
  • <a name="office"></a>Office tools

    • PDFtk - PDFtk is a simple tool for doing everyday things with PDF documents.
    • sent - Simple plain-text presentation tool.
    • Teapot - Compact ncurses-based spreadsheet with original syntax, 3D-style and built-in functions.
    • tpp - (text presentation program) - a ncurses Ruby program that allows producing nice text-based presentation with simple markup language.
  • <a name="graphics"></a>Graphics

    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • Aewan - Aewan is a multi-layered ASCII graphics/animation editor. It produces stand-alone cat-able ASCII art files and an easy-to-parse format for integration into terminal applications.
    • GraphicsMagick - Swiss army knife of image processing.
    • Graphviz - Graphviz is open source graph visualization software. It contains several command line tools to generate and manipulate graphs.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • LinuxLogo - Display the Linux distribution logo in ASCII format.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • ImageMagick - Software suite to create, edit, compose, or convert bitmap images; it handles many file formats (including PDF and SVG) and provides processing tools to "resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves".
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
    • jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
  • <a name="music"></a>Sound and music

    • Mp3blaster - Audio player for the text console.
    • Alsamixer - ALSA mixer with curses interfaces.
    • cmus - A fast and lightweight audio player with configurable keybindings and playlist support.
    • Mp3blaster - Audio player for the text console.
    • mpg123 - Quick `mp3` sound file player; no visual interface, just a command-line audio file player for `mp3` files.
    • ncmpcpp - NCurses Music Player Client (Plus Plus) - featureful ncurses based MPD client inspired by ncmpc. Relevant features: tag editor, playlist editor, easy to use search engine, media library, music visualizer, ability to fetch artist info from [last.fm](https://www.last.fm/), new display mode, alternative user interface, ability to browse and add files from outside of MPD music directory.
    • ogg123 - Quick `ogg` sound file player; no visual interface, just a command-line audio file player for the free and open `ogg` file format.
    • Siren - Siren is a text-based audio player for UNIX-like operating systems.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • MOC - (music on console) - a powerful and easy to use console audio player, user interface a la Midnight Commander, plenty of features, fully controllable from the keyboard.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
    • Mp3blaster - Audio player for the text console.
  • <a name="backup"></a>Backup

    • autorestic - A wrapper around the [restic](https://restic.net/) backup tool, with the goal of simplifying the setup and usage through the use of config files.
    • borg - Encrypted backups with a clean and simple interface, easy to use and set up, possibility to mount the backup archive with FUSE and inspect it as a regular file system.
    • bup - Very efficient backup system based on the git packfile format, providing fast incremental saves and global deduplication.
    • Duply - Simplifies the use of [duplicity](http://duplicity.nongnu.org/) by keeping clean configuration files to automate the backup.
    • rdiff-backup - Reverse differential backup tool, over a network or locally, using the same protocol as rsync to transfer and store data.
    • zbackup - A globally-deduplicating backup tool, based on the ideas found in rsync.
    • bupstash - Easy and efficient encrypted backups.
    • Crestic - Configurable Restic Wrapper.
    • gwbackupy - Open source Google Workspace™ backup solution.
    • paperbackup - Create a PDF with barcodes to backup text files on paper.
    • shallow-backup - Git integrated backup tool.
    • thread-safe - Keep your favorite Twitter threads safe with a local copy.
    • Zaloha.sh - Shellscript for synchronization of files and directories.
    • duplicity - Creates GPG encrypted, compressed backups; client-side encryption allows uploading the backup onto untrusted servers.
    • Kopia - Cross-platform backup tool for Windows, macOS & Linux with fast, incremental backups, client-side end-to-end encryption, compression, and data deduplication. CLI and GUI included.
    • Restic - A backup program that is fast, efficient, and secure.
  • <a name="calc"></a>Calculators

    • Nota - Terminal calculator with rich notation.
    • Qalculate - Multi-purpose calculator with customizable functions, units, arbitrary precision, plotting (it includes a GUI).
    • AngouriMathCLI - CLI calculator based on AngouriMath.
    • bcal - Byte CALculator - A REPL CLI utility for storage expression evaluation, SI/IEC conversion, byte address calculation, base conversion and LBA/CHS calculation.
    • Bitwise - Base conversion and bit manipulator in ncurses.
    • CalcPy - Terminal calculator and advanced math solver using Python, IPython and SymPy.
    • DateTimeMate - Golang package and CLI to compute the difference between date, time or duration.
    • genius - Genius calculator is a general purpose calculator and mathematics tool with many features.
    • HIP35 - HP-35 RPN calculator emulator in C++17 with a terminal user interface.
    • kalc - A complex numbers, 2D/3D graphing, arbitrary precision, vector, CLI calculator with real-time output.
    • kalker - Calculator that supports math-like syntax with user-defined variables, functions, derivation, integration, and complex numbers.
    • mdlt - A lightweight command line tool that lets you perform arithmetic and symbolic math operations right from the terminal.
    • Numbat - Numbat is a calculator for scientific computations with first class support for physical dimensions and units.
    • pdd - Tiny date, time diff calculator.
    • Programmer calculator - Terminal calculator made for programmers working with multiple number representations, sizes, and overall close to the bits.
    • maxima - Maxima is a manipulation system for symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, sets, lists, vectors, matrices and tensors.
  • <a name="chat"></a>Chat and instant messaging

    • kirc - A tiny IRC client written in POSIX C99.
    • MCABBER - A small XMPP (Jabber) console client including features such as SASL/SSL/TLS support, MUC (Multi-User Chat) support, history logging, command completion, OpenPGP encryption and more.
    • Poezio - Poezio is a free console XMPP client. It lets you connect very easily (no account creation needed) to the network and join various chatrooms. Many commands are identical to common IRC clients. Configuration can be made in a configuration file or directly from the client.
    • Profanity - Profanity is a console based XMPP client written in C using ncurses and libstrophe, inspired by Irssi.
    • RainbowStream - Twitter client for the terminal allows almost all the operations that can be done from GUI and Web clients.
    • sic - sic is an extremely simple IRC client. It consists of less than 250 lines of code.
    • devzat - Custom SSH server that takes you to a chat instead of a shell prompt.
    • Discordo - A lightweight, secure, and feature-rich Discord terminal client.
    • kirc - A tiny IRC client written in POSIX C99.
    • GNU Freetalk - A console based chat client for Jabber and other XMPP servers. It has context-sensitive autocompletion for buddy names, commands, and even ordinary English words.
  • <a name="launcher"></a>Command launchers

    • parallel - A shell tool from GNU for executing jobs in parallel using one or more computers, it can split the input and pipe it into commands in parallel.
    • Task - A task runner / simpler Make alternative written in Go.
    • mk - Interactive task runner for Makefile or Taskfile.yml, designed to interactively execute make commands. It provides a user-friendly interface to select and run predefined commands, making it easier to manage and execute build tasks.
  • <a name="cheatsheet"></a>Commands cheatsheet and snippets

    • tldr - Client for tldr pages, a community effort to simplify the beloved man pages with practical examples.
    • tlrc - Official tldr client written in Rust.
  • <a name="conversion"></a>Conversion

    • antiword - Reader and converted for the proprietary MS .doc file format.
    • transflac - A repository containing a series of utilities to assist in the maintenance and organization of FLAC based music collections.
    • catdoc - Convert Microsoft Word files to plain text; output is sent to the standard output.
    • scss-to-css - Recursively compile all SCSS files into minified CSS.
    • wv - Utility for performing operations on .doc files. The tool is now deprecated in favor of AbiWord, which uses the same library that is used in the CLI program.
  • <a name="data-management"></a>Data management

    • dateutils - Dateutils are a bunch of tools that revolve around fiddling with dates and times in the command line with a strong focus on use cases that arise when dealing with large amounts of financial data.
    • GNU Recutils - Set of tools and libraries to access human-editable, text-based databases called recfiles.
    • zq - A command-line tool that uses the Zed language for pipeline-style search and analytics. It can query a variety of data formats (CSV, JSON, etc.) in files, over HTTP, or in S3 storage.
    • gnuplot - Generate two and three-dimensional plots of data.
  • <a name="data-management-json"></a>Data management - JSON/YAML/etc.

    • jless - Command-line JSON viewer designed for reading, exploring, and searching through JSON data.
  • <a name="data-management-tabular"></a>Data management - Tabular data

    • csvtk - A cross-platform, efficient and practical CSV/TSV toolkit written in Go.
    • VisiData - Interactive multitool for tabular data. It combines the clarity of a spreadsheet, the efficiency of the terminal, and the power of Python, into a lightweight utility which can handle millions of rows with ease.
    • xsv - Doing a SQL join with CSV files.
  • <a name="transfer"></a>Data transfer

    • OnionShare - "An open source tool that lets you securely and anonymously share a file of any size."
    • qrcp - Transfer Files Between Desktop And Mobile Devices Over Wi-Fi By Scanning A QR Code.
    • rclone - Manage file synchronization on cloud storage.
    • rsync - Mirror directories across networked machines, handles diffs/changed files, works across SSH, plenty of parameters.
    • sitecopy - Synchronizes a local copy of a website with a remote copy on a server, does not use SSH/`scp` but FTP for file copy, useful when the remote server does not support secure copy.
    • stftp - (simple terminal FTP) aims to be a "easy-to-use and unbloated client for the UNIX (and UNIX-like) console".
    • Unison - File synchronizer. It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other.
    • Woof - (Web Offer One File) sets up an HTTP webserver to serve files from a given local directory all the users connected to the network can see and download the files.
    • lftp - "Sophisticated FTP/HTTP client, and a file transfer program supporting a number of network protocols"; support for bookmarks and mirroring features.
    • osync - A robust two-way (bidirectional) file sync script based on rsync with fault tolerance, POSIX ACL support, time control and near real-time sync.
  • <a name="cd"></a>Directory changers (alternatives to cd)

    • broot - broot displays an optimized (omitting unnecessary content) tree view of the filesystem, allowing to fuzzy search files and folder, and move to specified directories.
  • <a name="editors"></a>Editors

    • ed - GNU ed is a line-oriented text editor. It is used to create, display, modify and otherwise manipulate text files, both interactively and via shell scripts.
    • Feather - The only terminal based text editor designed to work with BIG files.
    • jed - A text editor with a drop-down menu facility that make it especially user-friendly.
    • joe - (Joe's Own Editor) is a compact text editor written in C, a detailed list of features and missing ones is explicitly reported in the website, this editor is mentioned in several web sources for its capability in handling large files.
    • Kakoune - Modal editor, faster as in less keystrokes, multiple selections, orthogonal design.
    • Tilde - Tilde is a text editor that provides an intuitive interface for people accustomed to GUI environments, usual shortcuts for common operation, a traditional menu bar, etc.
    • VE - Lean, fast and feature rich text editor.
    • WordGrinder - From the website: "WordGrinder is a word processor for processing words. It is not WYSIWYG. It is not point and click. It is not a desktop publisher. It is not a text editor. It does not do fonts and it barely does styles. What it does do is words. It's designed for writing text. It gets out of your way and lets you type."
    • Emacs - One of the godfathers of text editors, free long-standing software project, with a huge amount of functionalities and extensions; implemented and extendable with E-Lisp.
    • nano - Easy to use, lightweight text editor; no complex keybindings to remember; the main ones are shown in the main menu.
    • neovim - A work in progress attempt to improve [vim](http://www.vim.org/), dropping older/unused OS compatibility, improving the codebase readability, modularity, and maintainability; it has chances to become the next choice of vim users.
  • <a name="email"></a>Email

    • aerc - A pretty good email client
    • alpine - Mail client which aims at being "fast, easy to use email client that is suitable for both the inexperienced email user as well as for the most demanding of power users".
    • mbsync - Mailboxes synchronization tool, allows to download email locally, MailDir format supported.
    • meli - BSD/Linux terminal email client with support for multiple accounts and Maildir / mbox / notmuch / IMAP / JMAP.
    • Mutt - Mail client with tons of features, customization chances, support for IMAP, POP3, multiple storage formats.
    • NeoMutt - Patched and up-to-dated mutt fork.
    • Notmuch - Notmuch is a command-line based program for indexing, searching, reading, and tagging large collections of email messages.
    • sup - MUA written in Ruby; specifically developed for accounts with "a lot of emails"; nice thread-based presentation.
  • <a name="file-handling"></a>File and file system handling

    • TUI Archiver - A TUI/CLI application to list / manage archives. Can be used stand-alone and has some features for integrating with TUI file managers
  • <a name="rm"></a>File deletion and trash bin (alternatives to rm)

    • rmw - (ReMove to Waste) is a trashcan/recycle bin utility for the command line. It can move and restore files to and from directories specified in a configuration file.
    • del - Save deleted files to a .del/ subdirectory in the same directory.
    • extundelete - Recover deleted files from an ext3 or ext4 partition through its journal.
    • testdisk - Lets you undelete files from FAT, exFAT, NTFS, and ext2 filesystems and do many other things, e.g., fix partition tables and recover deleted partitions.
  • <a name="file-explorer"></a>File explorer and tree visualization

    • tree - "Recursive directory listing command that produces a depth indented listing of files".
  • <a name="find"></a>File finding (alternatives to find)

    • plocate - A much faster locate; plocate is a locate based on posting lists, completely replacing mlocate with a much faster (and smaller) index.
  • <a name="ls"></a>File listing (alternatives to ls)

    • exa - Replacement for 'ls' written in Rust, with colors and several additional "views". As of today, the README says it is currently unmaintained and the only maintainer is unreachable. See `eza` for a maintained fork.
  • <a name="file-manager"></a>File manager

    • lfm - (Last File Manager) - a file manager written in Python; it comes with lots of features, including 1-pane or 2-pane view, files filters and bookmarks, tree view, virtual file-systems to open compressed archives, search in files, customizable keybindings and themes.
    • Midnight Commander - A visual file manager, full-screen text mode application that allows you to copy, move and delete files and whole directory trees and search for files; includes an internal viewer and editor.
    • vifm - "ncurses based file manager with vi like keybindings/modes/options/commands/configuration, which also borrows some useful ideas from mutt" (cit.).
    • ranger - File manager with vi key bindings, curses interface with a view on the directory hierarchy, comes with a file launcher that automatically determines which program to use for opening a given file type.
  • <a name="file-renamer"></a>File renamers

    • rename - Included in `util-linux`, allows bulk rename of files with regex support.
    • Bren - Bren is a command line tool for GNU/Linux (and many others). It has support for GNU Guile scripting. Bren is simple, fast, and it's written in C.
    • renameutils - A set of programs to change file and directory names by editing them in-place, I find `imv` especially useful to edit a filename at the program prompt.
  • <a name="file-system"></a>File systems

    • TMSU - A tool for tagging files, it provides a simple command line tool for applying tags and a virtual filesystem so that you can get a tag-based view of your files from within any other program.
  • <a name="file-watch"></a>File watching for changes

    • watch - Periodically runs a command in the console while temporarily clearing the screen content; it makes it easy to check differences between the output of two subsequent commands; it provides "diff" functionality to highlight the changing characters between outputs.
  • <a name="financial"></a>Financial tools

    • hledger - A is fast, reliable, free, multicurrency double-entry accounting software to track money, investments, cryptocurrencies, time, or any other quantifiable commodity; uses a future-proof plain text file format.
    • budget-cli - Import, de-dupe, categorize, and report on financial transactions.
  • <a name="font"></a>Font management

    • FIGlet - Not exactly a font manager, but a nice program for making large letters out of ordinary text; an astonishing number of different fonts is available.
    • toilet - Tries to improve `FIGlet`; can load FIGlet fonts; supports Unicode input and output, color fonts and output, and various output formats, including HTML, IRC and ANSI; uses `libcaca` to produce nice textual effects.
  • <a name="funny"></a>Funny tools

    • asciicquarium - Enjoy the mysteries of the sea from the safety of your own terminal!
    • cmatrix - ncurses program that display the scrolling lines found in the movie `The matrix`.
    • fortune - Generates random messages fetched from a quotation database.
    • Steam Locomotive - A steam locomotive traverses the screen from right to left if `sl` is typed instead of `ls`.
    • Steam Locomotive - A steam locomotive traverses the screen from right to left if `sl` is typed instead of `ls`.
    • cowthink - Same as `cowsay`, but uses a "think" bubble instead of a speech bubble.
  • <a name="games"></a>Games

    • Angband - Angband is a free, single-player dungeon exploration game.
    • anonymine - Curses mode minesweeper without guessing and other original features.
    • bastet - (Bastard Tetris) implements the classical Tetris but with a logic to generate the next block which maximizes the difficulty for the player.
    • Cataclysm: Dark Days Ahead - Open source turn-based survival RPG development project.
    • Dwarf fortress - A fantasy game using ASCII art graphical representation of the game environment, it features a rich environment with many options and possibilities.
    • Frotz - Frotz is an interpreter for Infocom games and other Z-machine games.
    • greed - A game of consumption. Eat as much as you can before munching yourself into a corner.
    • Nethack - Single player rogue-like dungeon exploration game.
    • Oldrunner - Character-based remake of Lode Runner, includes all the original 150 levels.
    • Slash'EM - Rogue-like game derived from `nethack` offering extra features, monsters, and items; includes a GUI version.
    • Terminal Phase - A space shooter game you can play in your terminal.
    • freesweep - A Minesweeper clone for the terminal which allows you to configure settings such as table rows and columns up to 1024x1024!), percentage of bombs, colors, and also has a high scores table.
  • <a name="git"></a>Git and accessories

    • git - The winner across all the existing file versioning tools, distributed versioning, fully controllable from the command-line, plenty of configuration and usage options, behind a number of related project that leverage git as backend.
    • git-annex - Manages files with `git`, without checking the file contents into git; very useful to manage large/binary files.
    • gh - GitHub's official tool to manage repos, issues, projects, gists and much more.
  • <a name="markdown"></a>Markdown

    • lowdown - Markdown translator (HTML5, roff, LaTeX, gemini, OpenDocument, and terminal output)
  • <a name="networking"></a>Networking

    • darkhttpd - 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.
    • ejabberd - ejabberd is an XMPP application server and an MQTT broker, written mainly in the Erlang programming language.
    • ipcalc - Takes an IP address and netmask and calculates the resulting broadcast, network, Cisco wildcard mask, and host range.
    • mitmproxy - An interactive HTTPS proxy.
    • mosh - Remote SSH client that achieve good responsiveness in presence of intermittent connectivity and roaming.
    • Optic - Optic's Open Source tools make OpenAPI and API-first practices easy for any team to adopt.
    • Prosody - Prosody is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources.
    • quark - quark is an extremely small and simple HTTP GET/HEAD-only web server for static content.
    • Termshark - A terminal UI for tshark, inspired by Wireshark.
    • geolocate - Fetch IP geolocation data.
    • generate-ip - Randomly generate, format, and validate IPv4/IPv6 addresses.
    • rtop - Simple, agent-less, remote server monitoring tool that works over plain SSH. Written in Go, it does not need any software to be installed on the server that you want to monitor. It works by establishing an SSH session, and running commands on the remote server to collect system metrics.
    • doggo - DNS client for humans. Features include: colors, tabular and JSON formats, and reverse DNS lookup.
    • Awesome CLI - Awesome CLI is a simple command line tool to give you a fancy command line interface to dive into Awesome lists.
    • Seashells - Pipe output to the web.
  • <a name="organizers"></a>Organizers and calendars

    • calcurse - A calendar and scheduling application for the command line. It helps keep track of events, appointments and everyday tasks.
    • pal - Calendar program for Unix/Linux systems that can keep track of events; custom, plain text storage format; interesting and fully functional.
    • ppl addressbook - Address book tool that uses the vCard format. Built on top of Ruby and Git
    • Remind - Calendar that supports set complex rules to define events; custom, powerful text-based storage format.
    • remint - A simple terminal UI wrapper for D. Skoll's Remind calendar program
  • <a name="package-manager"></a>Package managers

    • asdf - Manage multiple runtime versions with a single CLI tool.
    • krew - Find and install kubectl plugins.
    • mise - A development environment setup tool: dev tools, env vars, and task runner. Like `asdf` + `direnv` + `make`.
  • <a name="password-manager"></a>Password managers

    • Bitwarden CLI - Command-line interface for Bitwarden, a multi-platform password manager targeted to companies and enterprises.
    • gopass - gopass is a rewrite of the pass password manager in Go with the aim of making it cross-platform and adding additional features. The target audience are professional developers and sysadmins (and especially teams of those) who are well versed with a command line interface.
    • passfzf - A simple fzf wrapper for pass (the UNIX password-store). It allows fuzzy finding your pass passwords to copy, show, edit, delete, rename and duplicate them.
    • titan - Password management belongs to the command line, deep into the Unix heartland, the shell. Titan is written in C and is available under the MIT license.
    • password-store - With pass, each password lives inside a GPG encrypted file whose filename is the title of the website or resource that requires the password. These encrypted files may be organized into meaningful folder hierarchies, copied from computer to computer, and, in general, manipulated using standard command line file management utilities.
    • generate-pw - Randomly generate cryptographically-secure passwords.
  • <a name="monitor-top"></a>Process viewers and monitoring (alternatives to top)

    • atop - Atop is TUI performance monitor for Linux; it reports the activity of all processes (even if processes have finished during the interval), daily logging of system and process activity for long-term analysis, overloaded system resources, etc.
    • iotop - "A Python program with a top like UI used to show of behalf of which process is the I/O going on".
    • nmon - Nigel's performance Monitor for Linux.
  • <a name="programming"></a>Programming

    • DEM - Containerized Development Environment Manager for embedded development.
    • rr - Debug the recording, deterministically, as many times as you want.
    • bashly - Bashly is a command line application (written in Ruby) that lets you generate feature-rich bash command line tools.
    • dasht - Search in 200+ offline documentation sets API docs offline, in your terminal or browser.
    • minify.js - Recursively minify all JavaScript files.
    • Cppcheck - Static analysis tool for C/C++ code providing unique code analysis to detect bugs and focuses on detecting undefined behavior and dangerous coding constructs.
    • Frama-C - Open source extensible and collaborative platform dedicated to source-code analysis of C software. Frama-C can assist from the navigation through unfamiliar projects up to the certification of critical software.
  • <a name="prompt"></a>Prompts

    • Basta! - A small amount of GNU Bash code that maintains a scroll-protected status line at the bottom of the terminal.
    • Starship - The cross-shell prompt for astronauts.
    • Spaceship - Minimalistic, powerful and extremely customizable Zsh prompt.
  • <a name="rss"></a>RSS

    • Newsboat - An RSS/Atom feed reader for the text console. It's an actively maintained fork of Newsbeuter.
    • Newsraft - Newsraft is a feed reader with ncurses user interface. It is greatly inspired by Newsboat and tries to be its lightweight counterpart.
    • openring - A tool for generating a webring from RSS feeds, so you can link to other blogs you like on your own blog.
    • 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.
  • <a name="science"></a>Science

    • BibMan - A TUI bibliography manager. It aims to support only the most basis features as a general bibliography manager.
    • scholarref - Tools to never deal with journal webpages again.
    • cobib - Simple, command-line based bibliography management tool.
  • <a name="screensaver"></a>Screen savers

    • termsaver - termsaver to enjoy fancy ASCII screensavers like matrix, clock, starwars, and a couple of not-safe-for-work screens.
  • <a name="security"></a>Security and encryption

    • cream - Encrypt and decrypt streams of data with only a master password. The key is derivated from the password + salt combo, and used to encrypt data byte per byte.
    • encfs - Encrypted filesystem in user-space based on [FUSE](https://it.wikipedia.org/wiki/FUSE), mounts an encrypted directory into a clear one.
    • Firejail - A SUID program that reduces the risk of security breaches by restricting the running environment of untrusted applications using Linux namespaces and seccomp-bpf.
    • GnuPG - GnuPG is a complete and free implementation of the OpenPGP standard as defined by RFC4880 (also known as PGP).
    • gocryptfs - An encrypted overlay filesystem written in Go.
    • hashcat - A robust and efficient password cracking tool that can help you recover lost passwords, audit password security, benchmark, or just figure out what data is stored in a hash.
    • LUKS - Hard disk encryption tool; it stores all setup information in the partition header, enabling easy data transport or migration.
    • safe - Password protected secret keeper. Secrets are encrypted and stored on disk using a key derivated from your master password - no keys to manage.
  • <a name="shells"></a>Shells

    • Bash - (Bourne Again SHell) The most widespread system shell to date.
    • DASH - DASH is a POSIX-compliant implementation of /bin/sh that aims to be as small as possible. It does this without sacrificing speed where possible.
    • Fish - "A command line shell for the 90s"; focused on user-friendliness, with powerful autosuggestions, colors, "sane scripting" (w.r.t. to Bash).
    • xonsh - The xonsh shell lets you easily mix Python and shell commands in a powerful and simplified approach to the command line.
    • mksh - (MirBSD Korn Shell) an actively developed free implementation of the Korn Shell programming language and a successor to the Public Domain Korn Shell (pdksh).
    • murex - An intuitive, typed and content aware shell for the 2020s and beyond.
    • PowerShell - An automation and configuration tool/framework optimized for dealing with structured data, REST APIs, and object models.
    • Rash - A shell language, library, and REPL for Racket.
  • <a name="monitor"></a>System monitoring

    • dmidecode - System information utility.
    • dysk - A thing to get information on your mounted disks
    • inxi - A comprehensive system information script; provides information about CPU, graphics, audio and network devices, drives and partitions, sensors; implemented as a Bash script.
    • pv - The pv command is used to monitor the progress of data through pipe.
    • smem - Python program that reports memory usage; it can report the "proportional set size" (PSS), a meaningful representation of the amount of memory used by libraries and applications in a virtual memory system; it has built-in chart generation.
    • The Logfile Navigator - An advanced and colorful log file viewer with TUI interface.
    • ttyload - ttyload is a lightweight utility which is intended to offer a color-coded graph of load averages over time on Linux and other Unix-like systems. It enables a graphical tracking of system load average in a terminal ("tty").
    • whowatch - Monitor Linux Users and Processes in Real Time.
    • multitail - Open multiple log files in a single terminal window and monitor them in real-time.
    • sntop - A simple network top for monitoring connectivity.
  • <a name="system"></a>System tools

    • checksum.sh - Checksum.sh is a simple way to download, review, and verify install scripts. If the checksum is OK the script will be printed to stdout, which can be piped to sh or elsewhere.
    • conspy - "Conspy allows a (possibly remote) user to see what is displayed on a Linux virtual console, and send keystrokes to it."
    • lshw - A small tool to provide detailed information on the hardware configuration of the machine. It can report exact memory configuration, firmware version, mainboard configuration, CPU version and speed, cache configuration, bus speed, etc.
    • x-cmd - A toolset implemented using posix shell and awk offering many interesting features and that is very small in size.
    • chezmoi - Manage your dotfiles across multiple diverse machines, securely.
    • direnv - Loads and unloads environment variables depending on the current directory.
  • <a name="terminal"></a>Terminals

    • byobu - A text-based window manager and terminal multiplexer; it features enhanced profiles, convenient keybindings, configuration utilities, and toggle-able system status notifications; compatible with `screen` and `tmux`.
    • screen - Terminal multiplexer that split a physical terminal between several processes, typically interactive shells.
    • Tmate - A fork of tmux that allows sharing the terminal with other users. AFAIK, it connects to a centralized server to establish the connection. Someone may see this inconvenient for privacy issues.
    • tmux - Terminal multiplexer; born to improve `screen`; client-server architecture, `vi` and `emacs` key-bindings, search in window feature and many more.
    • abduco - abduco provides session management i.e. it allows programs to be run independently from their controlling terminal.
    • extraterm - The swiss army chainsaw of terminal emulators.
    • kitty - A fast, feature-rich, GPU based terminal emulator.
    • mlterm - A very fast low latency terminal emulator with features such as rendering variable width fonts, proper bidirectional support out of the box, a daemon mode, multiple XIM, and true background transparency.
    • st - A simple terminal implementation for X.
  • <a name="text-processing"></a>Text processing

    • skroll - A small utility that you can use to make a text scroll. Pipe text to it, and it will scroll a given number of letters from right to left.
    • paragrep - Greps regular expressions in a text file(s) and prints out the paragraphs containing those expressions, a paragraph is defined as a block of text delimited by an empty or blank line, fully customizable via command line parameters.
    • sift - Fast and powerful alternative to `grep`; it targets flexibility and performance: can be as fast as `grep` and allows specifying complex expressions to find text.
  • <a name="todo-manager"></a>Todo managers

    • devtodo - A hierarchical command-line task manager, with data storage in JSON format.
    • memo - Memo is a Unix-style note-taking software for POSIX compatible systems.
    • Redo.vc - Redo.vc is a tool for command line fans that allows you to track your tasks. It is a full featured todo manager with tagging, projects, recurring tasks and much more, all stored in a JSON file so it is super portable and tooling new apps for the data format is super easy.
    • TaskWarrior - Todo manager with advanced features, dedicated synchronization server available, many plugins and related tools, healthy software project.
    • todo.txt - Minimalistic todo manager that uses a simple plain text file to keep track of items, implemented as a shell script.
    • Ultralist - A simple, powerful, open source task management system for the command line.
    • Yokadi - Project-based todo manager: every task must be specified with a mandatory project indication. Tasks are stored within a SQLlite DB. Written in Python.
    • TuDu - Manage hierarchical todos. Each task has a title, a long text description, a deadline (tudu warns you when the date is close), and a scheduled date. There are categories and priorities.
    • iKog - A fully-featured task manager encapsulated within a Python script (just carry around the script to retain all the TODOs). When the script is run, a Python shell is opened, where task-related commands can be entered (ADD, LIST, etc.); a pity that commands are uppercase, which requires the annoying use of the Shift key.
    • todotxt-machine - Interface for todo.txt.
  • <a name="torrent"></a>Torrent

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

    • Typespeed - Type words that are flying by from left to right as fast as you can; features different word sets, e.g., UNIX commands, English words, Non-English words.
  • <a name="utility"></a>Utilities

    • bkt - bkt is a subprocess caching utility that makes it easy to reuse past invocations of slow commands
    • Python re(gex)? exercises - TUI application intended to help you practice Python regular expressions there are more than 100 exercises covering both the builtin re and third-party regex module.
  • <a name="versioning"></a>Versioning

    • Bazaar - Multiplatform version control system supporting different workflows; it is part of the GNU Project, and it is free software sponsored by Canonical.
    • Mercurial - Free, distributed source control management tool.
    • fnc - Interactive text-based user interface for Fossil.
    • myrepo - A repository management tool.
  • <a name="video"></a>Video

    • ffmpeg - The Swiss knife of video editing from the command line.
  • <a name="viewers"></a>Viewers

    • cacaview - A library and a program to display JPG, PNG, GIF or BMP images in the terminal using ASCII characters.
    • mplayer - One of the most popular video/audio players around, plays most audio and video formats (using ASCII characters) in the shell, provides a GUI for graphical visualization.
    • mpv - A cross-platform media player with many features such as frame timing, MKV chapters and subtitles. It is a responsive video player with minimal layout customizable with themes. A good alternative media player to VLC since it can handle almost all the media formats as VLC, but using much less resources.
    • TubiTui - A lightweight, libre, TUI-based YouTube client
  • <a name="browser"></a>Web browser

    • asuka - A Gemini Project client written in Rust with ncurses.
    • Bombadillo - A non-web browser, designed for a growing list of protocols operating outside of the web. Currently supports Gemini, Finger and Gopher.
    • browsh - It renders anything that a modern browser can; HTML5, CSS3, JS, video and even WebGL. Its main purpose is to be run on a remote server and accessed via SSH/Mosh or the in-browser HTML service in order to significantly reduce bandwidth and thus both increase browsing speeds and decrease bandwidth costs.
    • Elinks - "Advanced and well-established feature-rich text mode web browser"; started as a fork of `Links`; it supports background download with queueing, some support from CSS, text box editing in external text editor.
    • Links - A textual Web browser with tables and frames.
    • Lynx - A highly configurable text-based web browser, one of the oldest CLI browser I'm aware of.
    • Telescope - Gemini client with UI that is strongly inspired from Emacs and W3M.
    • w3m - A text-based web browser as well as a pager like `less`, it can be used as a text formatting tool which typesets HTML into plain text.
  • <a name="webdev"></a>Web development

    • Hugo - The world's fastest framework for building websites.
    • Mycorrhiza Wiki - A lightweight file-system wiki engine that uses Git for keeping history.
    • siege - An http load testing and benchmarking utility designed to let web developers stress their code.
    • Tsung - A multi-protocol distributed load testing tool that can be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and Jabber/XMPP servers.
  • <a name="writing"></a>Writing

    • Translate Shell - Translator using Google Translate, Bing Translator, Yandex.Translate, etc.
    • Toolleeo’s CLIpedia - Blog with information on CLI apps, screenshots and other details (license, author, etc.).
    • 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.
    • 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.
    • 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.
    • Terminal Trove - Collection of terminal CLI/TUI programs, with one page per program, nice screenshots and animated GIFs.
    • texteditors.org - A huge collection of links to resources on text editor. It contains references to non-CLI programs.
  • <a name="pastebin"></a>Pastebin

    • feuille - A fast, dead-simple socket-based pastebin.
  • <a name="ai"></a>AI / ChatGPT

    • AI - A command-line ChatGPT client in BASH with conversation/completion support.
    • AIChat - Using ChatGPT/GPT-3.5/GPT-4 in the terminal.
    • ata - Ask the Terminal Anything: OpenAI GPT in the terminal.
    • cai - The fastest CLI tool for prompting LLMs. Including support for prompting several LLMs at once!
    • cha - A simple CLI chat tool to easily interface with OpenAI's models.
    • Chatblade - Chatblade is a versatile command-line interface (CLI) tool designed to interact with OpenAI's ChatGPT.
    • chatgpt - Simple command line integration to ChatGPT.
    • ChatGPTerminator - GPTerminator provides a convenient way to interact with OpenAI's chat completion and image generation API's using your command line interface.
    • clai - Command Line AI is a command line integration for openai. It's setup to help you learn new shell commands and construct more complex commands.
    • clevercli - ChatGPT powered CLI utilities. Easily add new prompt types.
    • cligpt - ChatGPT but in the terminal.
    • Elia - A terminal ChatGPT client built with Textual.
    • gemini-cli - A command-line interface (CLI) for Google Gemini.
    • GPTparser - Use GPTparser with your OpenAI API to scrape & parse files into structured JSON files.
    • HAL 2023 - Inspired by the infamous HAL9000, it is a simple script to chat with OpenAI's ChatGPT.
    • ht - A shell command that answers your questions about shell commands using OpenAI GPT.
    • Instrukt - A integrated AI environment in the terminal. Build, test and instruct agents.
    • llm-term - Chat with OpenAI's GPT models directly from the command line.
    • Mods! - AI for the command line, built for pipelines.
    • osh - Ollama Shell Helper (osh): English to Unix-like Shell Commands translation using Local LLMs with Ollama.
    • parllama - TUI designed for easy management and use of Ollama based LLMs.
    • safespace - Your local AI counselor. LLM app that runs offline from a single binary.
    • Sengpt - ChatGPT in your terminal, no OpenAI API key required.
    • ollama - Get up and running with large language models locally.
    • Alibaba-CLI-Scraper - Create your own Alibaba dataset and interact with it in plain English.
    • chat.sh - Pipeable LLM wrapper with code execution (OpenRouter).
    • fabric - An open-source framework for augmenting humans using AI, providing a modular framework for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.
    • genie - Personal assistant for the CLI that helps in tasks such as running commands, generating images and music, summarizing comments.
    • llm-term - A Rust-based CLI tool that generates and executes terminal commands using OpenAI's language models.
    • savvy-cli - Automatically capture and surface your team's tribal knowledge.
  • <a name="flashcard"></a>Anki, decks and flashcards

    • flash-tui - Flashcard app for the terminal.
    • hardv - A CLI flashcard app for UNIX-compatible systems, conforming to the UNIX philosophy.
    • mdfc - Easily create and study flashcards using a Markdown file with spaced repetition.
    • py_flashcards - Text-only CLI flashcards parsed from Markdown file.
    • speki - Manage flashcards in the terminal similar to anki.
    • ToRRential Card processor - A command-line program to add a card to Anki using AnkiConnect API.
    • tui-deck - A TUI frontend for Nextcloud Deck app.
    • vocage - Vocage is a minimalistic terminal-based vocabulary-learning tool. It presents flashcards using a spaced-repetition algorithm (e.g. Leitner). Data is stored in a simple plain-text tab-separated values format (TSV).
  • <a name="vm"></a>Containerization and virtualization

    • docker - Self-sufficient runtime for containers.
    • podman - Podman is a daemonless, open source, Linux native tool designed to make it easy to find, run, build, share and deploy applications using OCI Containers and Container Images.
    • toolbox - Use conteinerized environments where development tools and libraries can be easily installed and used.
    • virsh - An interactive shell, and batch scriptable tool for performing management tasks on all libvirt managed domains, networks, and storage. A part of the libvirt core distribution.
  • <a name="disk-analyzer"></a>Disk usage analyzers

    • cdu - (colored `du`) - a Perl script that calls `du` and displays a pretty histogram with optional colors allowing to immediately see the directories which take most disk space.
    • ncdu - "A disk usage analyzer with a ncurses interface. It is designed to find space hogs on a remote server where you don't have an entire graphical setup available."
  • <a name="time-tracker"></a>Time trackers

    • arbtt - (automatic, rule-based time tracker) runs in the background, collecting information regarding open windows, focused ones, etc.; it can be configured to display statistics on the collected data, e.g., figuring out the time spent on one specific window.
  • <a name="file-dir-cleanup"></a>Clean up of files and directories

    • detox - Easily clean up filenames; it replaces characters like spaces with standard equivalents and UTF-8 or Latin-1 (or CP 1252) characters with more handy ones.
Categories
<a name="graphics"></a>Graphics 43 <a name="music"></a>Sound and music 32 <a name="ai"></a>AI / ChatGPT 30 <a name="calc"></a>Calculators 16 <a name="backup"></a>Backup 16 <a name="networking"></a>Networking 13 <a name="games"></a>Games 12 <a name="writing"></a>Writing 12 <a name="editors"></a>Editors 11 <a name="monitor"></a>System monitoring 10 <a name="todo-manager"></a>Todo managers 10 <a name="transfer"></a>Data transfer 10 <a name="chat"></a>Chat and instant messaging 10 <a name="terminal"></a>Terminals 9 <a name="email"></a>Email 8 <a name="shells"></a>Shells 8 <a name="browser"></a>Web browser 8 <a name="flashcard"></a>Anki, decks and flashcards 8 <a name="security"></a>Security and encryption 8 <a name="programming"></a>Programming 7 <a name="system"></a>System tools 6 <a name="funny"></a>Funny tools 6 <a name="password-manager"></a>Password managers 6 <a name="conversion"></a>Conversion 5 <a name="organizers"></a>Organizers and calendars 5 <a name="webdev"></a>Web development 4 <a name="vm"></a>Containerization and virtualization 4 <a name="data-management"></a>Data management 4 <a name="office"></a>Office tools 4 <a name="file-manager"></a>File manager 4 <a name="rm"></a>File deletion and trash bin (alternatives to rm) 4 <a name="rss"></a>RSS 4 <a name="viewers"></a>Viewers 4 <a name="versioning"></a>Versioning 4 <a name="science"></a>Science 3 <a name="package-manager"></a>Package managers 3 <a name="prompt"></a>Prompts 3 <a name="data-management-tabular"></a>Data management - Tabular data 3 <a name="launcher"></a>Command launchers 3 <a name="file-renamer"></a>File renamers 3 <a name="git"></a>Git and accessories 3 <a name="monitor-top"></a>Process viewers and monitoring (alternatives to top) 3 <a name="text-search"></a>Text search (alternatives to grep) 2 <a name="disk-analyzer"></a>Disk usage analyzers 2 <a name="financial"></a>Financial tools 2 <a name="online"></a>Online search and resources 2 <a name="font"></a>Font management 2 <a name="utility"></a>Utilities 2 <a name="cheatsheet"></a>Commands cheatsheet and snippets 2 <a name="typing"></a>Typing test and practice 1 <a name="file-explorer"></a>File explorer and tree visualization 1 <a name="file-watch"></a>File watching for changes 1 <a name="pastebin"></a>Pastebin 1 <a name="text-processing"></a>Text processing 1 <a name="find"></a>File finding (alternatives to find) 1 <a name="note-taking"></a>Note taking 1 <a name="file-system"></a>File systems 1 <a name="file-dir-cleanup"></a>Clean up of files and directories 1 <a name="file-handling"></a>File and file system handling 1 <a name="video"></a>Video 1 <a name="markdown"></a>Markdown 1 <a name="time-tracker"></a>Time trackers 1 <a name="ls"></a>File listing (alternatives to ls) 1 <a name="torrent"></a>Torrent 1 <a name="cd"></a>Directory changers (alternatives to cd) 1 <a name="data-management-json"></a>Data management - JSON/YAML/etc. 1 <a name="screensaver"></a>Screen savers 1
Sub Categories