Awesome
Awesome Command Line (CLI/TUI) Programs
This repository - to the best of my knowledge - contains the largest collection of command line (CLI/TUI) tools available in the form of awesome list. With source information maintained in a handy CSV file.
To contribute, see the contribution section. Read the instructions before rushing at changing the README file: you must edit the CSV files, not the README!
Some links are available to related resources.
Summary:
- Apps/tools: 1640
- Categories: 77
Contents
- AI / ChatGPT (31), Anki, decks and flashcards (8)
- Backup (16)
- Calculators (16), Chat and instant messaging (34), Clean up of files and directories (12), Co-pilot (10), Command launchers (21), Commands cheatsheet and snippets (24), Containerization and virtualization (22), Conversion (14)
- Data management (16), Data management - JSON/YAML/etc. (44), Data management - Tabular data (28), Data transfer (44), DevOps (8), Diff (11), Directory changers (alternatives to cd) (21), Disk usage analyzers (12)
- Editors (27), Email (17)
- File and file system handling (22), File deletion and trash bin (alternatives to rm) (13), File explorer and tree visualization (11), File finding (alternatives to find) (8), File listing (alternatives to ls) (9), File manager (21), File renamers (14), File systems (4), File watching for changes (7), Financial tools (15), Font management (4), Funny tools (35), Fuzzy finders and option pickers (15)
- Games (55), Git and accessories (56), Graphics (43)
- History management (4)
- Markdown (11)
- Networking (79), Note taking (26)
- Office tools (15), Online search and resources (23), Organizers and calendars (22)
- Package managers (20), Password managers (22), Pastebin (3), Process viewers and monitoring (alternatives to top) (26), Productivity (10), Program templates and boilerplate (12), Programming (44), Prompts (15)
- RSS (10), Religion (4)
- Science (20), Screen recorder (10), Screen savers (6), Security and encryption (35), Shells (25), Sound and music (53), System monitoring (32), System tools (31)
- Terminals (22), Text processing (46), Text search (alternatives to grep) (12), Text search and replace (alternatives to sed) (6), Time trackers (21), Todo managers (35), Torrent (8), Typing test and practice (14)
- Utilities (43)
- Versioning (9), Video (12), Viewers (30)
- Web browser (18), Web development (29), Writing (9)
<a name="ai"></a>AI / ChatGPT
Interfaces and front-ends to GPT engines and other tools powered by artificial intelligence and Natural Language Processing.
- AI - A command-line ChatGPT client in BASH with conversation/completion support.
- AIChat - Using ChatGPT/GPT-3.5/GPT-4 in the terminal.
- Alibaba-CLI-Scraper - Create your own Alibaba dataset and interact with it in plain English.
- 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.
- chat.sh - Pipeable LLM wrapper with code execution (OpenRouter).
- 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.
- 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.
- gemini-cli - A command-line interface (CLI) for Google Gemini.
- genie - Personal assistant for the CLI that helps in tasks such as running commands, generating images and music, summarizing comments.
- gpterm - Yet another command-line ChatGPT frontend written in Rust.
- 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.
- llm-term - A Rust-based CLI tool that generates and executes terminal commands using OpenAI's language models.
- Mods! - AI for the command line, built for pipelines.
- ollama - Get up and running with large language models locally.
- 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.
- savvy-cli - Automatically capture and surface your team's tribal knowledge.
- Sengpt - ChatGPT in your terminal, no OpenAI API key required.
<a name="flashcard"></a>Anki, decks and flashcards
Manage decks of flashcards and Anki decks.
- 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="backup"></a>Backup
Tools to manage the backup of files and directories.
- autorestic - A wrapper around the restic 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.
- bupstash - Easy and efficient encrypted backups.
- Crestic - Configurable Restic Wrapper.
- duplicity - Creates GPG encrypted, compressed backups; client-side encryption allows uploading the backup onto untrusted servers.
- Duply - Simplifies the use of duplicity by keeping clean configuration files to automate the backup.
- gwbackupy - Open source Google Workspace™ backup solution.
- 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.
- paperbackup - Create a PDF with barcodes to backup text files on paper.
- rdiff-backup - Reverse differential backup tool, over a network or locally, using the same protocol as rsync to transfer and store data.
- Restic - A backup program that is fast, efficient, and secure.
- 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.
- zbackup - A globally-deduplicating backup tool, based on the ideas found in rsync.
<a name="calc"></a>Calculators
Calculators for mathematical operations among numbers, dates, base conversions, etc..
- 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.
- 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.
- mdlt - A lightweight command line tool that lets you perform arithmetic and symbolic math operations right from the terminal.
- Nota - Terminal calculator with rich notation.
- 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.
- Qalculate - Multi-purpose calculator with customizable functions, units, arbitrary precision, plotting (it includes a GUI).
<a name="chat"></a>Chat and instant messaging
Clients for chat and other instant messaging protocols, e.g., IRC, Discord, Mattermost, Matrix, Slack, Telegram, Reddit.
- 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.
- finch - IM program supporting many protocols, including Yahoo!, AIM, IRC, or WLM; comes with the
Pidgin
project. - 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.
- gomuks - A terminal based Matrix client written in Go.
- iamb - A Matrix client for the terminal that uses Vim keybindings.
- irssi - The most popular IRC client for the command-line; a flexible program, with many options and supporting many protocols.
- kirc - A tiny IRC client written in POSIX C99.
- matrix-commander - Simple but convenient CLI-based Matrix client app for sending and receiving.
- matrixcli - A minimal command line matrix client.
- matterhorn - A terminal client for the Mattermost chat system.
- 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.
- PingMe - Sends messages or alerts to multiple messaging platforms & email, including Slack, Telegram, Mattermost, WeChat, and others.
- 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.
- scli - A simple terminal user interface for signal messenger.
- senpai - A modern terminal IRC client.
- Servitor - A command-line Fediverse client that doesn’t require a server.
- sic - sic is an extremely simple IRC client. It consists of less than 250 lines of code.
- signal-cli - signal-cli provides an unofficial command-line, dbus and JSON-RPC interface for the Signal messenger.
- ssh-chat - Custom SSH server written in Go. Instead of a shell, you get a chat prompt.
- Telegram messenger CLI - Command-line interface for Telegram using the readline interface.
- tgbounce - Simple Telegram Assistant that allows replying to messages, clicking buttons from bots, marking messages as read, logging notable messages, and providing desktop notifications, among other features.
- tiny - tiny is an IRC client written in Rust.
- toot - Mastodon CLI & TUI.
- toxic - A Tox-based instant messaging and video chat client.
- ttchat - Twitch chats in the terminal.
- TUIR - Text-based interface (TUI) to view and interact with Reddit from your terminal; TUIR is a fork of rtv, featuring vim keybindings and themes.
- tut - TUI for Mastodon with vim inspired keys.
- tweets - Decentralized alternative to Twitter that uses git as support tool to manage the tweets.
- twitch-tui - Twitch chat in the terminal.
- WeeChat - WeeChat is a fast, light and extensible chat client, with a text-based user interface, designed to be light and extensible: a lightweight core with optional plugins.
- Weechat-Matrix - A Python script for Weechat that lets Weechat communicate over the Matrix protocol.
<a name="file-dir-cleanup"></a>Clean up of files and directories
Find/remove duplicate files, automatically organize files, etc..
- backdown - Safely and ergonomically remove duplicate files
- classifier - Organize files in your current directory, by classifying them into folders of music, PDFs, images, etc.
- czkawka - Remove unnecessary files from your computer
- 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.
- Dext - (Directories by Extensions) is a script that moves (or copies) files of the same extension into a folder.
- FClones - Efficient Duplicate File Finder.
- Framed - A CLI tool that simplifies the organization and management of files and directories in a reusable and architectural manner.
- inventory - Move files like an old text adventure.
- mat2 - Metadata removal tool, supporting a wide range of commonly used file formats.
- organize-cli - Organize your files automatically.
- rmlint - Recursively scan a directory tree looking for duplicate and broken files; it outputs statistics and save the list of files in JSON format and produces a shell script that can be inspected before running it to delete the desire files.
- smash - Smash through to find duplicate files super fast by slicing files intelligently.
<a name="copilot"></a>Co-pilot
Programs that use GPT and GPT-like engines to generate commands at the command line or code in general from natural language.
- aider - aider is AI pair programming in your terminal.
- aido-cli - Looks another interface to online GPT models to execute command through natural language. Very poor documentation and readme, though.
- aish - A program that retrieve shell script one-liners, ready to be executed in the terminal.
- CLI Co-Pilot - CLI tool that uses GPT4 to turn natural language commands into their Bash/ZShell/PowerShell equivalents.
- codemancer - Code with GPT-4 from your command line.
- Commandpilot - An assistant which uses ChatGPT to aid in constructing commands for bash.
- gpt-do - This is a handy-dandy CLI for when you don't know wtf to do; instead of furiously grepping through man pages, simply use do (or ddo if on bash/zsh), and have GPT-3 do all the magic for you.
- Llama Terminal Completion - Application that interacts with the llama.cpp library to provide virtual assistant capabilities through the command line. It allows you to ask questions and receive intelligent responses, as well as generate Linux commands based on your prompts.
- Open Interpreter - OpenAI's Code Interpreter in your terminal, running locally.
- Yai - Yai (your AI) is an assistant for your terminal, using OpenAI ChatGPT to build and run commands for you.
<a name="launcher"></a>Command launchers
Applications to launch/execute programs, either interactively, automatically, in parallel, etc..
- climenu - Compact application for creating shell menus with executable entries. Use it to build straightforward static shortcut menus or dynamically generate advanced menus for more complex programs.
- entr - Event Notify Test Runner - Run an arbitrary command when files change.
- foy - A simple, light-weight, type-friendly and modern task runner for general purpose.
- Gaze - Runs a command, right after you save a file.
- hypershell - Spawn shells anywhere. Fully peer-to-peer, authenticated, and end-to-end encrypted.
- lmt - A program that can be used to run applications with resource limits enforced using cgroupsv2 on Linux; it allows setting limits on CPU usage, memory usage, and the number of cores for a process.
- Marker - The terminal command palette.
- 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.
- mprocs - mprocs runs multiple commands in parallel and shows output of each command separately.
- Mxflow-cli - A modern, general purpose CLI task runner with human-readable YAML config file.
- 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.
- procmux - A TUI utility for running multiple commands in parallel in easily switchable terminals.
- pueue - Pueue is a command-line task management tool for sequential and parallel execution of long-running tasks.
- rofi - A window switcher, application launcher and dmenu replacement.
- sake - A command runner for local and remote hosts. You define servers and tasks in sake.yaml file and then run the tasks on the servers.
- shell2http - Executing shell commands via HTTP server.
- Sway-Talisman - Terminal application launcher in scratchpad, minimalist and native.
- Task - A task runner / simpler Make alternative written in Go.
- 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 lot 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.
- taverner - CLI launcher menu for games (or anything), the UNIX way.
- Violet - Colorful TUI frontend to run Vagrant commands.
<a name="cheatsheet"></a>Commands cheatsheet and snippets
Tools to manage often used commands, code snippets, and alternative manual pages.
- asciit - A more compact and intuitive ASCII table in your terminal: an alternative to "man 7 ascii" and "ascii".
- carapace - Carapace provides argument completion for multiple CLI commands and works across multiple POSIX and non-POSIX shells.
- cheatshh - A fzf based cheatsheet to store commands and their descriptions in a place you can look into so you dont have to remember them.
- cmdCompass - Cross-platform terminal command manager/notebook with features like custom collections, tagging, variable substitution, and integrated man page with option highlighting.
- docfd - TUI fuzzy document finder that looks for documentation files in Markdown and txt format in the directory tree.
- eg - Useful examples at the command line.
- ehh - Command-line tool for remembering Linux/terminal commands.
- fzf-help - An fzf extension that allows you to select command line options of a given command; the options are retrieved from the command its
--help
documentation. - halp - halp aims to help find the correct arguments for command-line tools by checking the predefined list of commonly used options/flags.
- IntelliShell - Like IntelliSense, but for shells, acting like a bookmark store for commands.
- kmdr-cli - The CLI tool for explaining commands from your terminal.
- ManPDF & ManWEB - Read your Man pages in PDF format. Even online!
- MUC - Visualize your most used commands.
- Nap - Code snippet manager that allows creating and access new snippets quickly with the command-line interface or browse, manage, and organize them with the text-user interface.
- navi - An interactive cheatsheet tool for the command-line.
- pet - Pet is a simple command-line snippet manager, written in Go.
- Runme - DevOps notebooks built with Markdown.
- snip - A snippet manager for bash, mostly written in pure bash.
- tealdeer - Very fast implementation of tldr in Rust.
- The Fuck - Magnificent app which corrects your previous console command (although I would be extra-cautious at making a program to automatically infer what I was intending).
- tldr - Client for tldr pages, a community effort to simplify the beloved man pages with practical examples.
- tlrc - Official tldr client written in Rust.
- topalias - Linux alias generator from bash/zsh command history with statistics, written on Python.
- Wat - Instant, central, community-built docs.
<a name="vm"></a>Containerization and virtualization
Tools to manage virtual machines and/or containers and related utilities.
- bocker - Docker implemented in around 100 lines of bash.
- ContainerSSH - An SSH Server that Launches Containers in Kubernetes and Docker on demand.
- ctop - Top-like interface for container metrics.
- decompose - Reverse-engineering tool for docker environments.
- distrobox - Use any Linux distribution inside your terminal as docker or podman containers.
- dive - A tool for exploring each layer in a docker image.
- docker - Self-sufficient runtime for containers.
- docker-shell - A simple interactive prompt for Docker.
- Dockly - Immersive terminal interface for managing docker containers, services, and images.
- dry - A Docker manager for the terminal.
- Incus - A manager/hypervisor for containers (via LXC) and virtual-machines (via QEMU).
- lazydocker - The lazier way to manage everything docker. A simple terminal UI for both docker and docker-compose, written in Go with the gocui library.
- lxc - A userspace interface for the Linux kernel containment features.
- nemu - Ncurses UI for QEMU.
- oxker - A simple TUI to view & control docker containers.
- Pocker - Pocker is a TUI tool to help with docker related tasks, such as view containers/images, manage status of containers, see logs, attributes, environment variables and container statistics, filter logs based on keywords, start shell inside a container.
- 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.
- QEMU - A generic machine & userspace emulator and virtualizer.
- quickemu - Quickly create and run optimized Windows, macOS and Linux desktop virtual machines.
- toolbox - Use containerized 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.
- Waydroid - A container-based approach to boot a full Android system on a regular Linux distribution.
<a name="conversion"></a>Conversion
File format converters.
- antiword - Reader and converted for the proprietary MS .doc file format.
- BaFi - Universal JSON, BSON, YAML, CSV, XML translator to ANY format using templates.
- catdoc - Convert Microsoft Word files to plain text; output is sent to the standard output.
- hecat - A generic automation tool around data stored as plain-text YAML files.
- hget - A CLI to convert HTML into plain text. Can be used to fetch a site's HTML version and convert it into plain text, or to deliver plain text versions of your site dynamically.
- jsonify-resume - A CLI that converts resumes into JSON Resume schema.
- NestedTextTo - CLI to convert between NestedText and JSON, YAML, or TOML.
- 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.
- scss-to-css - Recursively compile all SCSS files into minified CSS.
- simtex - simtex (simplified LaTeX) allows you to convert your Markdown or text lectures into LaTeX file with one command, configured with simple .json file.
- transflac - A repository containing a series of utilities to assist in the maintenance and organization of FLAC based music collections.
- unoserver - Using LibreOffice as a server for converting documents, it allows converting multiple documents without loading libreoffice into memory every time.
- Vertopal-CLI - Vertopal-CLI is a small, yet powerful utility for converting digital files to a variety of file formats using Vertopal public API.
- 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
Tools to manage data files.
- crudini - A utility for manipulating .ini files.
- datadash - Visualize and graph data in the terminal.
- datasetGPT - A command-line interface and a Python library for inferencing Large Language Models to generate textual datasets.
- 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.
- gnuplot - Generate two and three-dimensional plots of data.
- IRedis - Interactive Redis: A CLI for Redis with autocompletion and Syntax Highlighting.
- lowcharts - lowcharts is meant to be used in those scenarios where we have numerical data in text files that we want to display in the terminal to do a basic analysis.
- osmf - OpenStreetMap find - A simple command line tool to explore OSM data.
- ramda-cli - A tool for processing data with functional pipelines.
- Redis Viewer - A tool to view Redis data in terminal.
- redis_tui - Redis terminal browser application.
- ROAPI - ROAPI automatically spins up read-only APIs for static datasets without requiring you to write a single line of code.
- sampler - Sampler is a tool for shell commands execution, visualization, and alerting. Configured with a simple YAML file.
- WOPR - A simple markup language for creating rich terminal reports, presentations, and infographic.
- 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.
<a name="data-management-json"></a>Data management - JSON/YAML/etc.
Tools to manage data files, dedicated to JSON, YAML and other similar formats.
- dasel - Allows you to query and modify data structures using selector strings.
- faq - Format Agnostic jQ - process various formats with libjq.
- fx - Command-line JSON viewer.
- gojq - Pure Go implementation of jq.
- Graphtage - Graphtage is a command-line utility and underlying library for semantically comparing and merging tree-like structures, such as JSON, XML, HTML, YAML, plist, and CSS files.
- gron - gron transforms JSON into discrete assignments to make it easier to grep for what you want and see the absolute 'path' to it.
- GROQ - The CLI tool consumes both JSON and NDJSON documents. You can pass in data from a local file, or from piping to standard input.
- jaq - jaq is a clone of the JSON data processing tool jq, that aims to support a large subset of jq's syntax and operations.
- jayin - Piping with js at terminal.
- jc - Serializes the output of command line tools to JSON.
- jello - CLI tool to filter JSON and JSON Lines data with Python syntax, similar to - surprise :-), jq!
- jid - You can drill down JSON interactively by using filtering queries like jq.
- jiq - jid on jq - interactive JSON query tool using jq expressions.
- jj - A command line utility that provides a fast and simple way to retrieve or update values from JSON documents.
- jl - jl ("JSON lambda") is a tiny functional language for querying and manipulating JSON.
- jless - Command-line JSON viewer designed for reading, exploring, and searching through JSON data.
- jnv - Interactive JSON filter using jq.
- jo - A small utility to create JSON objects from the command line.
- jp - A tiny command-line tool for parsing JSON from any source.
- jp - A command line interface to JMESPath, an expression language for manipulating JSON.
- jq - (JSON Query?) - 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. - jqp - A TUI playground for exploring jq.
- jqview - Simplest possible native GUI for inspecting JSON.
- Jsawk - Like awk, but for JSON. You work with an array of JSON objects read from stdin, filter them using JavaScript to produce a results array that is printed to stdout.
- jsed - jsed is a small command-line utility to add, remove, and search for data in a JSON structure.
- jshon - Jshon is a JSON parser designed for maximum convenience within the shell.
- json - A "json" command for massaging JSON on your Unix command line.
- JSON Command - JSON command line processing toolkit: no more writing code to inspect or transform JSON objects.
- JSON-Grep - JGrep is a command line tool and API for parsing JSON documents based on logical expressions.
- JSON.awk - A practical JSON parser written in awk.
- JSON.sh - A JSON parser written in shell, compatible with ash, bash, dash and zsh.
- jsongrep - A shell tool to search and select bits out of JSON documents.
- jsongrep - Python for extracting pieces of JSON objects
- jsonpp - A fast command line JSON pretty printer.
- jsonv.sh - A Bash command line tool for converting JSON to CSV.
- jtbl - A simple CLI tool to print JSON and JSON Lines data as a table in the terminal.
- jtc - JSON manipulation and transformation.
- RecordStream - Command-line tools for slicing and dicing JSON records.
- rq - Record Query - A tool for doing record analysis and transformation.
- TickTick - TickTick enables you to put JSON in bash scripts. Yes, just encapsulate them with two back-ticks.
- underscore-cli - Command-line utility-belt for hacking JSON and JavaScript.
- vj - JSON Humanizer makes JSON human-readable by applying visual formatting.
- YAML Paths - YAML/JSON/EYAML/Compatible get/set/merge/validate/scan/convert/diff processors using powerful, intuitive, command-line friendly syntax.
- yq - Portable command-line YAML processor.
<a name="data-management-tabular"></a>Data management - Tabular data
Tools to manage tabular data files, such as CSV, spreadsheets, and database tables.
- csvkit - A suite of command-line tools for converting to and working with CSV, the king of tabular file formats.
- csvlens - CSV file viewer; like
less
but made for CSV. - csvq - SQL-like query language for CSV.
- csvtk - A cross-platform, efficient and practical CSV/TSV toolkit written in Go.
- daff - Efficient table comparison and alignment, supporting formats like CSV and SQLite, useful for data analysis and synchronization tasks.
- 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.
- gobang - A cross-platform TUI database management tool written in Rust.
- harlequin - The SQL IDE for Your Terminal.
- litecli - CLI for SQLite Databases with autocompletion and syntax highlighting.
- Miller - Miller is like awk, sed, cut, join, and sort for data formats such as CSV, TSV, JSON, JSON Lines, and positionally-indexed.
- mycli - A command line client for MySQL that can do autocompletion and syntax highlighting.
- pgcli - Postgres CLI with autocompletion and syntax highlighting.
- pykli - Interactive ksqlDB command line client with autocompletion and syntax highlighting written in Python.
- q - Execute SQL-like queries on CSVs/TSVs tabular data files; each tabular file is treated as a database table; supports all SQL constructs (
WHERE
,GROUP BY
,JOIN
). - qsv - CSVs sliced, diced & analyzed.
- Soul - A SQLite REST and real-time server.
- sq - Command line tool that provides jq-style access to structured data sources such as SQL databases, or document formats like CSV or Excel.
- sqlite-utils - Python CLI utility and library for manipulating SQLite databases.
- tabiew - A lightweight, terminal-based application to view and query delimiter separated value formatted documents, such as CSV or TSV files.
- tabview - Python curses command line CSV and tabular data viewer.
- termdbms - A TUI for viewing and editing databases, written in pure Go.
- textql - Execute SQL against structured text like CSV or TSV.
- 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 PostgreSQL, MySQL, Oracle Database, SQLite3, Microsoft SQL Server, and others, including NoSQL and non-relational 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.
- xsv - Doing a SQL join with CSV files.
- YAS-QWIN - YAS-QWIN (Yet Another SQL-Query Writing Interface) is a CLI tool for building (and optionally running) SQL queries.
<a name="transfer"></a>Data transfer
Programs for transferring files and data between different machines.
- aria2 - Lightweight and easy-to-use download utility; it supports HTTP/HTTPS, FTP, SFTP, BitTorrent, Metalink and multiple sources; cross-platform.
- Clipsync - Share your clipboard across multiple machines using an MQTT service.
- 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.
- curlie - The power of curl, the ease of use of httpie.
- downloader-cli - A simple downloader written in Python with an awesome customizable progress bar.
- ffsend - Easily and securely share files from the command line. A fully featured Firefox Send client.
- Froop - Share file across network seamlessly and securely.
- gallery-dl - Gallery-dl is a command-line program to download image galleries and collections from several image hosting sites.
- github-dlr - Download individual files and folders from Github recursively.
- Jitter - A repository-oriented binary manager for Linux, Jitter searches through online repository (currently only on GitHub) for releases with .tar.gz, .tgz, .zip or .AppImage assets.
- lftp - "Sophisticated FTP/HTTP client, and a file transfer program supporting a number of network protocols"; support for bookmarks and mirroring features.
- lux - Lux is a fast and simple video downloader built with Go.
- 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.
- newsboat_video_downloader - Downloads content from YouTube and have them sorted into different folders depending on the channel.
- Nextcloud share URL downloader - Download files from and list content of NextCloud (password protected) share directly from the command line without needing a web browser.
- OnionShare - "An open source tool that lets you securely and anonymously share a file of any size."
- 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.
- pbgopy - Copy and paste between devices.
- pbproxy - Send your clipboard anywhere you can ssh to.
- portal - A quick and easy command-line file transfer utility from any computer to another.
- qr-filetransfer - Transfer files over Wi-Fi 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 - Manage file synchronization on cloud storage.
- rclone-tui - Cross-platform manager for rclone, which aims to be on-par with the web GUI.
- rsync - A tool that mirrors directories across networked machines, handling changes to files, working across SSH, with plenty of parameters for configuration.
- sharing - Sharing is a command-line tool to share directories and files from the CLI to iOS and Android devices without the need of an extra client app.
- shbin - Upload code snippets, notebooks, images or any other content to a GitHub repository that acts as your internal pastebin, and returns the URL to share it with your team.
- shcopy - Copy text to your system clipboard locally and remotely using ANSI OSC52 sequence.
- 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. - smartscp - A replacement of scp, but auto skip git-ignored files; it's just a wrapper of sshfs and xcp.
- stftp - (simple terminal FTP) aims to be an "easy-to-use and unbloated client for the UNIX (and UNIX-like) console".
- tdl - Beautiful and feature-rich Telegram downloader, written in Go.
- tran - Securely transfer and send anything between computers with TUI.
- tshare - The fastest way to share your files on the web, for free.
- 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.
- Yark - YouTube archiving made simple.
- youtube-dl - Downloads videos from YouTube and some other sites useful for automated bulk downloads.
- yt-dlp - A youtube-dl fork with additional features and fixes.
- 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.
- zrok - Geo-scale, next-generation peer-to-peer sharing platform built on top of OpenZiti.
<a name="devops"></a>DevOps
Applications for supporting DevOps tasks, such as containers or cloud systems management.
- Devbox - Devbox is a command-line tool that lets you easily create isolated shells and containers by defining the list of packages required by the environment.
- k9s - Kubernetes CLI To Manage Your Clusters In Style!
- kubectx - Quickly switch between clusters and namespaces in kubectl.
- mkdkr - Super small and powerful framework for build CI pipeline, scripted with Makefile and isolated with docker.
- OPS - Ops is a tool for creating and running a Nanos unikernel. It is used to package, create, and run your application as a Nanos unikernel instance.
- planor - The Cloud Aviator: TUI client for cloud services (AWS, Vultr, Heroku, Render.com, Fleek, ...).
- SAWS - A supercharged AWS command line interface (CLI).
- stern - Multi pod and container log tailing for Kubernetes.
<a name="diff"></a>Diff
Calculation of diffs between files and data, even with context or semantic awareness (i.e., considering the meaning of the data).
- csv-diff - Python CLI tool and library for diffing CSV and JSON files
- delta - A syntax-highlighter for git and diff output.
- diff-so-fancy - Make your diffs human-readable instead of machine-readable.
- diff2html-cli - Parse git diffs as JSON and generate pretty HTML.
- Difftastic - Syntax-aware structured diff tool.
- Dirdiff - Efficiently compute the differences between two directories.
- dyff - A diff tool for YAML files, and sometimes JSON.
- leven-cli - Measure the difference between two strings using the Levenshtein distance algorithm.
- pdf-diff - A tool for visualizing differences between two PDF files. Mainly dedicated to editors that usually spends a lot of hours on several PDFs.
- sesdiff - Generates a shortest edit script (Myers' diff algorithm) to indicate how to get from the strings in column A to the strings in column B. Also provides the edit distance (levenshtein).
- ydiff - View colored, incremental diff.
<a name="cd"></a>Directory changers (alternatives to cd)
Programs for improving the efficiency of directory traversal by remembering common paths and other approaches; alternatives to the cd
command.
- Apparition - Apparition allows giving names to paths, so that moving to the specific path can be done by using the name; it also allows managing the list of assigned names.
- autojump - A cd command that maintains a database of most visited paths and allows the access to a directory with shortened versions of the path.
- 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.
- cdwe - (cd with env vars) Wrapper of the cd command that sets and unsets env vars when you change dir based on a config file.
- enhancd - A next-generation cd command with your interactive filter.
- fasd - It offers quick access to files and directories for POSIX shells by keeping track of files and directories you have accessed, so that you can quickly reference them in the command line.
- fastdiract - Lightning-fast cd and command execution.
- ff - ff is a command-line tool to manage favorite folders, creating an alias, to be used via shell directly with the cd command.
- fz - Fuzzy tab completion for z.
- Jmp - Change directory with smart searching of the path specified through regex.
- menucd - Directory browser and changer for the command line.
- nav - Terminal navigator for interactive ls workflows.
- pazi - Fast autojump helper.
- pm - The easy way to switch between your projects on ZSH. In short, another directory changer.
- qcd - A tool to change to another directory by just by entering commands like
qcd 3
and step back to where you came from withqcd -o
. Frequently visited directories are stored in a sqlite3 database. - slingshot - Lightweight command line tool to quickly navigate across folders.
- 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.
- z - Directory changer based on aging and 'frecency'.
- z.lua - Directory changer that learns your habits.
- zm - Improved cd.
- zoxide - It remembers which directories you use most frequently, so you can "jump" to them in just a few keystrokes.
<a name="disk-analyzer"></a>Disk usage analyzers
Programs to analyze and summarize the usage of disks, visualize and report the size of directories and sub-directories, etc..
- cdu - (colored
du
) - a Perl script that callsdu
and displays a pretty histogram with optional colors allowing to immediately see the directories which take most disk space. - dfc - Report file system space usage information with style.
- diskonaut - Terminal disk space navigator that traverse the file-system with a TUI interface.
- 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.
- erdtree - A multithreaded file-tree visualizer and disk usage analyzer.
- 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 a 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.
<a name="editors"></a>Editors
Text editors.
- aretext - Minimalist text editor with vim-compatible key bindings.
- ash - A simple and clean terminal-based text editor, that aims to be easy to use with modern key-bindings.
- Bob - Bob is a cross-platform and easy-to-use Neovim version manager, allowing for easy switching between versions.
- Diakonos - A powerful editor with “standard" keybindings and several advanced features; written in Ruby.
- 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.
- Emacs - One of the oldest text editors, free long-standing software project, with a huge amount of functionalities and extensions; implemented and extendable with E-Lisp.
- eon - A light, modern editor for your terminal that doesn't want to be vim.
- Feather - The only terminal based text editor designed to work with BIG files.
- Helix - A Kakoune / Neovim inspired editor, written in Rust. The editing model is very heavily based on Kakoune.
- jed - A text editor with a drop-down menu facility that make it especially user-friendly.
- joe - (Joe's Own Editor) - a compact text editor written in C, a detailed list of features and missing ones is explicitly reported on 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 - Aims to be a successor to
nano
. Aiming to be easy to use, it has a nano-like keybindings menu; also takes advantage of the full capabilities of modern terminals, supports mutiple cursors, and has a plugin system. Written in Go. - 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, dropping older/unused OS compatibility, improving the codebase readability, modularity, and maintainability; it has chances to become the next choice of vim users.
- o - Configuration-free text editor and IDE limited to VT100. Suitable for writing git commit messages, editing Markdown, config files, source code, viewing man pages and for quick edit-compile cycles when programming.
- ox - An independent Rust text editor.
- pickaxe - The Redmine wiki editor.
- slap - Text editor inspired by Sublime Text written in NodeJS, extendable in JavaScript.
- 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.
- vai - Text editor similar to
vim
written in Python; many features are nicely replicated, some are still missing; however, the advantage of this implementation is its simplicity, maintainability and extensibility, thanks to the Python implementation. - VE - Lean, fast and feature rich text editor.
- 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."
- zee - Zee is a modern editor for the terminal, in the spirit of Emacs. It is written in Rust and it is somewhat experimental.
<a name="email"></a>Email
Email clients (MUA - Mail User Agents), mail synchronization, generation indexing and search.
- aerc - A pretty good email client
- 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".
- Himalaya - Command-line interface for email management.
- mailsy - Generates disposable emails in the CLI through mail.tm.
- mbsync - Mailboxes synchronization tool, allows downloading email locally, MailDir format supported.
- meli - Terminal mail client.
- Mutt - Mail client with tons of features, customization chances, support for IMAP, POP3, multiple storage formats.
- NeoMutt - Patched and up-to-dated mutt fork.
- nmail - nmail is a console-based email client for Linux and macOS with a user interface similar to alpine / pine.
- Notmuch - Notmuch is a command-line based program for indexing, searching, reading, and tagging large collections of email messages.
- paws - sendmail/maildir interface to Slack.
- pop - Send emails from your terminal; it uses the API at https://resend.com/.
- pymailgen - Starting from the content of a CSV file and a template text file, pymailgen generates a list of emails to be sent out using a command-line SMTP client.
- quackalias-cli - Scripts to generate DuckDuckGo email aliases and store the history of generated aliases.
- sup - MUA written in Ruby; specifically developed for accounts with "a lot of emails"; nice thread-based presentation.
- tmpmail - A command line utility written in POSIX sh that allows you to create a temporary email address and receive emails to the temporary email address.
<a name="file-handling"></a>File and file system handling
Tools for managing files and directories (copy, move, extraction from compressed archives, change permissions, etc.).
- compsize - Find compression type/ratio on a file or set of files on a btrfs file system.
- conan - Find clue about the type of the file.
- dlorg - Powerful and intuitive that automatically organizes your cluttered Downloads folder into a neatly structured directory system.
- 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 using one command to extract archives in different formats, recursive extraction (files into file) and extracts files into dedicated directories.
- Fast Files - ff is a bash script which is a combination of
mkdir
andtouch
. It can create directory structures and files simultaneously and lists the created objects usingeza
,lsd
, orls
. - file-type-cli - Detect the file type of a file or stdin.
- ForkFS - ForkFS allows you to sandbox a process's changes to your file system.
- gcp - (Goffi's cp) - an advanced file copier tool, heavily inspired from the traditional
cp
command, 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. - gcstree - Tree command for GCS (Google Cloud Storage).
- logrotate - Rotate, compress and mail logs.
- ouch - Painless compression and decompression in the terminal.
- 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.
- pcopy - A temporary file host, nopaste and clipboard across machines. It can be used from the Web UI, via a CLI or without a client by using curl.
- progress - Monitor the progress of common Coreutils command-line tools (
cp
,mv
,dd
,tar
,rsync
, etc.); it uses a 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 progress bar.
- Snoop - A command-line utility for Linux that provides information about files in a directory.
- symlinks - Symlinks is a simple tool that helps find and remedy problematic symbolic links on a system.
- 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
- unix-permissions - Swiss Army knife for Unix permissions.
- vidir - vidir allows editing of the contents of a directory in a text editor.
- xcp - Extended cp.
<a name="rm"></a>File deletion and trash bin (alternatives to rm)
Tools to manage the deletion of files/directories, often with the support of a trash can, i.e., the ability to restore deleted items.
- Brash - Move and restore items from the XDG trash. Written in pure Bash.
- 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.
- gtrash - TUI for moving and restoring items from the XDG trash. Fully compliant with the FreeDesktop.org specification.
- RecoverPy - Recover deleted files and overwritten data. It scans every block of the partition. You can even find a string in binary files.
- rip - Move and restore items from the graveyard (by default,
/tmp/graveyard-$USER
if $XDG_DATA_HOME is not set and$XDG_DATA_HOME/graveyard
otherwise) - rm-trash - Meant to be used in place of
rm
in Linux, supporting all its arguments. It can move and restore the files from the XDG trash. - 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.
- 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.
- trash-cli - Move files and folders to the trash on Linux (XDG trash), macOS (
macOS-trash
library) and Windows (recycle-bin
library). - trashbhuwan - Trashing CLI application for Linux distros, written in C.
- trasher - Delete files to a trash directory instead of deleting them immediately. Uses its own trash instead of the XDG one.
- undelete-btrfs - Automate the generation of path regex for BTRFS restore and attempt the restore for you in 3 levels. The longer a file has existed prior to being deleted, the more likely it is to be recovered.
<a name="file-explorer"></a>File explorer and tree visualization
Show directory trees and navigate through the file system (but not full-featured file managers).
- alder - Directory tree visualizer.
- browsr - A pleasant file explorer that can browse the contents of local and remote filesystems with your keyboard or mouse; remotes include GitHub, over SSH, in AWS S3, Google Cloud Storage, or Azure Blob Storage.
- Hop! - File explorer designed to be fast, simple and user-friendly, running on any operating system.
- ictree - Like tree but interactive.
- kupo - A terminal file browser, kupo!
- Rust-Traverse - Rust traverse is a terminal based file explorer. It is inspired by the NNN file manager. It uses Ratatui for the terminal UI, with Crossterm for the terminal backend.
- tere - Terminal file explorer that is a faster alternative to using cd and ls to browse folders in your terminal.
- tre -
tree
command improved with git awareness, editor aliasing, and colors. - tree - Recursive directory listing command that produces a depth indented list of files.
- twf - Standalone tree view file explorer.
- xplr - A hackable, minimal, fast TUI file explorer, stealing ideas from nnn and fzf.
<a name="find"></a>File finding (alternatives to find)
Search the filesystem looking for files with specific characteristics, e.g., names; alternatives to find
.
- bfs - A breadth-first version of the UNIX find command.
- fd - A simple, fast, and user-friendly alternative to find. Written in Rust.
- Findpick - General purpose file picker combining "find" command with a fuzzy finder.
- friendly-find - Usable replacement for find.
- gret - A command-line utility designed to search through directories and files for a regex expression that matches.
- happyfinder - (another) Fuzzy file finder for the command line.
- plocate - A much faster locate; plocate is a locate based on posting lists, completely replacing mlocate with a much faster (and smaller) index.
- rawhide - File finder that uses C expressions to specify the filenames.
<a name="ls"></a>File listing (alternatives to ls)
List directory content and files, with colors or icons; alternatives to ls
.
- colorls - A Ruby script that colorizes the
ls
output with color and icons. - 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. - eza - eza is a modern, maintained replacement for
ls
, built onexa
. - ll - ls with git status.
- lsd - This project is a rewrite of GNU ls with lots of added features like colors, icons, tree-view, more formatting options etc. The project is heavily inspired by the super colorls project.
- nat - Complete replacement for the
ls
command. - pretty-ls - Rust ls clone with pretty colors.
- stree - A CLI tool designed to visualize the directory tree structure of an S3 bucket.
- vivid - A themeable LS_COLORS generator with a rich filetype datebase.
<a name="file-manager"></a>File manager
Applications for interactively managing files and directories.
- cfiles - ncurses file manager written in C with vim like keybindings
- clifm - A CLI-based, shell-like, and non-curses terminal file manager written in C: simple, fast, extensible, and lightweight as hell.
- felix - TUI file manager with vim-like key mapping
- fff - Fast, simple file manager written in bash.
- fman - TUI File Manager
- goful - Goful is a CUI file manager written in Go.
- hunter - Ranger-like file browser written in rust.
- joshuto - ranger-like terminal file manager
- lf - lf (as in "list files") is a terminal file manager written in Go with a heavy inspiration from ranger 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.
- ncursesFM - File manager written in C, rather complete in terms of features, especially lightweight and responsive.
- nnn - "The unorthodox terminal file manager" - a tiny, nearly 0-config and fast file manager supporting all the operations on files and directories.
- projectable - A TUI file manager built for projects.
- 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.
- 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.
- superfile - Pretty fancy and modern file manager.
- TUIFI Manager - A cross-platform terminal-based termux-oriented file manager (and component), meant to be used with a Uni-Curses project or as is.
- vifm - "ncurses based file manager with vi like keybindings/modes/options/commands/configuration, which also borrows some useful ideas from mutt" (cit.).
- walk - Terminal file manager.
- Yazi - Blazing fast terminal file manager written in Rust, based on async I/O.
<a name="file-renamer"></a>File renamers
Utilities to rename files and directories: address multiple items with one command, interactively edit the name within an editor, etc..
- 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.
- 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.
- mmv-c - Interactively rename files with your favorite editor.
- moove - Manipulate file names and locations using a text editor.
- Musort - Rename multiple audio/music files based on the ID3 tag at once.
- nomino - Batch rename utility for developers.
- Ren - Ren is a command-line utility that takes find-formatted lines via standard input, and batch renames them.
- rename - Included in
util-linux
, allows bulk rename of files with regex support. - rename-cli - File renamer with TUI interface and preview.
- 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. - Tempren - A powerful file renaming utility that uses flexible template expressions to create new file paths and names.
- VisioNomicon - A utility that leverages GPT-4V to rename image files based on their content.
<a name="file-system"></a>File systems
File systems with specific features; e.g., the possibility to add tags and labels to files.
- ipfs-deploy - Zero-Config CLI to Deploy Static Websites to IPFS IPFS.
- sshfs - Locally mount a remote file-system through SSH and access files and directory as they would be on the local machine.
- TMSU - A simple tool for tagging files, providing a virtual filesystem for a tag-based view of your files from within any other program.
- wutag - CLI Tool for tagging and organizing files by tags.
<a name="file-watch"></a>File watching for changes
Services that watch files for changes and perform actions when something happens.
- Chokidar CLI - Fast cross-platform command line utility to watch file system changes.
- reflex - Reflex is a small tool to watch a directory and rerun a command when certain files change.
- rwatch - A Rust re-implementation of the classic Unix watch command that allows you to run a command repeatedly and watch its output.
- Viddy - Modern watch command. Time machine and pager etc.
- watcher - Watches all the files present in a directory and whenever a file is changed or a file is created/deleted from the directory, it runs a specified command.
- watchexec - Executes commands in response to file modifications.
- wfh - Continuously watches your local directories and rsync them against a remote host.
<a name="financial"></a>Financial tools
Personal ledger trackers, currency converters, and tools to manage and track cryptocurrencies.
- abandon - A text based, double-entry accounting system inspired by Ledger with infinite precision arithmetic. Made in Java. Includes a GUI.
- bits - CLI tool and pure Python library for Bitcoin.
- budget-cli - Import, de-dupe, categorize, and report on financial transactions.
- cash-cli - Convert Currency Rates.
- Cloudcash - Check your cloud spending from the CLI, from Waybar, and from the macOS menu bar!
- cointop - A fast and lightweight interactive terminal based UI application for tracking cryptocurrencies.
- 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.
- Invoice - Generate invoices from the command line.
- Lakshmi - Investing library and command-line interface inspired by the Bogleheads philosophy.
- ledger - A powerful, double-entry accounting system; it uses a simple yet powerful text syntax to specify the items to account.
- moeda - A foreign exchange rates and currency conversion using the command line.
- mop - Stock market tracker for hackers.
- paycon - Converts pay amounts between different time units.
- Quoter - The console based stock quote tool.
- Ticker - Terminal stock watcher and stock position tracker.
<a name="font"></a>Font management
Utilities to manage system fonts and to generate text using ASCII-art-like characters.
- cfonts - А command line tool for generating ANSI fonts in the console.
- 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.
- fnt - apt for fonts, the missing font manager for macOS/Linux.
- 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; useslibcaca
to produce nice textual effects.
<a name="funny"></a>Funny tools
Miscellaneous of tools that provide some funny/aesthetical functionality (animations, funny quotes, original message visualization, etc.).
- ascii-matrix - This script written in the C language, will render the matrix effect in the terminal, while rendering ASCII art loaded from a txt file, at the center of the terminal window.
- ascii-movie - Allows to play the ASCII art Star War movie locally or it can open a connection to play it over SSH or telnet.
- asciicquarium - Enjoy the mysteries of the sea from the safety of your own terminal!
- Binary Clock - Displays a clock where numbers are represented with blue and gray dots with binary encoding.
- boxes - Boxes is a command line filter program which draws ASCII art boxes around your input text.
- cbonsai - A bonsai tree generator, written in C using ncurses. It intelligently creates, colors, and positions a bonsai tree.
- ccube - Rotating 3d cube in terminal; written in C.
- cli-fireplace - Shows digital fireplace.
- cmatrix - ncurses program that display the scrolling lines found in the movie
The matrix
. - console-fun - Some console stuff to have a fun and watch some animations with texts, figures, etc.
- cowsay - Generate an 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. - ctree - A Christmas tree right from your terminal.
- daktilo - Turn your keyboard into a typewriter adding sounds at each keystroke.
- Draw - draw is an simple drawing tool in the terminal. Hold your mouse down and move it across the screen to draw anything you want!
- fortune - Generates random messages fetched from a quotation database.
- HARRY_POTTER_ALIASES - Harry Potter-themed aliases a magical journey through the wizarding world of terminal commands.
- hollywood - Runs a script turning your Linux terminal into a Hollywood style real-time hacking terminal.
- kyun - Kyun is a low productivity, low fidelity, low customizablity text editor that has its focus firm on user discomfort.
- Limoji - Limoji is an open source tool that makes it easy to choose between hundreds of cool ASCII emoticons and share them with your friends.
- LundukeHoliday - A simple Bash script that shows some animated, ASCII holiday decorations in your shell.
- matrix-webcam - Take your video conference from within the matrix.
- Maze Solver - Generate, display and solve mazes in an animated way in the terminal.
- neo - Recreates the digital rain effect from "The Matrix". Streams of random characters will endlessly scroll down your terminal screen.
- No More Secrets - A command line tool that recreates the famous data decryption effect seen in the 1992 movie Sneakers.
- paclear - paclear is a clear command with pacman animation.
- pokeget - A bash script you can use to display cool sprites of Pokemon in your terminal.
- ponysay - Pony rewrite of cowsay.
- pyjokes - One line jokes for programmers (jokes as a service).
- Russhian Roulette - 1/6 chance of posting your SSH private key on pastebin (do you really want to try?).
- sha256-animation - Animation of the SHA-256 hash function in your terminal.
- StarWars vision - See Star Wars in ASCII with
telnet towel.blinkenlights.nl
(server seems down recently - I leave the link in the hope that it will be resumed in the future). - Steam Locomotive - A steam locomotive traverses the screen from right to left if
sl
is typed instead ofls
. - ternimal - Simulate a life form in the terminal.
- yosay - Like cowsay, but for yeoman.
<a name="option-picker"></a>Fuzzy finders and option pickers
Fuzzy finders and generic option pickers in lists of strings.
- choose - NCurses based token selector with a nice terminal user interface for selecting tokens. Selecting a line from the bash history is only one of its use cases.
- cmenu - Vaguely dmenu-like minimal TUI menu utility, it reads entries from stdin, creates a selection menu, and writes the selected entry to stdout.
- fss - User-friendly command-line search scripts combining find and grep utilities with fzf previewing and direct actions on specific file types.
- fuzzysh - Minimalist selector in shell, inspired by fzf.
- fzf - (FuZzy Finder) - a general-purpose command-line finder with fuzzy search/filter capabilities, good integration with
vim
. - fzy - Better fuzzy finder.
- lSel - Simple no-fuss TUI selection menu for use in scripts.
- luneta - Interactive filter that can be easily composed within any script.
- 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 - Choose one option from a set of choices using an interface with fuzzy search functionality.
- pmenu - A dynamic terminal-based menu inspired by dmenu.
- shmenu - Menu TUI tool written solely in bash.
- skim - Fuzzy Finder in rust.
- smenu - Started as a lightweight and flexible terminal menu generator, it evolved into a powerful and versatile CLI selection tool for interactive or scripting use.
- tp - Display the result of the commands at every keystroke.
<a name="games"></a>Games
Board games, puzzles, roguelikes, role-play, adventures, card games, etc..
- 2048-cli - A 2048 clone that run in the terminal.
- 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.
- blackjack - IRC bot to play blackjack.
- Cataclysm: Dark Days Ahead - Open source turn-based survival RPG development project.
- Cemetery Escape - A game in which you must escape the cemetery. Search tombstones to find the key. Then head for the door, but watch out for ghosts.
- cheezee - Chess TUI client built for Linux.
- chs - Play chess against the Stockfish engine in your terminal.
- cli-chess - A highly customizable way to play chess in your terminal. Play online (via Lichess.org) and offline against the Fairy-Stockfish engine. All Lichess variants are supported.
- clidle - Wordle, now over SSH.
- crappybird-py - Flappy bird.
- Dino - A C++ and ncurses rendering of the popular chrome dinosaur game on the terminal.
- Durak - Durak card game for two in a terminal.
- Dwarf fortress - A fantasy game using ASCII art graphical representation of the game environment, it features a rich environment with many options and possibilities.
- escaping-figures-game-cli - Count figure's occurrences in the escaping figures matrix.
- Flapioca - A Flappy Bird-inspired terminal game written in Go.
- 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.
- Frotz - Frotz is an interpreter for Infocom games and other Z-machine games.
- gambit - Chess board in your terminal.
- GameShell - GameShell was devised as a tool to help university students to engage with a real shell, in a way that encourages learning while also having fun.
- go-sweep - Minesweeper game in the command line programmed in Go.
- greed - A game in which the goal is to move and consume all the numbers in a table.
- guess-word-cli - Find out a source word which characters was shuffled and moreover an extra character was added to bring some complexity.
- hangman - A Go TUI Hangman game built with the lovely BubbleTea framework.
- Language-games - Dead simple games made with word vectors.
- mazter - A maze in your terminal.
- minesweeper - Cross-platform terminal based minesweeper.
- Minesweeper Game - A small command line Minesweeper Game.
- nc2048 - A ncurses 2048 game that can be played in the terminal.
- Nethack - Single player rogue-like dungeon exploration game.
- Oldrunner - Character-based remake of Lode Runner, includes all the original 150 levels.
- othello-cli - othello-cli is a CLI version of Othello (Reversi) written in Rust. You can play against another player, the AI, or watch two AIs play each other.
- Pokete - A terminal based Pokemon like game.
- rebels-in-the-sky - P2P terminal game about spacepirates playing basketball across the galaxy.
- rooshk - A command line game in which you act as god over a sandbox world.
- rpg-cli - Your filesystem as a dungeon!
- sku - Simple TUI written in go to play sudoku in the terminal.
- Slash'EM - Rogue-like game derived from
nethack
offering extra features, monsters, and items; includes a GUI version. - Solitaire TUI - Klondike solitaire for the terminal.
- sshattrick - Play Hattrick in your terminal over SSH.
- sssnake - (Smart and sexy snake) The classic snake game for the terminal that can plays itself and be use like a screensaver.
- T-RexC - Simple Console Google T-Rex Game.
- terdle - Wordle implemented in Rust.
- Terminal Phase - A space shooter game you can play in your terminal.
- Terminal Roulette - Your own roulette table in the terminal.
- terminal-doom - Play DOOM in modern terminals.
- 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.
- tetrs - Tetromino game engine and terminal application to play Tetris, written in Rust.
- tui-sudoku - tui-sudoku is a configurable terminal interface sudoku game, with quite a few features.
- usolitaire - Solitaire in your terminal.
- Wordle Solver - A bash script that can solve wordle riddles.
- wordle-curses - A simple TUI wordle game with curses.
- Words - A set of word-based puzzle games for the CLI while you wait for the build to run.
<a name="git"></a>Git and accessories
Tools to support and extend the functionalities of the git
version tracker.
- BFG Repo-Cleaner - Removes large or troublesome blobs like git-filter-branch does, but faster.
- czg - Interactively generate standardized commit messages.
- dunk - Prettier git diffs in the terminal.
- Export Pull Requests - Export pull requests and/or issues to a CSV file. Supports GitHub, GitLab, and Bitbucket.
- forgit - A utility tool powered by fzf for using git interactively.
- fzf-git.sh - bash and zsh key bindings for Git objects, powered by fzf.
- gacp - git add, commit and push in one go.
- gh - GitHub's official tool to manage repos, issues, projects, gists and much more.
- gh-dash - A beautiful CLI dashboard for GitHub.
- gh-f - The ultimate, compact and snappy fzf extension for gh CLI.
- gh-s - Search GitHub repositories interactively.
- gh-stars - A GitHub CLI extension to show repository stargazers.
- 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 absorb - git commit --fixup, but automatic.
- Git Auto Sync - Automatically commits changes to a git repository, and always keep that repository up to date.
- git commander - A git tool with an easy interactive terminal interface.
- Git Commit Vanity Hash Solver - Neat tool to find a 'vanity' hash for a given git commit. Make all your commits hashes start with the prefix c0ffee, cafe, badc0de5 or whatever makes you happy!
- git-all-branches - Improved visualization of git branches (
git branch -a
). - git-annex - Manages files with
git
, without checking the file contents into git; very useful to manage large/binary files. - git-booster-cli - Improve your git workflow with customizable and runnable blocks.
- git-bug - Distributed, offline-first bug tracker embedded in git, with bridges.
- git-cc - A git extension to help write conventional commits.
- git-cliff - A highly customizable Changelog Generator that follows Conventional Commit specifications.
- git-cz - Semantic Git commits.
- git-extras - Little git extras like git-ignore, git-setup, git-changelog, git-release, git-effort and more.
- git-fuzzy - Interactive
git
with the help offzf
. - git-heatgrid - Visualize git commits as a calendar heatmap.
- git-identity - Automated git alias management.
- git-peek - git peek is the fastest way to open a remote git repository in your local text editor.
- git-quick-stats - A simple and efficient way to access various statistics in a git repository.
- git-recall - A simple tool that allows you to easily go through your commits and check what you or other contributors in your team did.
- git-remote-aws - Management of encrypted git hosting.
- git-secret - A bash tool which stores private data inside a git repo; it uses users' public keys, allowing trusted users to access encrypted data using PGP and their secret keys.
- git-stats - Local git statistics including GitHub-like contributions calendars.
- gita - A command-line tool to manage multiple git repositories.
- Gitea - Single binary self-hosted Git service.
- gitlab-cli - Create GitLab merge requests.
- gitleaks - Tool for detecting and preventing hardcoded secrets like passwords, api keys, and tokens in git repos.
- gitnr - Create
.gitignore
files using one or more templates from TopTal, GitHub or your own collection. - gitsummary - A better git status that lists stashes, file statuses, branch list, all nicely formatted with color.
- GitUI - The comfort of a git GUI but right in your terminal, with keyboard only control, scalable UI, and features all the necessary operations of git.
- grv - Git Repository Viewer - A terminal based interface for viewing Git repositories. It allows refs, commits, and diffs to be viewed, searched and filtered.
- hut - A CLI tool for sr.ht.
- Kusa - Displays GitHub contribution graphs.
- Lazygit - A simple terminal UI for git commands that simplify the execution of many operations making them interactive.
- mergestat-lite - A command-line tool for running SQL queries on git repositories and related data sources.
- mkgit - This Bash script automates the process of creating a new GitHub repository, initializing it with a README file, and pushing the initial commit to the remote repository. The script prompts the user for a repository name and utilizes the GitHub API to create a new public repository.
- onefetch - Git repository summary on your terminal.
- prs - Stay updated on PRs without leaving the terminal.
- rcz - A tool to write a commit message based on “Conventional Commits”.
- sad - CLI search and replace. Show you a nice diff of proposed changes before you commit them.
- semantic-git-commit-cli - Ensure semantic commits messages. With emoji support.
- Soft Serve - Self-hostable Git server for the command line. One distinguished feature is the possibility to create new repositories with a push.
- stargazer - GitHub stats from the command line.
- 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. - travelgrunt - cd inside [mono]repos without fatigue.
<a name="graphics"></a>Graphics
Applications to process images, colors, and ASCII art.
- 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.
- Artem - Convert images from multiple formats (JPG, PNG, WEBP, etc.) to ASCII art, written in Rust.
- ArTTY - Pixel art with optional system info, similar to Neofetch.
- BlockPaint - BlockPaint is a painting program that allows you to draw pixel graphics in the terminal using the mouse.
- catnip - An Image picker using pure bash (C and Go version in the works) and kittys icat and Chafa's Sixel protocol.
- chafa - Terminal graphics for the 21 st century.
- cli-mandelbrot - A CLI for traversing the Mandelbrot fractal.
- colout - colout read lines of text stream on the standard input and output characters matching a given regular expression pattern in given color and style.
- D2 - D2 is a modern diagram scripting language that turns text to diagrams.
- deviceframe - Put device frames around mobile/web/progressive app screenshots.
- Diagon - Diagon is an interactive interpreter, that transforms Markdown-style expression into an ASCII-art representation.
- durdraw - Versatile ASCII and ANSI Art text editor for drawing in the Linux/Unix/macOS terminal, with animation, 256 and 16 colors, Unicode and CP437, and customizable themes.
- gifgen - Simple high quality GIF encoding.
- gifsicle - Create, manipulate, and optimize GIF images and animations.
- givegif - GIFs on the command line.
- 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.
- haylxon - Blazing-fast tool to grab screenshots of your domain list right from 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".
- img2ascii - Convert images to ASCII art.
- 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.
- jp2a - Command-line tool that converts images to ASCII art in the Linux terminal.
- kakikun - Kakikun is a tool to paint, draw and create ASCII art in your terminal using Unicode characters.
- Korkut - Quick and simple image processing with the following functions: optimize, convert, crop, resize, rotate, watermark, flip.
- LinuxLogo - Display the Linux distribution logo in ASCII format.
- LinuxSSTool - A simple script that takes a screenshot and adds a gradated border using ImageMagick.
- mandelbrot-cli - Multiplatform terminal mandelbrot set explorer.
- MapSCII - A Braille & ASCII world map renderer for your console
- Mercator - OpenStreetMap but as terminal user interface (TUI) program.
- pastel - A command-line tool to generate, analyze, convert and manipulate colors.
- pik - Color picker for terminal.
- PyBonsai - Generate procedural ASCII art trees in the terminal.
- rclip - AI-Powered Command-Line Photo Search Tool.
- rimage - A powerful Rust image optimization CLI tool.
- scrot - SCReenshot - simple screenshot tool. Main features: window and retangular area capturing export to PNG JPG GIF and others.
- svgcleaner - Clean up your SVG files from the unnecessary data.
- SVGO - SVG Optimizer is a Node.js-based tool for optimizing SVG vector graphics files.
- svgshift - Command-line utility to quickly adjust the colors in an svg file. Allows for quick and easy color manipulation of svg files by adjusting RGB and HSL values.
- TermImg - termimg tries to draw images into terminals. The rectangular drawing area is given in cell coordinates (not pixels). Origin is the upper-left corner.
- terminal-art - Art made in the terminal: rotating cube.
- zbar - ZBar reads bar codes from various sources, such as video streams and image files. It supports many popular ypes of bar codes including QR Codes.
<a name="history"></a>History management
Programs to replace or improve the management of command line history.
- atuin - Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronization of your history between machines, via an Atuin server.
- Bevel - Command line history in an SQLite database for effective reuse.
- hiSHtory - A better shell history that stores context (directory, succeeded or failed, how long it took, etc). The history is stored locally and end-to-end encrypted for syncing to other computers.
- hstr - Manage the shell history. It has a powerful visual search and execution of previous commands, and history editing capabilities.
<a name="markdown"></a>Markdown
Utilities to display, convert and reformat Markdown files.
- DocToc - Generates table of contents for Markdown files inside local git repository. Links are compatible with anchors generated by GitHub or other sites.
- Frogmouth - A Markdown viewer / browser for the terminal.
- glow - TUI that renders Markdown files, with keybindings similar to
less
and support for styles and cloud encrypted storing - Grip - GitHub Readme Instant Preview - Preview Markdown files as GitHub would render them.
- lowdown - Markdown translator (HTML5, roff, LaTeX, gemini, OpenDocument, and terminal output)
- mdBook - Create book from Markdown files.
- mdcat - cat for Markdown
- mdformat - Mdformat is an opinionated Markdown formatter that can be used to enforce a consistent style in Markdown files.
- 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.
- Terminal Markdown Viewer - Python based Markdown viewer with themes source code highlighting and a directory change monitor.
- Textual Markdown Browser - Experimental "Markdown browser" for the terminal, built with Textual.
<a name="networking"></a>Networking
Networks and communication tools: bandwidth monitoring, packet inspection, remote connection, VPNs, terminal sharing, etc..
- asn - Server for the following services: ASN, RPKI validity, BGP stats, IPv4v6, Prefix, URL, ASPath, Organization, IP reputation, IP geolocation, IP fingerprinting, Network recon, lookup API server, Web traceroute server.
- ATAC - Arguably a Terminal API Client. It is based on well-known clients such as Postman, Insomnia, or even Bruno, but inside your terminal without any specific graphical environment needed; free, account-less, and offline for now and forever.
- bandwhich - Terminal bandwidth utilization tool.
- bluetuith - A TUI-based Bluetooth connection manager, which can interact with Bluetooth adapters and devices. It aims to be a replacement to most Bluetooth managers, like blueman.
- bmon - A monitoring and debugging tool to capture networking related statistics and prepare them visually in a human friendly way.
- bore - A simple CLI tool for making tunnels to localhost.
- chiko - The ultimate beauty gRPC Client on your Terminal: a simple tool to interact with gRPC services using a beautiful terminal interface.
- 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.
- dog - dog is a command-line DNS client. It has colorful output, understands normal command-line argument syntax, supports the DNS-over-TLS and DNS-over-HTTPS protocols, and can emit JSON.
- doggo - DNS client for humans. Features include: colors, tabular and JSON formats, and reverse DNS lookup.
- dug - A global DNS propagation checker that gives pretty output.
- echo - Speedy API emulation facilitated by a reverse proxy and mock JSON server.
- ejabberd - ejabberd is an XMPP application server and an MQTT broker, written mainly in the Erlang programming language.
- generate-ip - Randomly generate, format, and validate IPv4 + IPv6 + MAC addresses.
- geoiplookup - A little application to find geographical and network information of an IP address based no the geoip C API.
- geolocate - Fetch IP geolocation data.
- gg - A command-line tool for one-click proxy in your research and development without installing v2ray or anything else.
- goaccess - GoAccess is a real-time web log analyzer and interactive viewer, that provides fast and valuable HTTP statistics.
- GoTTY - 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.
- gping - Ping, but with a graph.
- havn - A fast configurable port scanner with reasonable defaults.
- hflow - A command-line, debugging http/s proxy server.
- humble-explorer - Cross-platform, command-line and human-friendly Bluetooth Low Energy scanner.
- icy_term - Old school ANSI/AVT terminal program for modern systems for connecting to BBS systems.
- impala - TUI for managing wifi networks and connections on Linux.
- ipcalc - Takes an IP address and netmask and calculates the resulting broadcast, network, Cisco wildcard mask, and host range.
- Kapow! - Say we have a nice cozy shell command that solves our problem. Kapow! lets us easily turn that into an HTTP API.
- kftray - kubectl port-forward on steroids, manage and share multiple k8s port forwards, with support for UDP, proxy through the k8s cluster, and github state sync.
- liboping - Protocol independent ANSI-C ping library and command line utility.
- mitmproxy - An interactive HTTPS proxy.
- mosh - Remote SSH client that achieve good responsiveness in presence of intermittent connectivity and roaming.
- mtr - mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool.
- neoss - User-friendly and detailed socket statistics with a Terminal UI.
- netscanner - All-in-one network scanning tool.
- nics - Display information about Network Interface Cards (NICs); the same output is presented across platforms.
- oha - oha is a tiny program that sends some load to a web application and show real-time TUI.
- Optic - Optic's Open Source tools make OpenAPI and API-first practices easy for any team to adopt.
- oryx - TUI for sniffing network traffic using eBPF on Linux.
- packemon - TUI tool and Go library for sending packets of arbitrary input and monitoring packets on any network interfaces (default: eth0).
- Prosody - Prosody is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources.
- PSSH - Parallelized versions of OpenSSH and related tools, such as pssh, pscp, prsync, pnuke, and pslurp. The project includes psshlib which can be used within custom applications.
- quark - quark is an extremely small and simple HTTP GET/HEAD-only web server for static content.
- quickserve - Very simple HTTP server written in Python for quickly sharing files on an ad-hoc basis. Aside from opening a port in your firewall if you have one, it requires no setup and should work with no hassle.
- recon - Gather public info about network hosts.
- redive - Trace URL redirections in the terminal.
- 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.
- Rustcat - Netcat Alternative in Rust.
- serve - Serves a static site, single page application, or just a static file, and provides a neat interface for listing the directory's contents.
- SMBScan - SMBScan is a tool to enumerate file shares on an internal network.
- sngrep - Ncurses SIP Messages flow viewer.
- speedtest-net - Test internet connection speed and ping using speedtest.net.
- ssh-menu - A very simple terminal tool that renders an interactive menu with your ssh profiles listed.
- sshed - sshed is a ssh config editor and bookmarks manager.
- sshs - Terminal user interface for SSH.
- sshto - Small bash script to manage your ssh connections. It builds menu (via dialog) from your ~/.ssh/config. It can not only connect but also to run commands, copy files, tunnel ports.
- sshuttle - Transparent proxy server that works as a poor man's VPN. Forwards over ssh. Doesn't require admin. Works with Linux and macOS. Supports DNS tunneling.
- sshx - Fast, collaborative live terminal sharing over the web.
- sslh - A ssl/ssh multiplexer (Applicative Protocol Multiplexer) that allows, for example, to share SSH and HTTPS on the same port.
- SSM - A simple SSH manager.
- termishare - Peer to peer terminal sharing.
- Termshark - A terminal UI for tshark, inspired by Wireshark.
- TGORQ - Terminal GO ReQuest (TGORQ) is a Vim-like lightweight CLI tool for performing HTTP requests.
- tproxy - A CLI tool to proxy and analyze TCP connections.
- TReq - A CLI tool for effortless HTTP requests.
- trippy - A network diagnostic tool.
- trzsz-ssh - An ssh client designed as a drop-in replacement for the openssh client. It aims to provide complete compatibility with openssh, mirroring all its features, while also offering additional useful features. Such as login prompt, batch login, remember password, automated interaction, trzsz, zmodem(rz/sz), udp mode like mosh, etc.
- tsshd - The tsshd works like mosh-server, while the "tssh --udp" works like mosh. Supports ssh port forwarding, ssh agent forwarding and X11 forwarding.
- TStream - Live streaming from the terminal. Requires the connection to a central server, from which the streaming is dispatched.
- ttfb - ttfb is a CLI-Tool to measure the TTFB (time to first byte) of HTTP requests.
- ttyd - Share your terminal over the web.
- tunblkctl - Command-line frontend for Tunnelblick.
- Tunnelmole - Connect to local servers from anywhere.
- turl - tURL is a command-line tool to make plain TCP-based requests.
- wavemon - wavemon is an ncurses-based monitoring application for wireless network devices on Linux.
- websocat - Netcat, curl and socat for WebSockets.
- Wishlist - With Wishlist you can have a single entrypoint for multiple SSH endpoints.
- wuzz - Interactive CLI tool for HTTP inspection.
- xiringuito - VPN made easy! No configuration. No VPN servers. No hassle. Using SSH capabilities.
- xxh - Bring your favorite shell wherever you go through the ssh.
<a name="note-taking"></a>Note taking
Tools to take, organize and manage notes.
- cadmus - Shell Scripts to Facilitate Effective Note Taking.
- Clipboard - An easy-to-use information management tool that acts like an external brain.
- dn - Daily notes command line tool.
- dnote - A simple command line notebook for the terminal. It also offers a seamless multi-device sync and a web interface.
- eureka - Store your ideas without leaving the terminal.
- Geeknote - A command line client for Evernote that can be use on Linux, FreeBSD and OS X.
- idea - A lightweight tool for keeping ideas in a safe place quick and easy.
- jot - Jot is a feature-stripped version of Obsidian focused on rapid note management through the terminal. It uses the same format of storage as Obsidian.
- journalC - A simple encrypted terminal journaling book.
- jrnl - jrnl is a simple journal application for the command line to easily create, search, and view journal entries; journals are stored as human-readable plain text, and can also be encrypted using AES encryption.
- kb - A minimalist knowledge base manager.
- meudeus - A skim-based
*.md
explore and surf tool. - mn - A dead simple note-taking script.
- nb - A command line and local web note-taking, bookmarking, archiving, and knowledge base application.
- note - Minimalistic note taking.
- Noted - Notes library, with viewer and shortcuts to add, delete and edit notes.
- NoteSH - Sticky notes App in the Terminal, built with Textual, an amazing TUI framework!
- posce - A note-taking toolkit for your command line.
- rucola - Terminal-based markdown note manager.
- sncli - A Python application that gives you access to your Simplenote account via the command line.
- Standard Unix Notes - GPG Encrypted Notes/Notebook manager for BSD/Linux.
- tb.go - Tasks, boards & notes for the command-line habitat.
- tdo - Fast and Simple Note Taking.
- Terminal velocity - A fast, cross-platform note-taking application for the UNIX terminal.
- TUI-Journal - Terminal-based application written in Rust that allows you to write and manage your journal/notes with a nice user interface.
- zk - zk is a command-line tool helping you to maintain a plain text Zettelkasten or personal wiki.
<a name="office"></a>Office tools
Programs to manage spreadsheets and to make presentations.
- DeckTape - DeckTape is a high-quality PDF exporter for HTML presentation frameworks.
- gpa-calculator - GPA calculator CLI app that stores data in local files; written in Go.
- Lotus 1-2-3 for Linux - A native port of Lotus 1-2-3 Release 3 to Linux.
- mdp - A command-line based Markdown presentation tool.
- patat - Terminal-based presentations using Pandoc.
- PDFtk - PDFtk is a simple tool for doing everyday things with PDF documents.
- presenterm - A terminal slideshow tool.
- pysentation - pysentation is a CLI for displaying Python presentations.
- qpdf - QPDF: A content-preserving PDF document transformer that allows performing several types of operations on PDF files, such as splitting, merging, etc.
- 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. Nevertheless, a nice piece of software." - sent - Simple plain-text presentation tool.
- Slideck - Present Markdown-powered slide decks in the terminal.
- Slides - Terminal based 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="online"></a>Online search and resources
Tools that interact with online resources to provide their services, e.g., searches, wiki, etc..
- arch-wiki - Search the Arch Wiki anywhere from the command line.
- av - A command line tool to manage stacked PRs with Aviator.
- Awesome CLI - Awesome CLI is a simple command line tool to give you a fancy command line interface to dive into Awesome lists.
- Awesome Finder - Search the awesome lists from the command line.
- dawson - Track your project's statistics on Hacker News and Github, and get notified on every new interaction.
- ddgr - A command line utility to search DuckDuckGo (HTML version) from the terminal.
- Fjira - The fuzziest Jira command line tool in the world.
- ghfetch - ghfetch is a CLI tool to fetch GitHub user information and show like Neofetch.
- googler - Google Search, Google Site Search, Google News from the terminal.
- jira-cli - Feature-rich interactive Jira command line.
- magic-tape - Magic-tape is an image supporting fuzzy finder command line interface YouTube client.
- par_scrape - PAR Scrape is a versatile web scraping tool with options for Selenium or Playwright, featuring AI-powered data extraction and formatting.
- pockyt - Read, manage, and automate the collection of articles in Pocket, an application for managing a reading list of articles from the Internet.
- pure-recipe - Input a recipe URL and receive well-formatted, ad-free recipes to your terminal, or save the output to a Markdown file.
- Seashells - Pipe output to the web.
- Shreddit - Remove your comment history on Reddit as deleting an account does not do so.
- so - Terminal interface for Stack Overflow.
- socialscan - Python library and CLI for accurately querying username and email usage on online platforms.
- socli - Stack overflow command line client written in Python. Search and browse stack overflow without leaving the terminal
- subs - Grab valid subdomains, resolve them, split them and more.
- tuir - Browse Reddit from your terminal.
- wiki-tui - A simple and easy to use Wikipedia Text User Interface.
- wikit - A command line program for getting Wikipedia summaries easily.
<a name="organizers"></a>Organizers and calendars
Calendar and appointment managers.
- addrb - A lightweight CLI / TUI address book that supports CardDAV.
- avail - Find available times between all your calendars.
- buku - A powerful bookmark manager written in Python3 and SQLite3.
- Calcure - Modern TUI calendar and task manager with customizable interface.
- calcurse - A calendar and scheduling application for the command line. It helps keep track of events, appointments and everyday tasks.
- caldr - A lightweight CLI / TUI calendar that supports CalDAV.
- gcalcli - Access Google Calendars; supports the main tasks: create, delete, and list events.
- Girok - A powerful and beautiful CLI scheduler.
- 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.
- icsp - Command-line iCalendar (.ics) to CSV utility.
- khal - Calendar that can synchronize with CalDAV servers through vdirsyncer.
- khard - vCard address book written in Python. Supports CardDAV.
- pal - Calendar for Unix/Linux systems that can keep track of events; custom, plain text storage format; interesting and fully functional.
- pbook - A simple phonebook manager for TUI lovers.
- peroutine - Remind you of periodical events. The period can be any positive integer of days, so work around the fact that the number of days in a week is prime.
- plann - Command-line interface to online calendars.
- ppl addressbook - Address book tool that uses the vCard format. Built on top of Ruby and Git
- Remind - Calendar that supports complex rules to define events and used a custom, powerful text-based storage format.
- remint - A simple terminal UI wrapper for D. Skoll's Remind calendar program
- tz - tz helps you schedule things across time zones. It's an interactive TUI program that displays time across the time zones of your choosing.
- vdirsyncer - CalDAV synchronization program.
- Wyrd - Curses front-end for Remind written in OCaml with vertically scrollable time-table.
<a name="package-manager"></a>Package managers
Package managers to manage/install/uninstall software packages, as source code or binaries.
- app - A cross-platform package management assistant with super powers.
- aptitude - A TUI front-end to APT, the Debian package manager.
- asdf - Manage multiple runtime versions with a single CLI tool.
- bin - Manages binary files downloaded from different sources.
- cli-tools-info - An overview of your CLI tools, if they are installed and what version they are on.
- eget - Easily install prebuilt binaries from GitHub.
- flatpak-cli - A command line program to search and install flatpaks from the flathub repository using a fzf like interface.
- getghrel - A user-friendly command-line tool that fetches and installs the latest release assets from GitHub for macOS and Linux; it automatically detects your operating system and architecture, downloads the relevant binary, and unpacks it, ensuring a hassle-free experience.
- hysp - An independent package manager that every hacker deserves.
- JAPM - A package manager that uses curses to provide a friendly UI
- krew - Find and install kubectl plugins.
- mise - A development environment setup tool: dev tools, env vars, and task runner. Like
asdf
+direnv
+make
. - nala - apt package manager front-end with cleaner interface.
- pm-jesus - Package manager front-end.
- pmt - Translator of package names between different package managers of Linux distributions.
- pypi-command-line - A powerful, colorful, beautiful command-line-interface for pypi.org.
- Shell Bling Ubuntu - A few scripts to be run on a fresh-off-the-presses Ubuntu VM, in order to get its shell nice 'n purdy.
- stew - An independent package manager for compiled binaries.
- topgrade - Upgrade all the things.
- upt - Universal Package-management Tool for any OS.
<a name="password-manager"></a>Password managers
Programs to store and manage collections of passwords and other login/authentication information.
- Bitwarden CLI - Command-line interface for Bitwarden, a multi-platform password manager targeted to companies and enterprises.
- 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.
- generate-pw - Randomly generate cryptographically-secure passwords.
- 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
- keydex - Manage KeePass databases from your terminal.
- kpcli - A command line interface for KeePass databases.
- kpxhs - Interactive KeePass database TUI viewer written in Haskell.
- pa - A simple password manager; encryption via age, written in portable POSIX shell.
- pash - A simple password manager using GPG written in POSIX sh.
- pass - POSIX password manager that keeps passwords inside GPG encrypted files inside a simple directory tree.
- passage - A fork of password-store that uses age as a backend instead of GnuPG.
- 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.
- 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.
- Pswd - A secure password generator written in C.
- rbw - Unofficial command line client for Bitwarden that is “stateful”, i.e., it does not require the manual lock and unlock of the client.
- 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.
- teller - Cloud native secrets management for developers - never leave your command line for secrets.
- 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.
- tresor - A KeePass TUI written in Go using Bubble Tea.
<a name="pastebin"></a>Pastebin
Services that allows online sharing of text and other content.
- feuille - A fast, dead-simple socket-based pastebin.
- GoCatGo - GoCatGo is another pastebin tool with a super focus on transparency.
- paste69 - Simple CURL-able pastebin.
<a name="monitor-top"></a>Process viewers and monitoring (alternatives to top)
Programs to list and monitor currently running processes; alternatives to the top
command.
- amdgpu-top - A tool that display AMD GPU utilization and information, gathered from performance counters (GRBM, GRBM2), sensors, fdinfo, and AMDGPU driver.
- 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.
- bashtop - Resource monitor that shows usage and stats for processor, memory, disks, network, and processes.
- below - A time traveling resource monitor for modern Linux systems
- bottom - Yet another cross-platform graphical process/system monitor.
- bpytop - Linux/macOS/FreeBSD resource monitor with a nice interface.
- Btop++ - Resource monitor that shows usage and stats for processor, memory, disks, network, and processes. C++ version and continuation of bashtop and bpytop.
- gotop - A terminal based graphical activity monitor inspired by gtop and vtop.
- gputop - A simple command-line utility for querying and monitoring GPU status.
- gtop - System monitoring dashboard for terminal written in Node.js.
- htop - An interactive process viewer for Unix; improves the UI of
top
, by adding real-time meters and colors. - 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.
- nvitop - An interactive NVIDIA-GPU process viewer and beyond, the one-stop solution for GPU process management.
- nvtop - A top like task monitor for AMD, Intel and NVIDIA GPUs, that can handle multiple GPUs and print information about them in a htop-familiar way.
- PCtrl - Robust, featureful, easy-to-use and powerful process manager.
- procs - A modern replacement for ps written in Rust.
- radeontop - View your AMD GPU utilization, both for the total activity percent and individual blocks.
- s-tui - Stress-Terminal UI, s-tui, monitors CPU temperature, frequency, power, and utilization in a graphical way from the terminal.
- tiptop - A command-line system monitoring tool in the spirit of top, written in Python. It displays various interesting system stats and graphs them. Works on all operating systems.
- top - The classical Unix utility that provides a rolling display of top CPU using processes.
- ttop - top-like system monitoring tool with TUI, historical data service and triggers.
- TTV - terminal-task-viewer: a lightweight terminal tool to manage processes in Unix machines.
- vtop - Alternative to top with several additional stats.
- ytop - TUI system monitor written in Rust.
- zenith - Sort of like top or htop but with zoom-able charts, CPU, GPU, network, and disk usage
<a name="productivity"></a>Productivity
Applications for improving own productivity that do not deserve (at the moment) a specific category; e.g., resume generators and mind maps.
- ancv - Renders your (JSON) resume/CV for online & pretty terminal display.
- classis - An easy CLI for the terminal fans out there who want to access Open Assistant's API through the terminal or want to use the API in their own applications.
- gdir - A command line tool which queries Google Directions. The tool displays results as human-readable text.
- gtt - Google Translate TUI (Originally), now supporting Apertium, Argos, Bing, ChatGPT, DeepL, DeepLX, Google, Reverso.
- h-m-m - h-m-m (pronounced like the interjection "hmm") is a simple, fast, keyboard-centric terminal-based tool for working with mind maps.
- speedread - A simple terminal-based open source Spritz-alike filter that shows input text as a per-word RSVP (rapid serial visual presentation) aligned on optimal reading points.
- TUI apps - A repository containing a couple of one-script programs, mainly dedicated to training/learning CLI tools such as grep, awk, etc.
- tuxi - A CLI tool that scrapes Google search results and SERPs that provides instant and concise answers.
- wtf - The personal information dashboard for your terminal, including todos, calendar, JIRA, etc.
- zeitkatze - Simplest stopwatch in a Linux console.
<a name="programming-boilerplate"></a>Program templates and boilerplate
Utilities that generate licenses, documentation structure (README files), project directories and other boilerplate for software projects.
- add-gitignore - Interactively generate a .gitignore for software projects.
- boilr - Boilerplate template manager that generates files or directories from template repositories.
- clog - Creates a changelog automatically from local git metadata.
- contributing-generator - A generator for the CONTRIBUTING.md, README.md, LICENSE, etc.
- Cookiecutter - A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects.
- kickstart - Scaffolding tool to get new projects up and running quickly.
- legit - Automagically generates a LICENSE file for the current working directory that you are in or a license header for a file where applicable.
- license-up - Create a license quickly for a given name.
- mklicense - CLI tool for easily generating the text of the most common licenses.
- Proji - Powerful cross-platform CLI project templating tool.
- readme-md-generator - CLI that generates beautiful README.md files.
- upnup - A command line utility that generates a LICENSE file in the current working directory.
<a name="programming"></a>Programming
Tools for developers, including debuggers, testing, line counters, boilerplate and license generators, etc..
- argbash - Bash argument parsing code generator.
- bashly - Bashly is a command line application (written in Ruby) that lets you generate feature-rich bash command line tools.
- bencher - Continuous benchmarking, Bencher allows you to track the performance of your code or binary over time and catch performance regressions before you release.
- cgasm - Pronounced “SeekAzzem”, it is a standalone, offline terminal-based tool with no dependencies that gives me x86 assembly documentation.
- cgdb - Console front-end to the GNU debugger.
- chars - Display names and codes for various ASCII (and Unicode) characters / code points.
- cloc - Tool for counting blank lines, comment lines, and physical lines of source code in many programming languages.
- CodeMark CLI - Helps you manage coding assignments and tests; easily initialize the configuration, list assignments, fetch and check your code, submit your code for grading, and get AI-powered error recommendations.
- 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.
- dasht - Search in 200+ offline documentation sets API docs offline, in your terminal or browser.
- DEM - Containerized Development Environment Manager for embedded development.
- devbox - Instant, easy, and predictable development environments.
- dtool - Collection of development tools.
- 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".
- Flox - Developer environments you can take with you.
- fmake - Brings
make
s interface to almost any build system. - 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.
- gdb-dashboard - Modular visual interface for GDB in Python.
- grex - A command-line tool for generating regular expressions from user-provided test cases.
- gup - Update binaries installed by "go install" with goroutines.
- hors - Instant coding answers via the command line.
- howdoi - Instant coding answers via the command line.
- Kool - CLI tool that brings the complexities of modern software development making these environments lightweight, fast and reproducible.
- Leetcode-go - A simple CLI tool for searching, downloading and submitting problems to LeetCode.
- minify.js - Recursively minify all JavaScript files.
- mk - mk is a CLI tool that aims to ease contribution to any open source project by hiding repository implementation details from the casual contributor.
- nbterm - Jupyter Notebooks in the terminal.
- np - A better
npm publish
. - nsh - A powerful renaming utility for developers, used to rename Symbols, Phrases in File contents, file names, directory names, recursively, useful specially when you find a better name for your app.
- pire - Python Interactive Regular Expressions.
- 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.
- rebound - Fetch Stack Overflow results in your terminal when you get an error. Supported languages: Python, Node.js, Ruby, Go, and Java.
- release-it - Automate releases for Git repositories and/or Node.js packages.
- rr - Debug the recording, deterministically, as many times as you want.
- scc - Sloc Cloc and Code (scc) is a codebase statistics counter. Goal is to be the fastest code counter possible, but also perform COCOMO calculation like sloccount and to estimate code complexity similar to cyclomatic complexity calculators. In short one tool to rule them all.
- scons - Software construction tool.
- scriptisto - A language-agnostic "shebang interpreter" that enables you to write scripts in compiled languages.
- semantic-release - Automates the whole node.js package release workflow including: determining the next version number, generating the release notes, and publishing the package.
- stepci - Automated API Testing and Quality Assurance.
- temci - Advanced benchmarking tool written in Python 3 that supports setting up an environment for benchmarking and the generation of visually appealing reports.
- termfu - A multi-language debugger frontend that allows users to create and switch between custom layouts.
- todocheck - Static code analyzer for annotated TODO comments.
- Tokei - Tokei is a program that displays statistics about your code. Tokei will show the number of files, total lines within those files and code, comments, and blanks grouped by language.
- umake - Makefile linter emphasizing portability, targeting the POSIX make standard.
<a name="prompt"></a>Prompts
Prompts and welcome messages at the command line.
- Basta! - A small amount of GNU Bash code that maintains a scroll-protected status line at the bottom of the terminal.
- blaze - A customizable and informative prompt for bash, zsh, fish, on linux distributions.
- geometry - A minimalistic, fully customizable Zsh prompt theme with support for asynchronous functions.
- Liquid Prompt - Carefully designed prompt with useful information to show changes when it changes, saving time and frustration, and to show meaningful information with minimal visual clutter.
- Oh My Posh - From their README: "The most customizable and low-latency cross-platform/shell prompt renderer".
- Polus - A fast, lightweight and modern Bash prompt theme written in 100 lines of Bash code.
- Polyglot Prompt - A dynamic prompt for
zsh
,bash
,ksh93
,mksh
,pdksh
,oksh
,dash
,yash
,busybox ash
, andosh
that uses basic ASCII symbols (and color, when possible). - Powerlevel10k - A theme for Zsh. It emphasizes speed, flexibility and out-of-the-box experience.
- 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.
- promptless - A suckless and super fast shell prompt written in 1 line of POSIX sh, only configurable via re-installation / script edition.
- Pure - Pretty, minimal, and fast ZSH prompt.
- Spaceship - Minimalistic, powerful and extremely customizable Zsh prompt.
- Starship - The cross-shell prompt for astronauts.
- synth-shell-prompt - A small eye-candy shell prompt with Git status displaying, a clock, intelligent $PWD shortening, and much more.
- welcome.sh - A nice little script that greets you on every launch, with some helpful (and customizable!) information.
<a name="rss"></a>RSS
RSS feed visualizers, converters, and managers.
- Canto Curses - Curses frontend for Canto daemon for RSS feeds.
- 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.
- 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.
- nom - RSS reader for the terminal.
- openring - A tool for generating a webring from RSS feeds, so you can link to other blogs you like on your own blog.
- rReader - RSS reader client with TUI interface.
- rss-cli - A UNIX-inspired CLI application for interacting with RSS feeds.
- 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.
- TermFeed - A simple terminal feed reader.
<a name="religion"></a>Religion
Tools to handle religious material, e.g. reading the Holy Bible.
- bbl - Read, search Holy Bible in command line.
- bible - Read the Holy Bible via the command line.
- ltorah - ltorah provides a way to read the ancient hebrew Torah from the command line.
- The Rock - Command line King James bible viewer for Linux systems modeled after Debian's bible-kjv, but with extra features.
<a name="science"></a>Science
Packages for scientific research and science applications, e.g., bibliography and publication management.
- bib.awk - Bibliography manager written in awk.
- BibMan - A TUI bibliography manager. It aims to support only the most basis features as a general bibliography manager.
- bibtools - Command-line bibliography manager.
- cobib - Simple, command-line based bibliography management tool.
- conrad - Track conferences and meetups.
- element - Periodic table on the command line.
- FAWOC - FAWOC is a TUI program for manually labelling a list of words. It has been developed to support the efficient clustering of documents based on topic modeling algorithms such as Dirichlet Latent Allocation.
- GCTU - A simple command line tool which allows one to convert DNA code sequences to the different RNA sequences.
- Go-L - Game of Life with different update rules and on a bunch of different topologies (sphere, torus, klein bottle, etc.).
- gof-rs - Game of life rendered in your terminal with over 500+ unique patterns to choose from.
- gol-tui - Conway's Game of Life TUI.
- papis - Extensible document and bibliography manager.
- periodic-table-cli - An interactive Periodic Table of Elements app for the console!
- periodic-table-cli-py - An interactive Periodic Table of Elements app for the console.
- pt.sh - CLI periodic table with search and many properties.
- ptable - A beautiful TUI periodic table for GNU/Linux terminals.
- Pubs - Pubs organizes your scientific papers together with their bibliographic data and provides command line access to basic and advanced manipulation of your library.
- scholarref - Tools to never deal with journal webpages again.
- slr-kit - Set of CLI tools to assist the writing of Systematic Literature Reviews powered by Natural Language Processing.
- starfetch - Command line tool that displays constellations.
<a name="screen-recorder"></a>Screen recorder
Tools to record the content of the terminal and manage the recording (e.g., converting into animated GIFs).
- agg - agg is a command-line tool for generating animated GIF files from asciicast v2 files produced by
asciinema
terminal recorder. - asciinema - Terminal session recorder.
- goscript - Goscript is a tool that records the terminal session (well, any command you run it with) and saves the output in a self contained HTML file that can be run in the browser, to playback the session.
- t-rec - Blazingly fast terminal recorder that generates animated GIF images for the web written in rust.
- terminal-recorder - Terminal recorder allows you to record your bash session, and export it to HTML so then you can share it with your friends.
- terminalizer - Record your terminal and generate animated GIF images or share a web player link www.terminalizer.com.
- termtosvg - A Unix terminal recorder written in Python that renders your command line sessions as standalone SVG animations.
- ttygif - ttygif converts a ttyrec file into GIF files. It's a stripped down version of ttyplay that screenshots every frame.
- ttystudio - Record your terminal and compile it to a GIF or APNG without any external dependencies, bash scripts, GIF concatenation, etc.
- vhs - Write terminal GIFs as code for integration testing and demoing your CLI tools.
<a name="screensaver"></a>Screen savers
Screen savers with animations for the idle times of the computer.
- ASCII Saver - Screensaver for terminals.
- conway-screensaver - A Conways game of life screensaver for the terminal.
- lifecycler - An aquarium that runs in your terminal.
- pipes.sh - Animated pipes terminal screensaver.
- sclocka - The real screensaver/lock for terminals.
- 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
Cryptography, ciphered archive managers, encrypted file-systems.
- acmetool - Easy-to-use command line tool for automatically acquiring certificates from ACME servers (such as Let's Encrypt).
- age - A simple, modern and secure encryption tool with small explicit keys, no config options, and UNIX-style composability.
- cipher - An Ash module that makes it easy to perform aes-256-cbc encryption for files and directories.
- cotp - Trustworthy, encrypted, command-line TOTP/HOTP authenticator app with import functionality.
- 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.
- eddy - Simple, fast CLI file encryption tool.
- enc - A modern and friendly CLI alternative to GnuPG: generate and download keys, encrypt, decrypt, and sign text and files, and more.
- encfs - Encrypted filesystem in user-space based on FUSE, mounts an encrypted directory into a clear one.
- feroxbuster - A fast, simple, recursive content discovery tool written in Rust.
- 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.
- flawz - A Terminal UI for browsing security vulnerabilities (CVEs).
- 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.
- gpg-tui - Manage your GnuPG keys with ease!
- 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.
- Image Steganography Tool - Simple C++ Encryption and Steganography tool that uses Password-Protected-Encryption to secure a file's contents.
- jdvrif - CLI tool to embed or extract files via a JPG image. Post & share your embedded JPG image on compatible sites.
- LUKS - Hard disk encryption tool; it stores all setup information in the partition header, enabling easy data transport or migration.
- Minisign - A dead simple tool to sign files and verify digital signatures.
- OAuth2c - A command-line tool for interacting with OAuth 2.0 authorization servers.
- ots - Share end-to-end encrypted secrets with others via a one-time URL.
- PaperAge - Easy and secure paper backups of secrets, which takes a text and generates an encrypted QR code to print on paper.
- pdvzip - CLI tool to embed a ZIP file within a PNG image to create a tweetable and "executable" PNG-ZIP polyglot file. Post & share your PNG-ZIP image on compatible sites.
- pgen - Generate passphrases using the wordlists for random passphrases made by the EFF.
- safe - Password protected secret keeper. Secrets are encrypted and stored on disk using a key derivated from your master password - no keys to manage.
- sandsifter - The x86 processor fuzzer.
- securo - Encrypt and descrypt files and folders using a symmetric encryption.
- SOPS - SOPS (Secrets OPerationS) is a simple and flexible tool for managing secrets, sops is an editor of encrypted files that supports YAML, JSON, ENV, INI and BINARY formats, encrypting the values but not the keys.
- SSH-Snake - SSH-Snake is a self-propagating, self-replicating, file-less script that automates the post-exploitation task of SSH private key and host discovery.
- sshamble - Unexpected exposures in SSH; the tool checks for several common weaknesses in SSH security issues.
- StegCloak - Hide secrets with invisible characters in plain text securely using passwords
- uacme - ACMEv2 client written in plain C with minimal dependencies.
- van-gonography - Hide your files of any type inside a image of your choice using steganography.
- vet - Tool for identifying risks in open source software supply chain.
- wifi-password - Get Wi-Fi pass.
<a name="shells"></a>Shells
Shell programs that enable the interaction through the terminal.
- arsh - A statically typed scripting language with shell-like features.
- Bash - (Bourne Again SHell) The most widespread system shell to date.
- Cat9 - Cat9 is a user shell script for LASH - a command-line shell that discriminates against terminal emulators, written in Lua.
- cosh - Concatenative command-line shell.
- 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.
- dune - A customizable shell that aims to be cozy.
- Elvish - Elvish is a versatile interactive shell and expressive programming language, combined into one seamless package.
- es - (extensible shell) shell with first class functions, lexical scope, exceptions, and rich return values, based on Plan9's rc.
- Fish - "A command line shell for the 90s"; focused on user-friendliness, with powerful autosuggestions, colors, "sane scripting" (w.r.t. to Bash).
- Ion - Ion is a modern system shell that features a simple, yet powerful, syntax.
- ksh93 - (KornShell) a shell programming language that is compatible with the Bourne Shell in addition and has the major command-entry features of the BSD shell csh.
- 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.
- N-Commodore - A novel file manager/shell/command-line, where everything is panelized, greppable and remembered.
- Nushell - A modern shell written in Rust, where all data is structured.
- Oils - From their README: "Oils is our upgrade path from bash to a better language and runtime!"
- oksh - Portable OpenBSD ksh.
- 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.
- Reptyl - A cross-platform command line shell that supports execution of commands in natural language.
- Tcsh - A shell that, at the time of creation, introduced command completion and command line editing.
- Twin - Text mode window environment. A "retro" program for embedded or remote systems, that doubles as X11 terminal and text-mode equivalent of VNC server.
- xonsh - The xonsh shell lets you easily mix Python and shell commands in a powerful and simplified approach to the command line.
- Yash - Yash (yet another shell) a POSIX-compliant command line shell written in C99.
- Zsh - Alternative shell designed for interactive use.
<a name="music"></a>Sound and music
Music players, podcast, synthesizers, downloaders, online radios.
- Alsamixer - ALSA mixer with curses interfaces.
- amused - Minimal music player that composes well, or aims to do so, with other tools thought.
- BadaBoomBooks - Quickly organize audiobooks using a terminal and web-browser.
- bash_radio_player - Terminal Radio Player using mpv and fzf.
- beets - Beets is the media library management system for obsessive music geeks: catalogs your collection, automatically improving its metadata as it goes.
- castero - A TUI podcast client for the terminal.
- cmus - A fast and lightweight audio player with configurable keybindings and playlist support.
- cTune - A ncurses based internet radio player written in C for Linux.
- cue - A command-line music player.
- discodos - A CLI tool for DJ's and record collectors based on the discogs.com collection feature that allows analyzing and organize DJ sets.
- dzr - Command Line deezer.com Player for Linux, BSD, Android, Windows.
- espeak - A compact open source software speech synthesizer for English and other languages.
- fme - Flexible metadata editor that allows editing the metadata of music files.
- Gomu - Gomu is intuitive, powerful CLI music player. It has embedded scripting language and event hook to enable user to customize their config extensively.
- Instant Music Downloader - Instantly download any song!
- jammer - Multiplatform light-weight TUI music player with Soundcloud & Youtube support, with effects.
- kew - A command-line music player with gapless playback and simple playlist management.
- kord - A Python framework that provides programmers with a simple API for the creation of music-based applications.
- line - Tiny command-line midi sequencer and language for live coding.
- lowfi - A music player through your terminal, with the option to open YouTube in the browser.
- maestro-cli - A command-line tool to play songs (or any audio, really) in the terminal.
- mfp - A command-line utility for playing music mixes for programming & focus (from musicforprogramming.net), unlocking the flow state.
- 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.
- 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 searching for songs and playlists; it downloads the video, extracts the audio track and plays it; handles local playlists and many configuration parameters.
- mpvc - A minimal mpc-like CLI and TUI for controlling mpv from the shell.
- muCLIar - YouTube automator bringing you your music right on your CLI.
- MusicPlayerPlus - Featureful ncurses based MPD client inspired by ncmpc with integration for Beets, spectrum visualization,Bandcamp/Soundcloud, asciimatics, cantata, and more.
- musicScraper - CLI tool for scraping information from musical websites (Rateyourmusic, Metal Archives), with nice album ASCII art.
- musikcube - A cross-platform, terminal-based audio engine, library, player and server written in C++.
- mzk - Music theory helper.
- 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.
- ncspot - Cross-platform ncurses Spotify client written in Rust, inspired by ncmpc and the likes.
- ogg123 - Quick
ogg
sound file player; no visual interface, just a command-line audio file player for the free and openogg
file format. - opencubicplayer - Open Cubic Player (UNIX fork) is a music visualizer for various tracked music formats (amiga modules, S3M, IT), chiptunes and other formats related to demoscene.
- podbit - Podbit is a replacement for newsboat's standard podboat tool for listening to podcasts. It is minimal, performant and tries to focus just on being a podcast client, rather than an RSS reader.
- podboat - A podcast download manager for text terminals, a companion for the newsboat RSS-reader.
- pulsemixer - CLI and curses mixer for PulseAudio.
- PyRadio - Curses based internet radio player.
- pytunes - Self-hosted music streaming service.
- radio-active - Internet radio player with 40k+ stations.
- radio-beats - Rofi-like menu for playing radio stations.
- Siren - Siren is a text-based audio player for UNIX-like operating systems.
- sonicradio - A TUI radio player making use of Radio Browser API and Bubbletea.
- Spotify TUI - A Spotify client for the terminal written in Rust.
- spotify-player - spotify-player is a fast, easy to use, and configurable terminal music player having feature parity with the official Spotify application.
- sptui - Spotify TUI player, written in Go.
- Tera - Terminal Radio: an easy-to-use CLI music player to play favorite music, radio stations and explore various radio stations from the terminal only.
- termusic - Terminal Music Player written in Rust.
- Tizonia - Command-line cloud music player for Linux with support for Spotify, Google Play Music, YouTube, SoundCloud, TuneIn, iHeartRadio, Plex servers and Chromecast devices.
- yt-audio - A simple, configurable youtube-dl wrapper to download and manage YouTube audio.
- ytui-music - YouTube client in terminal for music (lightweight YouTube client).
<a name="monitor"></a>System monitoring
Applications to display the usage of system resources: network, memory, power, etc..
- Batfetch - A command-line tool that displays detailed information about the battery of your device in a clean and organized way.
- dmidecode - System information utility.
- dysk - A thing to get information on your mounted disks
- Fastfetch - Like Neofetch, but much faster because written in C.
- fastfetch - An actively maintained, feature-rich and performance oriented, neofetch like system information tool.
- GFetch - A simple fetch script written in Python.
- glances - A comprehensive and detailed system monitor; monitored parameters include: CPU, memory, load, process list, network interfaces, disk I/O, sensors, filesystems, docker, system info, uptime.
- HyFetch - A fork of the abandoned Neofetch, HyFetch displays information about your system next to an image, your OS logo, or any ASCII file of your choice.
- hyperfine - A command-line benchmarking tool.
- inxi - A comprehensive system information script; provides information about CPU, graphics, audio and network devices, drives and partitions, sensors; implemented as a Bash script.
- macchina - Fast, minimal and customizable system information frontend.
- multitail - 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. Currently abandoned.
- 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. - nitchplusplus - A fast system information fetch tool.
- noti - Monitor a process and trigger a notification.
- powertop - A
top
-like utility to monitor the sources of power consumption, allows turning on/off many components, quite useful to track possible power-related issues. - pv - The pv command is used to monitor the progress of data through pipe.
- ramfetch - A fetch which displays memory info using /proc/meminfo.
- 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.
- slurm - Yet another network load monitor.
- 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.
- sntop - A simple network top for monitoring connectivity.
- sysdig - A TUI for capturing system calls and events from the Linux kernel. Allows you to save, filter, and analyze the data. Like
strace
+tcpdump
+htop
+iftop
+lsof
+ Wireshark for the entire system. - tcpterm - tcpterm is a packet visualizer in TUI.
- The Logfile Navigator - An advanced and colorful log file viewer with TUI interface.
- tinyfetch - Python and system information command-line fetch tool.
- tmon - A tiny system monitor for Linux.
- ttyload - Lightweight utility that offers a color-coded graph of load averages over time, enabling a graphical tracking of system average load.
- updo - Uptime monitoring CLI tool with alerting and advanced settings.
- whowatch - Monitor Linux Users and Processes in Real Time.
- zfxtop - Self described as “fetch top written by bubbletea enjoyer”.
<a name="system"></a>System tools
System management tools, such as for brightness control, dotfile and environment variable management, notifications, etc..
- active-win-cli - Get the title/id/etc of the active window.
- argc-completions - Autocompletion for any shell and any command.
- auto-cpufreq - Automatic CPU speed and power optimizer for Linux, which allows to dynamically change the settings of the CPU to save energy and extend the battery life on laptops.
- bashmount - Tool to mount and unmount removable media from the command-line with a nice interface to list the available options..
- brightnessctl - Read and control device brightness. Devices, by default, include backlight and LEDs - searched for in corresponding classes.
- 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.
- chezmoi - Manage your dotfiles across multiple diverse machines, securely.
- conspy - "Conspy allows a (possibly remote) user to see what is displayed on a Linux virtual console, and send keystrokes to it."
- direnv - Loads and unloads environment variables depending on the current directory.
- dtui - Small TUI for introspecting the state of the system/session dbus.
- fkill-cli - Simple cross-platform process killer.
- fzf-kill - The no-nonsense task killer for your terminal.
- has - Checks presence of various command line tools on the PATH and reports their installed version.
- inshellisense - IDE style command line auto complete with support for 600+ command line tools.
- just - Handy way to save and run project-specific commands.
- Kill - Small bash-only script for killing processes/sending signals.
- killport - A command-line tool to easily kill processes running on a specified port.
- 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).
- 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.
- ntfyme - Simple to use, cross platform notification tool which sends you local, gmail, telegram, etc notification when a long running process ends with detailed diagnostics, along with features like tracking for suspended process and terminate them automatically.
- rfsh - Run shell scripts in batch, concurrently, fully customized with variable.
- rs-env - Hierarchical environment variable management, compiling the resulting set of from a hierarchical list of
<name>.env
files. - Rumos - CLI utility for controlling screen brightness.
- sysm - Makes your system play custom sounds when any configured system or external event happens.
- systeroid - A more powerful alternative to sysctl(8) with a terminal user interface.
- ugm - A terminal based UNIX user and group browser.
- viewport-list-cli - Return a list of devices and their viewports.
- x-cmd - A toolset implemented using posix shell and awk offering many interesting features and that is very small in size.
- YAS-BDSM - YAS-BDSM (Yet Another Stow-Based Dotfiles System Manager): a minimal, UNIX-based, cross-platform, hierarchical dotfiles manager.
- ydf - A disruptive dotfiles manager+. Be ready to work in just a few minutes on your Fresh OS.
<a name="terminal"></a>Terminals
Terminal and terminal multiplexers.
- abduco - abduco provides session management i.e. it allows programs to be run independently of their controlling terminal.
- alacritty - A GPU-Accelerated terminal emulator that comes with sensible defaults, but allows for extensive configuration.
- 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.
- dvtm - Dynamic console window manager that enables dynamic tiling window management for multiple terminal applications.
- 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.
- mtm - Micro Terminal Multiplexer - Simple but usable, stable and minimalistic terminal multiplexer.
- mx - A tmux session manager written as a single Bash script.
- peaches - A smart switcher for the terminal. Based on tmux.
- screen - Terminal multiplexer that split a physical terminal between several processes, typically interactive shells.
- st - A simple terminal implementation for X.
- 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
andemacs
key-bindings, search in window feature and many more. - tmux-nested - Plugin for nested tmux workflows.
- tmux-session - Manage tmux sessions using fzf.
- vtm - Virtual terminal multiplexer with window manager and session sharing.
- warp - Secure and simple terminal sharing.
- wezterm - A GPU-accelerated cross-platform terminal emulator and multiplexer implemented in Rust with tons of features.
- wterm - A native Wayland terminal emulator based on an st fork using wld.
- Zellij - A workspace aimed at developers, ops-oriented people and anyone who loves the terminal. At its core, it is a terminal multiplexer.
<a name="text-processing"></a>Text processing
Text processing utilities to cut or sort lines, find dead links, colorize command output, etc..
- analiticcl - An approximate string matching or fuzzy-matching system for spelling correction, normalisation or post-OCR correction.
- anew - Tool for adding new lines to files, skipping duplicates.
- as-tree - Print a list of paths as a tree of paths.
- awk - A historical, general-purpose text file processor, implements a domain-specific language designed for text processing and typically used as a data extraction and reporting tool.
- brok - Find broken links in text documents.
- charfreq - Very simple command-line tool that counts (unicode) character frequency from standard input.
- choose - A human-friendly and fast alternative to cut and (sometimes) awk.
- Colibri Core - A software to quickly and efficiently count and extract patterns (n-grams and more) from large corpus data, to extract various statistics on the extracted patterns, and to compute relations between the extracted patterns.
- deadlink - Parses text files for HTTP URLs and checks if they are still valid. Good to use on Markdown documentation files.
- detect-indent-cli - Detect the indentation of code.
- espanso - Cross-platform Text Expander written in Rust. Not limited to the command line.
- fullname-cli - Get the fullname of the current user.
- grc - (Generic Colourizer) - parse a given text stream and to colorize it according to regexp written in configuration files; different patterns can be associated to file types.
- gtree - Using either Markdown or programmatically to generate directory trees and directories, and to verify directories.
- gzip-size-cli - Get the gzipped size of a file.
- HASHA CLI - Hashing made simple. Get the hash of text or stdin.
- 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.
- hyphertool - Command-line tool for syllabification and hyphenisation for multiple languages.
- JsonGenius - Self-hosted scraping API that extracts structured data described by a JSON Schema.
- kill-tabs - Kill all Chrome tabs to improve performance, decrease battery usage, and save memory.
- lexmatch - This is a simple lexicon matching tool that, given a lexicon of words or phrases, identifies all matches in a given target text, returning their exact positions. It can be used compute a frequency list for a lexicon, on a target corpus.
- Line Select - A powerful utility enabling interactive line selection from stdin, allowing to seamlessly integrate, pause, select, and refine your pipeline, enhancing data processing precision.
- lingua-cli - This is a small command-line tool for language detection, it is a simple wrapper around the lingua-rs library for Rust.
- logshark - Logshark is a debugger CLI for JSON logs written in Go.
- logu - Extract patterns from (streaming) unstructured log messages.
- lolcat - Ruby Gem to colorize the output of the cat command.
- Normalize Country - Convert country names and codes to a standard.
- Output as Format - Output stdin as GitHub/Slack/Jira etc... formatted code, lists, or quotes.
- pup - Parsing HTML at the command line.
- rare - Real-time regex-extraction and aggregation into common formats such as histograms, bar graphs, numerical summaries, tables, and more!
- rich - Rich-CLI is a command line toolbox for fancy output in the terminal, built with Rich.
- 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.
- squeeze - Enables to extract rich information from any text (raw, JSON, HTML, YAML, etc).
- ssam - Ssam, short for split sampler, splits one or more text-based input files into multiple sets using random sampling. This is useful for splitting data into a training, test and development sets.
- stam-tools - A collection of command-line tools for working with STAM, a data-model for stand-off annotations on text.
- swordfish-rs - Mimics real person behavior with real-time typing into terminal uses a screenplay where text and timings are specified.
- to-double-quotes - Convert matching single-quotes to double-quotes.
- to-single-quotes - Convert matching double-quotes to single-quotes.
- toc - Generate a table of contents from the comments of a file.
- toolong - A terminal application to view, tail, merge, and search log files (plus JSONL).
- trurl - Command line tool for URL parsing and manipulation.
- tuc - You want to cut on more than just a character, perhaps using negative indexes or format the selected fields as you want... Maybe you want to cut on lines (ever needed to drop first and last line?)... That's where tuc can help.
- ucto - Ucto tokenizes text files: it separates words from punctuation, and splits sentences. It has rules (regular-expression based) for several languages.
- Ultimate Plumber - Helps to interactively and incrementally explore textual data in Linux, by making it easier to quickly build complex pipelines, thanks to a fast feedback loop.
- wg-cmd - TUI for managing WireGuard configuration files.
<a name="text-search"></a>Text search (alternatives to grep)
Search files and exploring directory trees to look for text or patterns (RegEx) contained in files; alternatives to the grep
command.
- 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) - a text search utility targeted to source code; it skips versioning systems data directories; it is inspired by
ack
, but faster. - ast-grep - A CLI tool for code structural search, lint and rewriting.
- hae - Like grep but with natural language queries; useful to retrieve paragraphs of text that deal with specific topics.
- hypergrep - Recursively search directories for a regex pattern using Intel Hypescan.
- 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.
- semantic-grep - grep for words with similar meaning to the query.
- sift - Fast and powerful alternative to
grep
; it targets flexibility and performance: can be as fast asgrep
and allows specifying complex expressions to find text. - ugrep - Ultra fast grep with interactive TUI, fuzzy search, boolean queries, hexdumps and more.
- vgrep - User-friendly pager for grep.
<a name="text-search-replace"></a>Text search and replace (alternatives to sed)
Tools to search text within files and perform operations on it, such as text replacement; alternatives to sed
.
- amber - Code search / replace tool.
- Rep - Rep is a command-line utility that takes grep-formatted lines via standard input, and performs a find-and-replace on them.
- repgrep - A replacer that uses ripgrep for finding and provides an interactive interface to replace the text.
- sd - s[earch] & d[isplace] - An intuitive find & replace CLI a possible replacement for sed.
- srgn - A code surgeon for precise text and code transplantation. A marriage of
tr
/sed
,rg
andtree-sitter
. - teip - Select partial standard input and replace with the result of another command.
<a name="time-tracker"></a>Time trackers
Time and habit trackers to measure the amount of time spent on different activities.
- 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.
- Bartib - Easy to use time tracking tool for the command line. It saves a log of all tracked activities as a plain-text file and allows you to create flexible reports.
- cations - Lightweight, user-friendly habit tracker and productivity tool; terminal-based CLI application.
- dijo - Scriptable, curses-based, digital habit tracker.
- doing - A command line tool for remembering what you were doing and tracking what you've done.
- habitctl - Minimalist command line tool you can use to track and examine your habits.
- habitmap - A command-line app to track your habits and visualise how committed you are to making or maintaining them with colorful heatmaps.
- hours - A no-frills time tracking toolkit for command line nerds.
- Moro - A command line tool for tracking work hours, as simple as it can get.
- MyTimer - Simple timer for the terminal with timer-mode and alarm.
- pom - Pomodoro timer for the terminal.
- Productivity Timer - A CLI/TUI Pomodoro timer and todo (coming soon) application for keyboard addicts and terminal fans that makes you more productive.
- Timer-CLI - A very simple countdown timer.
- Timet - A lightweight, local time tracker with SQLite storage, offering features like Pomodoro integration, block time and tag distribution plots, detailed statistics, and CSV/iCalendar export.
- Timetrap - A simple command line time tracker written in Ruby. It provides an easy-to-use command line interface for tracking what you spend your time on.
- Timewarrior - A time tracking utility that offers simple stopwatch features as well as sophisticated calendar-based backfill, along with flexible reporting.
- tmux-pomodoro-plus - Pomodoro technique into your tmux workflow
- utt - Ultimate Time Tracker - A simple command-line time tracker written in Python.
- Watson - Time tracking CLI to know how much time you are spending on your projects. It can generate nice reports for clients.
- yacht - Yet another command line habit tracker written in Rust.
- zeit - A command line tool for tracking time spent on activities.
<a name="todo-manager"></a>Todo managers
Todo list and task managers.
- agile-planner - Streamline your study schedule with our unique scripting language and CLI, designed for efficient planning and task management.
- boards - Recursive kanban boards based around the filesystem.
- CLI-Manager - Command Line Interface for managing tasks locally on the fly.
- devtodo - A hierarchical command-line task manager, with data storage in JSON format.
- Dooit - Todo manager with interactive and beautiful UI, and vim keybindings.
- dstask - Single binary terminal-based TODO manager with git-based sync + Markdown notes per task.
- geek-life - A full-featured TUI task manager.
- grit - A multitree-based personal task manager.
- 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.
- kabmat - TUI program for managing kanban boards with vim-like keybindings.
- kanban-python - Kanban Terminal App written in Python.
- mayhem - A minimal TUI based task tracker.
- mdt - A simple command-line Markdown todo list manager inspired by t.
- memo - Memo is a Unix-style note-taking software for POSIX compatible systems.
- omm - "on-my-mind" is a keyboard-driven task manager for the command line.
- 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.
- t - A command-line todo list manager for people that want to finish tasks, not organize them.
- 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.
- taskwarrior-tui - A terminal user interface for taskwarrior.
- td - Simple & elegant To Do list manager written In Bash.
- td-cli - A command line todo manager, where you can organize and manage your todos across multiple projects.
- todo.txt - Minimalistic todo manager that uses a simple plain text file to keep track of items, implemented as a shell script.
- todo.txt-more - Extensions for todo.txt: interactive rofi/fzf control, sync github issues, better colors, time tracking... and more!
- todoclist - Simple CLI app for check your tasks from todoist.
- Todoman - A simple, standards-based, CLI todo (aka: task) manager.
- todotxt-machine - Interface for todo.txt.
- topydo - A powerful todo list application for the console, using the todo.txt format.
- tsk - Terminal task management app with an emphasis on simplicity, efficiency and ease of use.
- 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.
- Ultralist - A simple, powerful, open source task management system for the command line.
- wish - A delightful wish list manager to keep track of your dreams and desires!
- xit - A plain-text file format for todos and check lists. So, not really a program, but I believe it is worth to list :-)
- 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.
<a name="torrent"></a>Torrent
Clients and download managers using the BitTorrent protocol.
- 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.
- Mabel - A fancy BitTorrent client for the terminal built with Go and the Bubbletea library.
- rtorrent - BitTorrent client uses ncurses and is ideal for use with tmux, screen or dtach.
- Stig - Stig is a client application to connect and control the BitTorrent Transmission client app.
- torrentCLI - Get torrents from the Terminal.
- toru - BitTorrent streaming CLI tool to stream anime torrents in real-time with no waiting for downloads.
- Transgression TUI - A remote TUI client for the Transmission BitTorrent program.
- Transmission - Fast, easy and free BitTorrent client.
<a name="typing"></a>Typing test and practice
Games and utilities to measure and/or improve the typing ability.
- fasttyper - Fasttyper is minimalistic typing test based on user provided exercising text.
- kboard - Terminal game to practice keyboard typing.
- neotype - A terminal-based typing game powered by classic ANSI escape codes.
- Smassh - A TUI based typing test app inspired by MonkeyType.
- thokr - Sleek typing TUI with visualized results and historical logging.
- toipe - Yet another typing test, but crab flavored.
- tt - A terminal based typing test.
- ttyper - Terminal-based typing test.
- typeinc - An ncurses based terminal typing speed test with different difficulty levels and cool typing UI.
- 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.
- typetype - Minimalistic command line typing game.
- typing-game-cli - Command line game to practice your typing speed.
- Typon - A multi-featured typing practice tool which can turn any text file into a typing game.
- Typr -
typr
is a Python-based application that utilizes the 'rich' module to provide you with a simple yet satisfying TUI when typing,typr
is designed to be simple and easy to use.
<a name="utility"></a>Utilities
Miscellaneous utilities that are not do not fit in other categories and they are not numerous enough that they do not require a dedicated category.
- Autocomplete - IDE-style autocomplete for your existing terminal & shell.
- bash-cache - A function memoization / caching library for bash scripts and shells
- bashtutor - Easily extendable utility to interactively showcase or teach CLIs, command line tasks, workflows and Bash itself.
- bkt - bkt is a subprocess caching utility that makes it easy to reuse past invocations of slow commands
- calm-garden-cli - A small, discreet terminal tool for breath exercises with progression: earn coins, buy plants, and upgrade your garden.
- chet-client - Measure your commands to speed up your development.
- config-file-validator - Cross Platform tool to validate configuration files.
- envio - Envio is a command-line tool that simplifies the management of environment variables across multiple profiles. It allows users to easily switch between different configurations and apply them to their current environment.
- flog - A fake log generator for log formats such as apache-common, apache error and RFC3164 syslog.
- fzf-tab-completion - Tab completion using fzf.
- gentoo-install - This project aspires to be your favorite way to install gentoo. It aims to provide a smooth installation experience, both for beginners and experts. You may configure it by using a menuconfig-inspired interface or simply via a config file.
- glyphs - Unicode symbols on the command line.
- guesswidth - Guess the width output without delimiters in commands that output to the terminal.
- Keep - Simple alerting tool, with declarative syntax and builtin providers.
- minicloze - Rust-based command-line language-learning game using the Tatoeba database.
- mkdesk - A program/command to create .desktop files (program launchers) using the terminal.
- movie - A CLI for getting information about a movie and comparing two movies.
- moviemon - A Python program that displays all the information about all your movies in the command line.
- oji - Interactive text emoji creator.
- ora - Elegant terminal spinner.
- pangran - A simple TUI program that checks if you've typed a pangram.
- play - TUI playground for your favorite programs, such as grep, sed and awk.
- plzz - A Python CLI to automate daily tasks of both common and advanced users. It allows easily launching common and different types of operations such as creating random files or check hashes.
- Polykill - Lightweight command line utility for removing dependencies and build artifacts from unused local projects.
- ProgressLine - Track commands progress in a compact one-line format.
- ps1palette - Streamline Bash PS1 customization through script automation for prompt color coding and .bashrc integration.
- 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.
- sasqwatch - A modern take on the classic watch command.
- sauce - A novelty CLI tool that identifies an anime from an image and yields key data about it.
- sizeof - Experimental CLI, written alongside ChatGPT4 and GitHub Copilot.
- Skylab - A text user interface (TUI) tool that displays upcoming space launches in a user-friendly way.
- sprinkles - Randomly colors input text and outputs it to the terminal.
- tab-pal - A command-line app that makes it easier to add and edit custom colour palettes in Tableau.
- teetail - Like tee, but only the tail goes in the file.
- tempy - A simple, visually pleasing weather report in your terminal.
- tickrs - Real-time ticker data in your terminal.
- tmux-fingers - Copy-pasting in terminal with vimium/vimperator like hints.
- ttyscheme - Collection of Color Schemes for the TTY.
- Various Scripts - Various script, mainly in shell and Perl, to perform tasks such as combining head and tail, or other common tools accessed using fzf.
- 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.
- weather-cli - Check the weather for your city from the terminal.
- yank - Reads input from stdin and display a selection interface that allows a field to be selected and copied to the clipboard.
- Zsh Angel IQ System - A bunch of intelligent extensions to Zsh, including an in-shell Ctags browser, an extension to Zinit plugin manager and Angel Swiss Knife.
<a name="versioning"></a>Versioning
Tools for file versioning that are not related to git.
- Bazaar - Multiplatform version control system supporting different workflows; it is part of the GNU Project, and it is free software sponsored by Canonical.
- fnc - Interactive text-based user interface for Fossil.
- 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.
- Jujutsu - A Git-compatible VCS that is both simple and powerful.
- Mercurial - Free, distributed source control management tool.
- myrepo - A repository management tool.
- SnowFS - A high-performance application and node library for binary file versioning, initially made for the graphics industry.
<a name="video"></a>Video
Programs to process and manage video files (downloader, editing, players, etc.).
- CreateVideoMeme - Bash tool to add captions to the top of videos.
- Editly - A tool and framework for declarative NLE (non-linear video editing) using Node.js and FFmpeg.
- ffmpeg - The Swiss knife of video editing from the command line.
- FFMPerative - Powered by Large Language Models (LLMs) through an intuitive chat interface, now you can compose video edits in natural language.
- ffscreencast - A FFmpeg screencast with video overlay and multi monitor support.
- invidtui - Invidious TUI client, which fetches data from invidious instances and displays a user interface in the terminal, and allows for selecting and playing YouTube audio and video.
- lotc - (Lord Of The Clips) Video downloader, trimmer, and merger using the terminal. Supports YouTube, Facebook, Reddit, Twitter, etc. Downloads/trims at multiple points. Merges multiple clips.
- Pyutube - A simple tool to download YouTube video shorts and playlist in just one click.
- Streamlink - Streamlink is a CLI utility which pipes video streams from various services into a video player.
- videoinfox - Find videos fast. Powerful playlist building and editing. A play queue to load up unlimited playlists. Index unlimited video libraries and find videos by keyword. Download list building without leaving the browser and a Download Queue.
- YouTube TUI - A lightweight and user-friendly TUI for browsing YouTube content from the terminal.
- yt-splitter - Downloads and splits audio tracks from a YouTube video according to the chapters/tracks. Useful for compilations or full album uploads.
<a name="viewers"></a>Viewers
File viewers for images and other formats (e.g., e-books).
- baca - Lets you indulge in your favorite e-books in the comfort of your terminal.
- bat - A cat clone with syntax highlighting and Git integration.
- bbcli - Browse BBC News like a hacker.
- brows - CLI GitHub release browser.
- btail - Interactive file tail viewer.
- cacaview - A library and a program to display JPG, PNG, GIF or BMP images in the terminal using ASCII characters.
- CAVA - Cross-platform Audio Visualizer.
- ccat -
cat
with colorized output. - epy - CLI Ebook (epub2, epub3, fb2, mobi) Reader.
- hackernews-TUI - A Terminal UI to browse Hacker News.
- haxor-news - Browse Hacker News like a haxor: A Hacker News command line interface (CLI).
- hexyl - Command-line hex viewer.
- hnterm - Hacker News in the terminal.
- Lob TUI - TUI for lobste.rs website.
- medium-cli - Medium for Hackers - Read medium.com stories in the terminal.
- moulti - Moulti is a CLI-driven Terminal User Interface (TUI) displaying arbitrary outputs inside visual, collapsible blocks called steps.
- 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.
- nbpreview - A terminal viewer for Jupyter notebooks. It's like cat for ipynb files.
- ov - Feature-rich terminal-based text viewer.
- Oyomu - A command line comic reader and collection manager.
- reader - Reader parses a web page for its actual content and displays it in nicely highlighted text on the command line
- see - A cute cat for the terminal with advanced code viewing, Markdown rendering, tree-sitter syntax highlighting, images view and more.
- 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.
- TubiTui - A lightweight, libre, TUI-based YouTube client
- ucollage - An extensible command line image viewer inspired by vim.
- viu - Command-line application to view images from the terminal written in Rust.
- youtube-viewer - Lightweight application that searches and streams videos from YouTube.
<a name="browser"></a>Web browser
Web browsers with textual interface.
- Amfora - Amfora aims to be the best looking Gemini client with the most features. It does not support Gopher or other non-Web protocols.
- 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.
- carbonyl - Chromium running inside your terminal.
- 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. - gplaces - Simple but powerful terminal Gemini client.
- Graphene - A text-based web browser that's a joy to use.
- Gremlin - Gemini browser for the terminal.
- Links - A textual Web browser with tables and frames.
- Litter - Litter is a minimalistic, terminal-based read-only browser that allows users to browse the web without the bloat and distractions of modern web browsers.
- Lynx - A highly configurable text-based web browser, one of the oldest CLI browser I'm aware of.
- min - A Gemini browser with Vim style keyboard navigation, client certificate support and history and bookmarks saved in TSV files.
- Romulus - A cross-platform Gemini console client in C# with a simple user interface, interactive menus and mouse support.
- s - Web search from the terminal. Just opens in your browser.
- 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
Web development tools, including load test tools, API clients and managers, link checkers and extractors, etc..
- ain - An HTTP API client for the terminal.
- Ballast - A simple API load testing tool that lets you compare performance snapshots of your API.
- beachpatrol - A CLI tool to replace and automate your everyday web browser.
- crawley - Unix-way web crawler: crawls web pages and prints any link it can find.
- Discharge - Deploy static websites to Amazon S3.
- django-tui - Inspect and run Django Commands in a text-based user interface (TUI).
- dummy - Generator of static files for testing file upload. It can generate the PNG file of any number of bytes!
- http-tanker - Terminal application used for API testing; easily create, manage and execute HTTP requests from the terminal.
- HTTPie - HTTPie for Terminal: human-friendly CLI HTTP client for the API era.
- Hugo - The world's fastest framework for building websites.
- iola - A command-line socket client with REST API. It helps to work with socket servers using your favorite REST client.
- is-up-cli - Check whether a website is up or down using the isitup.org API.
- kanha - A web-app pentesting suite written in Rust.
- linkchecker - Check links in web documents or full websites.
- lychee - Fast, async, resource-friendly link checker written in Rust.
- maelstrom - stress-test your API reliability on concurrent threads, with latency metrics.
- 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.
- pageres-cli - Capture screenshots of websites in various resolutions. A good way to make sure your websites are responsive.
- posting - The modern API client that lives in your terminal, not unlike Postman and Insomnia.
- Reachable - Check if a domain is up.
- s3cmd - Command line tool for managing Amazon S3 and CloudFront services.
- Shopify Development Tools - Tools to assist with the development and/or maintenance of Shopify apps and stores.
- snallygaster - Tool to scan for secret files on HTTP servers.
- surge - Static web publishing on surge.sh CDN.
- 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.
- xpe - A command-line xpath tool that is easy to use.
<a name="writing"></a>Writing
Tools to assist the writing of text and documents, including translation, spell checking, etc..
- alex - Catch insensitive, inconsiderate writing, by finding gender favoring, polarizing, race related, or other unequal phrasing in text.
- cambd-cli - A CLI tool to automate the process to access the Cambridge dictionary.
- CLI-Dictionary - Scripts for downloading and viewing wiktionary entries from Kaikki.org.
- Grammatical - Corrects the spelling and grammar of your text using ChatGPT.
- GTT - Google Translate TUI - A TUI interface to bring Google Translation in the terminal.
- Translate Shell - Translator using Google Translate, Bing Translator, Yandex.Translate, etc.
- trino - Quick and easy translation of words and phrases entered in the command line.
- VocabCLI - Lightweight CLI that allows users to look up word definitions, examples, synonyms, and antonyms directly via the command line; it also offers advanced Text Classification and Processing via the use of Natural Language Processing and Machine Learning algorithms.
- write good - Naive linter for English prose.
<a name="resources"></a>Related resources
A list of some online resources that contribute interesting links to apps and info.
Toolleeo’s CLIpedia - Blog with information on CLI apps, screenshots and other details (license, author, etc.).
The Art of Command Line - A wonderful summary from Joshua Levy regarding command line (Bash in particular) tools, programs, tips, and tricks; contains many pointers to resources and repositories, in the form of "to do this you must know that", which gives great pointers but requires further investigation from different sources; translated in many languages.
Inconsolation blog - "Adventures with lightweight and minimalist software for Linux": reviews of many command-line programs; many programs reviewed (400+, at least), with screenshots and animated GIFs; the style of presentation is ironic and funny, but requires some effort to figure out the real contribution of a program.
A little collection of cool unix terminal/console/curses tools - "Some are little-known, some are just too useful to miss, some are pure obscure..." from Kristof Kovacs; nice list with screenshot; mostly oriented to system administration; unfortunately there are no clickable links.
Caleb Xu shell awesome - Focused on UNIX shell tools.
Adam Harris awesome CLI apps - Nice list of tools; somehow too much JavaScript/Node.js-centered for my tastes.
Marcel Bischoff awesome commandd line apps - Nice up-to-date list of useful tools.
Awesome CLI by sintaxi - Relatively short list with short descriptions; with some original entries.
awesome-ttygames - Large awesome list of terminal games. The collection is maintained in a YAML format. Each item contains a description and an optional screencast.
Site Generators - A comprehensive list of Static Site Generators.
Awesome git addons - A curated list of add-ons that extend/enhance the git CLI.
Terminals Are Sexy - A curated list of Terminal frameworks, plugins & resources for CLI lovers.
Awesome Terminal Recorder - Curated list of outstanding terminal Recorder that make your day brighter! Each item is associated with an animated GIF that shows some examples of usage.
commandlinefu.com - The place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too.
cli.club - A collection of the best CLI/ncurses software covering a wide range of categories from messaging, music, text editing and more.
texteditors.org - A huge collection of links to resources on text editor. It contains references to non-CLI programs.
Terminal Trove - Collection of terminal CLI/TUI programs, with one page per program, nice screenshots and animated GIFs.
<a name="contribute"></a>How to contribute
If you have any suggestion or want your project to be included in the list, you can contribute in the following ways.
As a follower of the 0-inbox approach for emails, I strive to maintain a 0-length list of pull requests for new contributions.
Open an issue
To suggest a new program, check the existence of the program in the list. If it is not present, you can open an issue including the following items:
name
: Name of the programhomepage
: URL of the homepage (if it exists)git
: URL of a clonable git repository (if it exists)description
: Text with the description of the program
At least one of the two items homepage
and git
must be present.
Pull request on data/apps.csv
The peculiarity of this repository is that the source of information is structured into CSV files with a simple structure.
See the data/
directory.
If you want to contribute using a pull request, add the new entry to data/apps.csv
.
In the CSV file, the git
field refers to a clonable git URL.
Please make changes to the CSV file only, not to the README file. I will review the request and, upon acceptance, I will take care of generating the README and updating the list.
Contribution via email
If you prefer an email, contact me at toolleeo@gmail.com
by sending the same information required for the "open an issue" method.
Generation of the README file
If necessary, this README
file can be (re-)generated from the CSV files.
To build README.md
run:
make
python3
is required for building. And make
, of course. :-)