data | ||
cli2md.py | ||
Makefile | ||
README.md |
Forewords
This repository contains a list of (mainly) CLI apps with links and a short description.
This updated version of the repository moves the format of data files from YAML to CSV.
This README
file is automatically generated from the .csv
files included in the repository.
To build README.md
run (python3
is required for building):
make
How to contribute
If you have any suggestion or want your project listed here, drop me an email at toolleeo@gmail.com
.
If you want to contribute through a pull request, make sure to add new entries to the correct .csv
file under the data/
directory.
Summary
To date, 478 apps/tools covered, divided in 40 categories.
Index
Backup (8) | Calculators (4) | Chat and instant messaging (8) | Conversion (5) | Data management (22) | Data transfer (22) | Directory changers (7) | Disk usage analyzers (8) | Editors (16) | Email (8) | File and file system handling (27) | File manager (9) | File renamers (6) | File systems (3) | Font management (2) | Funny tools (12) | Games (22) | Git and accessories (14) | Graphics (11) | Networking (11) | Note taking (7) | Office tools (15) | Organizers and calendars (11) | Password managers (9) | Productivity (10) | Programming (12) | Security and encryption (7) | Shells (3) | Sound and music (14) | System monitoring (22) | System tools (12) | Terminals (8) | Text processing (25) | Text search (9) | Todo managers (12) | Utilities (28) | Versioning (5) | Viewers (22) | Web browser (10) | Web development (12)
Some links to related resources.
Backup
- 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.
- bupstash - Easy and efficient encrypted backups.
- duplicity - Creates GPG encrypted, compressed backups; client-side encryption allows to upload the backup onto untrusted servers.
- Duply - Simplifies the use of duplicity by keeping clean configuration files to automate the backup.
- paperbackup - Create a pdf with barcodes to backup text files on paper.
- shallow-backup - Git integrated backup tool.
- Zaloha.sh - Shellscript for synchronization of files and directories.
- zbackup - A globally-deduplicating backup tool, based on the ideas found in rsync.
Calculators
- bcal - Byte CALculator - A REPL CLI utility for storage expression evaluation, SI/IEC conversion, byte address calculation, base conversion and LBA/CHS calculation.
- kalk - Command line calculator that supports math-like syntax with user-defined variables, functions, derivation, integration, and complex numbers.
- Nota - Terminal calculator with rich notation.
- Qalculate - Multi-purpose calculator with customizable functions, units, arbitrary precision, plotting (it includes a GUI).
Chat and instant messaging
- finch - IM program supporting many protocols, including Yahoo!, AIM, IRC, or WLM; comes with the
Pidgin
project. - irssi - The most popular IRC client for the command-line; a flexible program, with many options and supporting many protocols.
- matterhorn - A terminal client for the Mattermost chat system.
- RainbowStream - Twitter client for the terminal; allows almost all the operations that can be done from GUI and Web clients.
- ssh-chat - Custom SSH server written in Go. Instead of a shell, you get a chat prompt.
- tiny - tiny is an IRC client written in Rust.
- tuir. - Reddit TUI
- WeeChat - A "fast, light and extensible chat client".
Conversion
- BaFi - Universal JSON, BSON, YAML, CSV, XML translator to ANY format using templates.
- catdoc - Command line converter from Microsoft Word to plain text; output is sent to the standard output.
- mdBook - Create book from markdown files.
- Pandoc - Universal document file converter; handles input output from/to a number of formats: HTML, PDF, LaTeX, docx, odt, AsciiDoc, Markdown, Textile, just to mention a few; the quality of conversion strongly depends on the combination of input/output formats.
- xls2csv - Command line converter from Excel to CSV file format.
Data management
- csvkit - A suite of command-line tools for converting to and working with CSV, the king of tabular file formats.
- csvq - SQL-like query language for csv.
- dasel - Allows you to query and modify data structures using selector strings.
- datadash - Visualize and graph data in the terminal.
- Dolt - Dolt is Git for Data! Dolt is a SQL database that you can fork, clone, branch, merge, push and pull just like a git repository.
- GNU Recutils - Set of tools and libraries to access human-editable, text-based databases called recfiles.
- gnuplot - Generate two and three dimensional plots of data.
- Graphtage - Graphtage is a commandline utility and underlying library for semantically comparing and merging tree-like structures, such as JSON, XML, HTML, YAML, plist, and CSS files.
- Graphtage - Semantic diff utility and library for tree-like files such as JSON, JSON5, XML, HTML, YAML, and CSV.
- jq - (JSON Query?) is sed-like processor for JSON data; can be used to process JSON files and data streams and perform operations such as those allowed by
cat
,sed
,grep
andawk
on regular text files. - jtc - JSON manipulation and transformation.
- osmf - OpenStreetMap find - A simple command line tool to explore OSM data.
- q - Executes SQL-like queries on CSVs/TSVs tabular data files; each tabular file is treated as a database table; support to all SQL constructs (
WHERE
,GROUP BY
,JOIN
). - sq - Command line tool that provides jq-style access to structured data sources such as SQL databases, or document formats like CSV or Excel.
- tabview - Python curses command line CSV and tabular data viewer.
- TSV Utilities - Command line tools for large, tabular data files.
- TV - Cross-platform CSV pretty printer made to maximize viewer enjoyment.
- usql - Universal command-line interface for SQL databases.
- 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.
- WOPR - A simple markup language for creating rich terminal reports, presentations and infographic.
- xsv - Doing a SQL join with CSV files.
- yq - Portable command-line YAML processor.
Data transfer
- aria2 - Lightweight and easy-to-use download utility; it supports HTTP/HTTPS, FTP, SFTP, BitTorrent, Metalink and multiple sources; cross-platform.
- croc - Easily and securely send things from one computer to another.
- curl - A tool and library for transferring data with URL syntax; supports a lot of protocols.
- Deluge - A lightweight, Free Software, cross-platform BitTorrent client; a terminal curses interface, web interface and command line client can connect to a running daemon to manage torrent downloads.
- lftp - "Sophisticated ftp/http client, and a file transfer program supporting a number of network protocols"; support for bookmarks and mirroring features.
- Magic Wormhole - The program allows transfer arbitrary-sized files and directories (or short pieces of text) from one computer to another The two endpoints are identified by using identical human-readable codes.
- OnionShare - "An open source tool that lets you securely and anonymously share a file of any size."
- qr-filetransfer - Transfer files over WiFi between your computer and your smartphone from the terminal.
- qrcp - Transfer Files Between Desktop And Mobile Devices Over Wi-Fi By Scanning A QR Code.
- rclone - Rclone manages file synchronization on cloud storage.
- rsync - Mirror directories across networked machines; handles diffs/changed files; works across SSH; plenty of parameters.
- rtorrent - Bittorrent client uses ncurses and is ideal for use with tmux, screen or dtach.
- 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".
- Transmission - Fast, easy and free bittorrent client.
- 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.
- xh - xh is a friendly and fast tool for sending HTTP requests. It reimplements as much as possible of HTTPie's excellent design.
- youtube-dl - Downloads videos from YouTube and some other sites; useful for automated bulk downloads.
- yt-splitter - Downloads and splits audio tracks from a YouTube video according to the chapters/tracks. Useful for compilations or full album uploads.
- ytfzf - A POSIX script that helps you find Youtube videos (without API) and opens/downloads them using mpv/youtube-dl.
- ytmdl - Get songs from Youtube in mp3 format.
Directory changers
- broot - A new way to navigate directory trees on linux, made in rust.
- fasd - A Commandline Tool That Offers Quick Access to Files and Directories. It offers quick access to files and directories for POSIX shells. It is inspired by tools like autojump, z and v. Fasd keeps track of files and directories you have accessed, so that you can quickly reference them in the command line.
- Jmp - Change directory with smart searching of the path specified through regex.
- llama - Minimalistic file opener and directory changer focused on fuzzy searching the path.
- pazi - Fast autojump helper.
- SmartCd - A cd command with improved usability features, which can remember your recently visited directory paths and, search and directly traverse to sub-directories and as well as parent directories, all with Fuzzy searching.
- zoxide - A faster way to navigate your filesystem.
Disk usage analyzers
- diskus - Minimal, fast alternative to du -sh.
- dua - Disk Usage Analyzer. Learn about the usage of disk space of a given directory with parallel access to max out SSD exploration.
- duf - Disk Usage/Free Utility.
- Dust - du + rust = dust. Like du but more intuitive.
- dutree - A tool to analyze file system usage written in Rust.
- gdu - Pretty fast disk usage analyzer written in Go. Gdu is intended primarily for SSD disks where it can fully utilize parallel processing. However HDDs work as well, but the performance gain is not so huge.
- ncdu - "A disk usage analyzer with an ncurses interface. It is designed to find space hogs on a remote server where you don't have an entire graphical setup available."
- vizex - Visualize the disk space usage for every partition and media on the user's machine.
Editors
- ash - A simple and clean terminal-based text editor, that aims to be easy to use with modern key-bindings.
- Diakonos - A powerful editor with “standard” keybindings and several advanced features.
- Emacs - One of the godfathers of text editors; free long-standing software project; tons of extensions and funcionalities; the biggest drawback (my taste): it needs E-Lisp for being programmed.
- eon - A light, modern editor for your terminal that doesn't want to be vim.
- 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.
- micro - A terminal-based text editor written in Go that aims to be easy to use and intuitive, while also taking advantage of the full capabilities of modern terminals.
- nano - Easy to use, lightweigth text editor; no complex keybindings to remember.
- neovim - A work in progress attempt to improve vim, dropping older/unused OS compatibility, improving the codebase readability, modularity and maintainability; it has chances to become the next choice of vim users.
- slap - Text editor inspired by Sublime Text written in NodeJS; extedable in Javascript.
- vai - A text editor similar to
vim
written in Python; many feature are nicely replicated, some are still missing; however, the advantage of this implementation is its simplicity, maintainability and extensibility, thanks to the Python implementation. - vim - Historically one of the preferred text editors; behavior based on editing modes; plenty of plugins and tips to address every possible editing problem.
- vis - "a modern, legacy free, simple yet efficient vim-like editor", and more: "The intention is not to be bug for bug compatible with vim, instead a similar editing experience should be provided. The goal could thus be summarized as 80% of vim's features implemented in roughly 1% of the code"; the editor is scriptable in LUA and supports editing large files.
- vy - A vim-like in python made from scratch.
- 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."
- alot - MUA written in Python using the NotMuch backend; MailDir format support.
- 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.
- Mutt - Mail client with tons of features, customization chances, support for IMAP, POP3, multiple storage formats.
- NeoMutt - Patched and up-to-dated mutt fork.
- Newsbeuter - "The Mutt of RSS Feed Readers": Newsbeuter is an open-source RSS/Atom feed reader for text terminals. Has great configurability and vast number of features, making it a slick and fast feed reader that can be completely controlled via keyboard.
- nmail - nmail is a console-based email client for Linux and macOS with a user interface similar to alpine / pine.
- sup - MUA written in Ruby; specifically developed for accounts with "a lot of emails"; nice thread-based presentation.
File and file system handling
- alder - Directory tree visualizer.
- classifier - Organize files in your current directory, by classifying them into folders of music, pdfs, images, etc.
- cobib - Simple, command-line based bibliography management tool.
- cv - (Coreutils Progress Viewer) "looks for coreutils basic commands (
cp
,mv
,dd
,tar
,gzip/gunzip
,cat
, etc.) currently running on your system and displays the percentage of copied data. It can also show estimated time and throughput". - detox - A utility designed to easily clean up filenames; it replaces characters like spaces with standard equivalents; it also replace UTF-8 or Latin-1 (or CP 1252) characters with more handy ones.
- doppelganger - Save and load your shell environment to create doppelganger shells!
- dtrx - (Do The Right eXtraction) aims at taking "all the hassle out of extracting archives"; allows to use one command to extract archives in different formats, recursive extraction (files into file) and extracts files into dedicated directories.
- exa - Replacement for 'ls' written in Rust, with colors and several additional "views".
- FClones - Efficient Duplicate File Finder.
- fd - A simple, fast and user-friendly alternative to find. Written in Rust.
- friendly-find - Usable replacement for find.
- gcp -
gcp
(Goffi’s cp) is an advanced file copier tool, heavily inspired from the traditionalcp
command utility, but with some additional features: Displays the copy progress indicator, with estimated time, current file speed; logs of all actions; resume of interrupted copy processes. - ictree - Like tree but interactive.
- ll - ls with git status.
- nat - Complete replacement for the
ls
command. - PathPicker - A tool from Facebook that parses the output from a command and presents a UI to select files and directories; can be used to apply a command of a interactively selected files or to move across directories.
- progress - A tool to monitor the progress of common Coreutils command-line tools (
cp
,mv
,dd
,tar
,rsync
, etc.); it uses an ncurses interface to display the percentage of data copied; it works by reading from system files and retrieving the necessary information for the estimation. - pycp - cp and mv with a progressbar.
- rip - Safe and ergonomic alternative to rm.
- rmlint - A tool to recursively scan a directory tree looking for duplicate and broken files; it outputs statistics and save the list of files in JSON format; it produce a shell script that can be inspected before running it to delete the desire files.
- tree - "Recursive directory listing command that produces a depth indented listing of files".
- twf - Standalone tree view file explorer.
- vidir - vidir allows editing of the contents of a directory in a text editor.
- watchexec - Executes commands in response to file modifications.
- wfh - Continuously watches your local directories and rsync them against a remote host.
- xcp - Extended cp.
- xplr - A hackable, minimal, fast TUI file explorer, stealing ideas from nnn and fzf.
File manager
- clifm - A CLI-based, shell-like, and non-curses terminal file manager written in C: simple, fast, extensible, and lightweight as hell.
- hunter - Ranger-like file browser written in rust.
- lfm - (Last File Manager) is 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.
- ncursesFM - File manager written in C; rather complete in terms of features; especially lightweight and responsive.
- nnn - "The missing terminal file browser for X". Provides only directory traversal and file visualization. No delete/move operations are supported.
- ranger - Console file manager with vi key bindings; curses interface with a view on the directory hierarchy; comes a file launcher that automatically finds out which program to use for a given file type.
- rnr - The RNR File Manager (RNR's Not Ranger) is a text based file manager that combines the best features of Midnight Commander and Ranger.
- vifm - "ncurses based file manager with vi like keybindings/modes/options/commands/configuration, which also borrows some useful ideas from mutt" (cit.).
File renamers
- F2 - Cross-platform command-line tool for batch renaming files and directories quickly and safely.
- massren - Easily rename multiple files using your text editor.
- mmv - Rename multiple files using your $EDITOR. The command name is named after multi-mv.
- nomino - Batch rename utility for developers.
- rename - Included in
util-linux
, allows bulk rename of files with regex support. - renameutils - A set of programs to change file and directory names by editing them inplace; I find
imv
especially useful to edit a filename at the program prompt.
File systems
- sshfs - Locally mount a remote file-system through SSH and access files and directory as they would be on the local machine.
- 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.
- wutag - CLI Tool for tagging and organizing files by tags.
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 - A program that tries to improve
FIGlet
; can load FIGlet fonts; supports Unicode input and output, colour fonts and output, and various output formats, including HTML, IRC and ANSI; useslibcaca
to produce nice textual effects.
Funny tools
- asciiacquarium - Enjoy the mysteries of the sea from the safety of your own terminal!
- cbonsai - A bonsai tree generator, written in C using ncurses. It intelligently creates, colors, and positions a bonsai tree.
- cli-fireplace - Shows digital fireplace.
- cmatrix - ncurses program that display the scrolling lines found in the movie
The matrix
. - cowsay - A program that generates a ASCII art of a cow with a bubble containing the specified message (I provide the Wikipedia link since at the moment the link to the author's homepage results to be unreachable).
- cowthink - Same as
cowsay
, but uses a "think" bubble instead of a speech bubble. - fortune - Generates random messages feched from a quotation database.
- ponysay - Pony rewrite of cowsay.
- sha256-animation - Animation of the SHA-256 hash function in your terminal.
- Steam Locomotive - A steam locomotive traverses the screen from right to left if
sl
is typed instead ofls
. - ternimal - Simulate a lifeform in the terminal.
- yosay - Like cowsay, but for yeoman.
Games
- Angband - Angband is a free, single-player dungeon exploration game.
- 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.
- chs - Play chess against the Stockfish engine in your terminal.
- clidle - Wordle, now over SSH.
- crappybird-py - Flappy bird.
- Dwarf fortress - A fantasy game using ASCII art graphical representation of the game environment; it features a rich environment with many options and possibilities.
- 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 highscores table.
- gambit - Chess board in your terminal.
- Language-games - Dead simple games made with word vectors.
- minesweeper - Cross-platform terminal based minesweeper.
- Nethack - Single player rogue-like dungeon exploration game.
- Oldrunner - Character-based remake of Lode Runner; includes all the original 150 levels.
- rpg-cli - Your filesystem as a dungeon!
- Slash'EM - Rogue-like game derived from
nethack
offering extra features, monsters, and items; includes a GUI version. - StarWars vision - See Star Wars in ASCII with
telnet towel.blinkenlights.nl
. - Terminal Phase - A space shooter game you can play in your terminal.
- terminal_board_games - Board games for the terminal.
- terminordle - Inspired by the popular online game wordle made, you can play a pretty close replica of the original locally or multiplayer over the network.
- 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.
- usolitaire - Solitaire in your terminal.
- wordle-curses - A simple TUI wordle game with curses.
Git and accessories
- forgit - A utility tool powered by fzf for using git interactively.
- gh-f - The ultimate, compact and snappy fzf extension for gh cli.
- 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. - git-extras - Little git extras like git-ignore, git-setup, git-changelog, git-release, git-effort and more.
- git-peek - git peek is the fastest way to open a remote git repository in your local text editor.
- git-stats - Local git statistics including GitHub-like contributions calendars.
- Gitea - Single binary self-hosted Git service.
- gitui - GitUI provides you with the comfort of a git GUI but right in your terminal
- grv - Git Repository Viewer - A terminal based interface for viewing Git repositories. It allows refs, commits and diffs to be viewed, searched and filtered.
- onefetch - Git repository summary on your terminal.
- sad - CLI search and replace. Show you a nice diff of proposed changes before you commit them.
- Soft Serve - Self-hostable Git server for the command line. One distinguished feature is the possibility to create new repositories with a push.
- tig - An ncurses-based text-mode interface for
git
that can act as a repository browser, but can also assist in staging changes for commit at chunk level.
Graphics
- chafa - Terminal graphics for the 21st century.
- cli-mandelbrot - A cli for traversing the Mandelbrot fractal.
- givegif - GIFs on the command line.
- GraphicsMagick - Swiss army knife of image processing.
- 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".
- imgcat - Tool to output images in the terminal. Built with bubbletea.
- imgp - A command line image resizer and rotator for JPEG and PNG images. It can resize (or thumbnail) and rotate thousands of images in a go, at lightning speed, while saving significantly on storage.
- inklayers - A command line program that exports layers from an SVG file. It can be used to create slide shows by editing a single SVG file.
- pastel - A command-line tool to generate, analyze, convert and manipulate colors.
- scrot - A simple CLI tool to capture screenshots.
- svgcleaner - Clean up your SVG files from the unnecessary data.
Networking
- bandwhich - Terminal bandwidth utilization tool.
- geoiplookup - a little application to find geographical and network information of an IP address based no the geoip C API.
- ipcalc - "ipcalc takes an IP address and netmask and calculates the resulting broadcast, network, Cisco wildcard mask, and host range."
- mitmproxy - An interactive HTTPS proxy.
- PSSH - PSSH provides parallel versions of OpenSSH and related tools. Included are pssh, pscp, prsync, pnuke, and pslurp. The project includes psshlib which can be used within custom applications.
- quickserve - Quickserve is a very simple HTTP server written in Python that is intended for quickly sharing files on an ad-hoc basis. Aside from opening a port in your firewall if you have one, quickserve requires no set-up and should work with no hassle.
- rtop - rtop is a simple, agent-less, remote server monitoring tool that works over plain SSH. Written in golang, 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.
- Rustcat - Netcat Alternative in Rust.
- speedtest-net - Test internet connection speed and ping using speedtest.net.
- termishare - Peer to peer terminal sharing.
- xxh - Bring your favorite shell wherever you go through the ssh.
Note taking
- cadmus - Shell Scripts to Facilitate Effective Note Taking.
- dn - Daily notes command line tool.
- eureka - Store your ideas without leaving the terminal.
- jnrl - Collect your thoughts and notes without leaving the command line.
- kb - A minimalist knowledge base manager.
- posce - A note-taking toolkit for your command line.
- Standard Unix Notes - GPG Encrypted Notes/Notebook manager for BSD/Linux.
Office tools
- bib.awk - Bibliography manager written in awk.
- conan - Find clue about the type of the file.
- conrad - Track conferences and meetups.
- mdp - A command-line based markdown presentation tool.
- papis - Extensible document and bibliography manager.
- Quoter - The console based stock quote tool.
- sc-im - Spreadsheet Calculator Improvised -- An ncurses spreadsheet program for terminal. It is rich in functionalities, but the syntax of functions and other details are different from the common spreadsheets such as Excel and Calc, making difficult to "re-cycle" existing knowledge on these programs to work proficiently with sc-im. Neverthless, a nice piece of software."
- scholarref - Tools to never deal with journal webpages again.
- sent - Simple plaintext presentation tool.
- Teapot - Compact ncurses-based spreadsheet with original syntax, 3D-style and built-in functions.
- Ticker - Terminal stock watcher and stock position tracker.
- tpp - (text presentation program) a ncurses Ruby program that allows to produce nice text-based presentation with simple markup language.
- translate-shell - Command-line translator using Google Translate or other online services.
- trino - Quick and easy translation of words and phrases entered in the command line.
- wikit - A command line program for getting Wikipedia summaries easily.
Organizers and calendars
- buku - A powerful bookmark manager written in Python3 and SQLite3.
- calcurse - A calendar and scheduling application for the command line. It helps keep track of events, appointments and everyday tasks.
- gcalcli - CLI to access Google Calendars; allows to do the main tasks: create, delete, and list events.
- goobook - The purpose of GooBook is to make it possible to use your Google Contacts from the command-line and from MUAs such as Mutt. It can be used from Mutt the same way as abook.
- khal - CLI and terminal calendar program, able to synchronize with CalDAV servers through vdirsyncer.
- khard - Console carddav client written in Pyhton.
- Org mode - Super-powerful Emacs plugin to manage outlines with associated timestamps, priorities, labels, etc.; available views grouped by time (agenda), tags, etc.; plain text storage format.
- pal - Calendar program for Unix/Linux systems that can keep track of events; custom, plain text storage format; interesting and fully functional.
- ppl addressbook -
ppl
is free software made out of other free software. It's built on top of Ruby and Git, and the completely free vcard address book format. - Remind - Calendar program with possibility to set complex rules to define events; custom, powerful text-based storage format.
- Wyrd - Curses front-end for Remind written in OCaml with vertically scrollable time table.
Password managers
- cpass - Another console UI for pass.
- dpg - The Deterministic Password Generator - Generates passwords based on a master password and the indication of the website/service/username, without the need of storing anything.
- 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.
- hide - AES-256 bit encrypted password manager with all encrypted passwords stored locally on your machine
- kpcli - A command line interface for KeePass.
- pass - With pass, each password lives inside of 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.
- safe.sh - Pure Bash script to manage secure archives; simple and clean; uses gnugpg for encryption/decryption, thus can leverage tools like GPG Agent.
- SpicyPass - A light-weight password manager with a focus on simplicity and security.
- 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.
Productivity
- arbtt - (automatic, rule-based time tracker) runs in background, collecting information regarding open windows, focussed ones, etc.; it can be configured to display statistics on the collected data, e.g., figuring out the time spent on one specific window.
- Bartib - Easy to use time tracking tool for the command line. It saves a log of all tracked activities as a plaintext file and allows you to create flexible reports.
- cowyo - Feature rich wiki webserver for minimalists.
- dijo - Scriptable, curses-based, digital habit tracker.
- gdir - A command line tool which queries Google Directions. The tool displays results as human-readable text.
- habitctl - Minimalist command line tool you can use to track and examine your habits.
- ledger - A powerful, double-entry accounting system from the command-line; it uses a simple yet powerful text syntax to specify the items to account.
- Translate Shell - Command-line translator using Google Translate, Bing Translator, Yandex.Translate, etc.
- tuxi - A CLI tool that scrapes Google search results and SERPs that provides instant and concise answers.
- Watson - Time tracking CLI to know how much time you are spending on your projects. It can generate nice reports for clients.
Programming
- dtool - Collection of development tools.
- gdb-dashboard - Modular visual interface for GDB in Python.
- hors - Instant coding answers via the command line.
- kickstart - Scaffolding tool to get new projects up and running quickly.
- license-up - Create a license quickly for a given name.
- nbterm - Jupyter Notebooks in the terminal.
- Proji - Powerful cross-platform CLI project templating tool.
- pvcheck - A tool to apply automated testing to programs that produce textual output. The format of the output is very specific, making pvcheck suitable to test programming quizzes.
- rr - Debug the recording, deterministically, as many times as you want.
- scc - Very fast accurate code counter with complexity calculations and COCOMO estimates.
- scons - Software construction tool.
- temci - Advanced benchmarking tool written in Python 3 that supports setting up an environment for benchmarking and the generation of visually appealing reports.
Security and encryption
- cipher - An Ash module that makes it easy to perform aes-256-cbc encryption for files and directories.
- encfs - Encrypted filesystem in user-space based on 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).
- 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.
- wifi-password - Get wifi pass.
Shells
- Bash - (Bourne Again SHell) The most widespread system shell to date.
- Fish - "A command line shell for the 90s"; focused on user-friendliness, with powerful autosuggestions, colors, "sane scripting" (w.r.t. to Bash).
- Zsh - Alternative shell designed for interactive use.
Sound and music
- Alsamixer - ALSA mixer with curses interfaces.
- castero - A TUI podcast client for the terminal.
- cmus - A fast and lightweight audio player with configurable keybindings and playlist support.
- espeak - A compact open source software speech synthesizer for English and other languages.
- kord - A python framework that provides programmers with a simple api for the creation of music-based applications.
- MOC - (music on console) is 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.
- mpg123 - Quick
mp3
sound file player; no visual interface, just a command-line audio file player formp3
files. - mps-youtube - A curses player for music tracks from Youtube; it allows to search for songs and playlists; it downloads the video, extracts the audio track and plays it; handles local playlists and many configuration parameters.
- muCLIar - YouTube automator bringing you your music right on your CLI.
- 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, 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 openogg
file format. - Siren - Siren is a text-based audio player for UNIX-like operating systems.
- yt-audio - A simple, configurable youtube-dl wrapper to download and manage youtube audio.
System monitoring
- below - A time traveling resource monitor for modern Linux systems
- bpytop - Linux/OSX/FreeBSD resource monitor with a nice interface.
- dmidecode - System information utility.
- glances - A comprehensive and detailed system monitoring tool; monitored parameters include: CPU, memory, load, process list, network interfaces, disk I/O, sensors, filesystems, docker, system info, uptime.
- htop - An interactive process viewer for Unix; improves the UI of
top
, by adding real-time meters and colors. - inxi - A comprehensive system information script; provides information about CPU, graphics, audio and network devices, drives and partitions, sensors; implemented as a Bash script.
- iotop - "A Python program with a top like UI used to show of behalf of which process is the I/O going on".
- lfs - A thing to get information on your mounted disks
- multitail - A command to open multiple log files in a single terminal window and monitor them in real-time.
- neofetch - Neofetch is a CLI system information tool written in BASH. Neofetch displays information about your system next to an image, your OS logo, or any ASCII file of your choice.
- ngrep - (Network grep) applies the
grep
logic to the network layer, allowing to match regular expressions against data payloads of packets; it recognizes IPv4/6, TCP, UDP, ICMPv4/6, IGMP and Raw across Ethernet, PPP, SLIP, FDDI, Token Ring and null interfaces. - noti - Monitor a process and trigger a notification.
- powertop - A
top
-like utility to monitor the sources of power consumption; allows to turn on/off many components; quite useful to track possible power-related issues. - screenFetch - It can be used to generate one of those nifty terminal theme information + ASCII distribution logos. It auto-detects the distribution and display an ASCII version of that distribution's logo and some valuable information to the right.
- 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.
- sysdig - Sysdig captures system calls and events from the Linux kernel. You can save, filter, and analyze the data with our CLI or our desktop app. Think of sysdig as strace + tcpdump + htop + iftop + lsof + wireshark for your entire system.
- top - The classical Unix utility that provides a rolling display of top cpu using processes.
- 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“).
- 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.
- whowatch - Monitor Linux Users and Processes in Real Time.
- wtf - The personal information dashboard for your terminal.
- ytop - TUI system monitor written in Rust.
System tools
- Bevel - Command line history in an SQLite database for effective re-use.
- bin - Manages binary files downloaded from different sources.
- conspy - "Conspy allows a (possibly remote) user to see what is displayed on a Linux virtual console, and send keystrokes to it."
- docker - Self-sufficient runtime for containers.
- hstr - A tool for managing the history; powerful visual search and execution of previous commands; history editing capabilities.
- 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.
- mackup - Keep your application settings in sync (OS X/Linux).
- nala - apt package manager front-end with cleaner interface.
- Ntfy - Cross-platform Python utility that enables you to automatically get desktop notifications on demand or when long running commands complete. It can as well send push notifications to your phone once a particular command completes.
- 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.
- stew - An independent package manager for compiled binaries.
- task-spooler - A Unix batch system that can be used to add the Linux commands to the queue and execute them one after the other in numerical order (ascending order, to be precise). This can be very useful when you have to run a lots of commands, but you don't want to waste time waiting for one command to finish and run the next command. You can queue it all up and Task Spooler will execute them one by one. In the mean time, you can do other activities.
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
andtmux
. - dtach - A program written in C that emulates the detach feature of screen.
- mtm - Micro Terminal Multiplexer - Simple but usable, stable and minimalistic terminal multiplexer.
- mx - A tmux session manager written as a single Bash script.
- screen - Terminal multiplexer that split a physical terminal between several processes, typically interactive shells.
- Tmate - A fork of tmux that allows to share 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
andemacs
key-bindings, search in window feature and many more. - warp - Secure and simple terminal sharing.
Text processing
- amber - Code search / replace tool.
- anew - Tool for adding new lines to files, skipping duplicates.
- brok - Find broken links in text documents.
- ccat - A
cat
command with colorized output. - deadlink - Parses text files for HTTP URLs and checks if they are still valid. Good to use on markdown documentation files.
- delta - A syntax-highlighter for git and diff output.
- diff-so-fancy - Make your diffs human readable instead of machine readable.
- Difftastic - Syntax-aware structured diff tool.
- espanso - Cross-platform Text Expander written in Rust. Not limited to the command line.
- fastmod - A tool to assist you with large-scale codebase refactors, and it supports most of codemod's options. It is focused on improving the use case "I want to use interactive mode to make sure my regex is correct, and then I want to apply the regex everywhere".
- fzf - (FuZzy Finder) is a general-purpose command-line finder with fuzzy search/filter capabilities; good integration with
vim
. - fzy - Better fuzzy finder.
- grc - (Generic Colouriser) can be configured to parse a given text stream and to colorize it according to regexp written in configuration files; different patterns can be associated to file types.
- hck - A sharp cut clone.
- huniq - Command line utility to remove duplicates from the given input. Note that huniq does not sort the input, it just removes duplicates.
- lolcat - Ruby Gem to colorize the output of the cat command.
- luneta - Interactive filter that can be easily composed within any script.
- ov - Feature-rich terminal-based text viewer.
- percol - A Python script that "1) receives input lines from
stdin
or a file, 2) lists the input lines and waits for input that filter/select the line(s), 3) outputs the selected line(s) tostdout
"; can be used to add interactivity to many regular shell commands. - pick - Utility that allows users to choose one option from a set of choices using an interface with fuzzy search functionality.
- sd - s[earch] & d[isplace] - An intuitive find & replace CLI; a possible replacement for sed.
- skim - Fuzzy Finder in rust.
- squeeze - Enables to extract rich information from any text (raw, JSON, HTML, YAML, etc).
- teip - Select partial standard input and replace with the result of another command.
- ydiff - View colored, incremental diff.
Text search
- ack - A tool like
grep
optimized for programmers; written in Perl, it speeds up searches thanks to skipping non interesting directories, such as.git
. - ag - (The silver searcher) is a text search utility targeted to source code; it skips versioning systems data directories; it is inspired by
ack
, but faster. - jiq - jid on jq - interactive JSON query tool using jq expressions.
- 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.
- ripgrep - Recursively searches directories for a regex pattern.
- ripgrep-all - grep in text files but also search in PDFs, E-Books, office documents, zip, tar.gz, etc.
- sift - Fast and powerful open source alternative to grep; it targets flexibility and performance: can be as fast as "regular" grep and allows to specify complex expressions to find text.
- todocheck - Static code analyzer for annotated TODO comments.
- vgrep - User-friendly pager for grep.
Todo managers
- CLI-Manager - Command Line Interface for managing tasks locally on the fly.
- dstask - Single binary terminal-based TODO manager with git-based sync + markdown notes per task.
- grit - A multitree-based personal task manager.
- iKog - A fully-featured task manager incapsulated 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.
- taskbook - Tasks, boards & notes for the command-line habitat.
- taskell - Interactive kanban board/task manager.
- 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.
- todolist - A minimal clone of Wunderlist, with 30% of its features. GTD oriented. It stores the task list in a hidden JSON file in the home directory, making it easy to backup or share them.
- todotxt-machine - Interfacce for todo.txt.
- TuDu - A comand line interface to 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.
- 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.
Utilities
- arch-wiki - Search the Arch Wiki anywhere from the command line.
- asciinema - Terminal session recorder.
- chars - Display names and codes for various ASCII (and unicode) characters / code points.
- dasht - Search API docs offline, in your terminal or browser.
- 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.
- ddgr - A command line utility to search DuckDuckGo (html version) from the terminal.
- eg - Useful examples at the command line.
- element - Periodic table on the command line.
- Gaze - Runs a command, right after you save a file.
- googler - Google Search, Google Site Search, Google News from the terminal.
- GoTTY - A program to turn CLI tools into web applications; basically, it runs a command and starts a server so that the output can be displayed in a web page.
- grex - A command-line tool for generating regular expressions from user-provided test cases.
- just - Handy way to save and run project-specific commands.
- kmdr-cli - The CLI tool for explaining commands from your terminal.
- navi - An interactive cheatsheet tool for the command-line.
- pbgopy - Copy and paste between devices.
- pdd - Tiny date, time diff calculator.
- pire - Python Interactive Regular Expressions.
- pmenu - A dynamic terminal-based menu inspired by dmenu.
- powerline - Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome and Qtile.
- rofi - A window switcher, application launcher and dmenu replacement.
- so - Terminal interface for Stack Overflow.
- socli - Stack overflow command line client written in Python. Search and browse stack overflow without leaving the terminal
- Starship - The cross-shell prompt for astronauts.
- tealdeer - Very fast implementation of tldr in Rust.
- termsaver - termsaver to enjoy fancy ASCII screensavers like matrix, clock, starwars, and a couple of not-safe-for-work screens.
- Viddy - Modern watch command. Time machine and pager etc.
- yank - Reads input from stdin and display a selection interface that allows a field to be selected and copied to the clipboard.
Versioning
- Bazaar - Multiplatform version control system supporting diffferent workflows; it is part of the GNU Project, and it is free software sponsored by Canonical.
- fossil - A simple, high-reliability, distributed software configuration management system with these advanced features: project management, built-in web interface, friendly self-hosting, simple networking, all-in-one standalone executable, and much more.
- gee - CLI repository manager and automation tool written in rust.
- Gistup - Create a gist from terminal, then use git to update it.
- Mercurial - Free, distributed source control management tool.
Viewers
- Awesome CLI - Awesome CLI is a simple command line tool to give you a fancy command line interface to dive into Awesome lists.
- bat - A cat clone with syntax highlighting and Git integration.
- cacaview - A library and a program to display JPG, PNG, GIF or BMP images in the terminal using ASCII characters.
- feh - "X11 image viewer aimed mostly at console users" (cit.); with no fancy GUI, it is controlled via commandline arguments and configurable key/mouse actions.
- fx - Command-line JSON viewer.
- glow - Render markdown on the CLI, with pizzazz!
- haxor-news - Browse Hacker News like a haxor: A Hacker News command line interface (CLI).
- hexyl - Command-line hex viewer.
- jc - Serializes the output of command line tools to JSON.
- jless - Command-line JSON viewer designed for reading, exploring, and searching through JSON data.
- jqview - Simplest possible native GUI for inspecting JSON.
- mdt - MarkDown in the Terminal. A markdown viewer with themes defined by JSON files and interactive mode to open links and word-wrapping adaptable to the terminal width.
- 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.
- mupdf - Lightweight graphical PDF visualizer; strong key-based control; fast and accurate rendering.
- Terminal Markdown Viewer - Python based Markdown viewer for the terminal.
- TerminalImageViewer - Small C++ program to display images in a (modern) terminal using RGB ANSI codes and unicode block graphics characters.
- termv - A terminal iptv player written in bash.
- texel - Command line interface for reading spreadsheets inside terminal.
- viu - Command-line application to view images from the terminal written in Rust.
- youtube-viewer - Lightweight application that searches and streams videos from YouTube.
- zathura - Plugin based document file visualizer (PDF, DejaVu, PS); strongly key-based control.
Web browser
- Amfora - Amfora aims to be the best looking Gemini client with the most features. It does not support Gopher or other non-Web protocols.
- Bombardillo - 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.
- cli-arxiv - CLI tool for exploring arXiv.
- 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. - Graphene - A text-based web browser that's a joy to use.
- 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.
- s - Web search from the terminal. Just opens in your browser.
- 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.
Web development
- ain - An HTTP API client for the terminal.
- http-tanker - Terminal application used for API testing; easily create, manage and execute http requests from the terminal.
- Hugo - The world’s fastest framework for building websites.
- linkchecker - Check links in web documents or full websites.
- lychee - Fast, async, resource-friendly link checker written in Rust.
- Metalsmith - An extremely simple static site generator; all functionalities are provided by plugins that can be combined and chained; written and extendable in Javascript.
- Mycorrhiza Wiki - A lightweight file-system wiki engine that uses Git for keeping history.
- nanoc - Static site generator written in Ruby; extremely powerful and customizable; support many formats to generate HTML content.
- siege - An http load testing and benchmarking utility designed to let web developers stress their code.
- snallygaster - Tool to scan for secret files on HTTP servers.
- Tsung - A multi-protocol distributed load testing tool that can be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and Jabber/XMPP servers.
- urlhunter - Recon tool that allows searching on URLs that are exposed via shortener services.
Related resources
A list of some online resoures that contribute interesting links to apps and info.
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.