Skip to content

Instantly share code, notes, and snippets.

@fredjoseph
Last active July 2, 2025 12:11
Show Gist options
  • Save fredjoseph/11844adde4c4dfe46382af4a7c79dc78 to your computer and use it in GitHub Desktop.
Save fredjoseph/11844adde4c4dfe46382af4a7c79dc78 to your computer and use it in GitHub Desktop.
Awesome CLI/Terminal Apps

Awesome Apps

  • description: Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, fish, tmux, IPython, Awesome, i3 and Qtile.
  • language: Python
  • description: If you like the interface of HTTPie but miss the features of curl, curlie is what you are searching for. Curlie is a frontend to curl that adds the ease of use of httpie, without compromising on features and performance. All curl options are exposed with syntax sugar and output formatting inspired from httpie.
  • language: Go
  • description: Glances is a cross-platform monitoring tool which aims to present a large amount of monitoring information through a curses or Web based interface (information can be customised through many plugins)
  • language: Python
  • description: Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands - It requires ncurses.
  • language: C
  • description: jq is a lightweight and flexible command-line JSON processor.
  • language: C
  • description: pup is a command line tool for processing HTML. It reads from stdin, prints to stdout, and allows the user to filter parts of the page using CSS selectors (inspired by jq)
  • language: Go
  • description: Make JSON greppable! gron transforms JSON into discrete assignments to make it easier to grep for what you want and see the absolute 'path' to it.
  • language: Go
  • description: fastgron transforms JSON into discrete assignments to make it easier to grep for what you want and see the absolute 'path' to it. It eases the exploration of APIs that return large blobs of JSON but have terrible documentation.
  • language: C++
  • description: q is a command line tool that allows direct execution of SQL-like queries on CSVs/TSVs (and any other tabular text files).
  • language: Python
  • description: trdsql is a CLI tool that can execute SQL queries on CSV/LTSV/JSON/TBLN. It is a tool like q, textql and others. The difference from these tools is that the syntax of PostgreSQL or MySQL can be used.
  • language: Go
  • description: prettyping is a wrapper around the standard ping tool with the objective of making the output prettier, more colorful, more compact, and easier to read - It requires bash but can be used on other shells
  • language: Shell (bash)
  • description: Ping, but with a graph
  • language: Rust
  • description: htop is an interactive process viewer - It requires ncurses.
  • language: C
  • description: fzf is a general-purpose command-line fuzzy finder. It's an interactive Unix filter for command-line that can be used with any list; files, command history, processes, hostnames, bookmarks, git commits, etc.
  • language: Go
  • description: z tracks your most used directories (based on 'frequency') and allows to jump to them.
  • language: Shell (Bash and zsh)
  • description: zsh-z is a native ZSH port of rupa/z.
  • language: Shell (zsh)
  • description: A shell plugin that seamlessly adds fuzzy search to tab completion of z, lets you easy to jump around among your historical directories - It requires fzf and z.
  • language: Shell (Bash and zsh)
  • description: This plugin can be used to create, delete, and navigate marks in bash and zsh - It requires fzf.
  • language: Shell (Bash and zsh)
  • description: Highlight converts sourcecode to HTML, XHTML, RTF, ODT, LaTeX, TeX, SVG, BBCode, Pango markup and terminal escape sequences with coloured syntax highlighting.
  • language: C++
  • description: nnn (n³) is a full-featured terminal file manager. It can analyze disk usage, batch rename, launch apps and pick files. The plugin repository has tons of plugins to extend the capabilities further e.g. preview, (un)mount disks, find & list, file/dir diff, upload files.
  • language: C
  • description: has checks presence of various command line tools on the PATH and reports their installed version - It requires bash but can be used on other shells
  • language: Shell (bash)
  • description: Unified access to the best community driven cheat sheets repositories of the world.
  • language: Python
  • description: Same as cheat.sh. By default, this implementation uses the same cheatsheets repository as cheat.sh, but additional repositories can be added (e.g a personnal repository).
  • language: Go
  • description: Ncdu is a disk usage analyzer with an ncurses interface - It requires ncurses.
  • language: C
  • description: A utility for running arbitrary commands when files change.
  • language: C
  • description: Universal Ctags generates an index (or tag) file of language objects found in source files for many popular programming languages. This index makes it easy for text editors and other tools to locate the indexed items.
  • language: C
  • description: direnv is an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory - It requires a supported shell (bash, zsh, tcsh, fish, elvish)
  • language: Go
  • description: lnav is an enhanced log file viewer that takes advantage of any semantic information that can be gleaned from the files being viewed, such as timestamps and log levels. Using this extra semantic information, lnav can do things like interleaving messages from different files, generate histograms of messages over time, and providing hotkeys for navigating through the file.
  • language: C++
  • description: The Perl script colordiff is a wrapper for diff and produces the same output but with pretty 'syntax' highlighting.
  • language: Perl
  • description: Difftastic is an experimental diff tool that compares files based on their syntax
  • language: Rust
  • description: vnStat is a console-based network traffic monitor that uses the network interface statistics provided by the kernel as information source. This means that vnStat won't actually be sniffing any traffic and also ensures light use of system resources regardless of network traffic rate.
  • language: C
  • description: Simple command-line snippet manager
  • language: Go
  • description: A cat clone with syntax highlighting and Git integration.
  • language: Rust
  • description: exa is a modern replacement for the command-line program ls that ships with Unix and Linux operating systems, with more features and better defaults. It uses colours to distinguish file types and metadata. It knows about symlinks, extended attributes, and Git
  • language: Rust
  • description: lsd is a modern replacement for the command-line program ls (alternative to exa)
  • language: Rust
  • description: fd is a simple, fast and user-friendly alternative to find.
  • language: Rust
  • description: procs is a replacement for ps
  • language: Rust
  • description: sd is an intuitive find & replace CLI.
  • language: Rust
  • description: Disk Usage
  • language: Go
  • description: ripgrep is a line-oriented search tool that recursively searches your current directory for a regex pattern. By default, ripgrep will respect your .gitignore and automatically skip hidden files/directories and binary files
  • language: Rust
  • description: 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.
  • language: Rust
  • description: A command-line benchmarking tool.
  • language: Rust
  • description: A very fast implementation of tldr in Rust: Simplified, example based and community-driven man pages.
  • language: Rust
  • description: A very fast implementation of tldr in Go: Simplified, example based and community-driven man pages with smart user interaction. tldr++ seperates itself from any other tldr client with convenient user guidance feature.
  • language: Go
  • description: bandwhich is a CLI utility for displaying current network utilization by process, connection and remote IP/hostname.
  • language: Rust
  • description: A dmesg implementation in Rust. Reads (and prints) the kernel log buffer.
  • language: Rust
  • description: A faster way to navigate your filesystem. An alternative to z + fz
  • language: Rust
  • description: A terminal interface for StackOverflow written in Rust.
  • language: Rust
  • description: Blazing fast terminal client for git written in Rust. A faster alternative to tig
  • language: Rust
  • description: A new type of shell.
  • language: Rust
  • description: A better way to navigate directories.
  • language: Rust
  • description: A viewer for git and diff output
  • language: Rust
  • description: cointop is a fast and lightweight interactive terminal based UI application for tracking and monitoring cryptocurrency coin stats in real-time.
  • language: Go
  • description: bpytop is a resource monitor that shows usage and stats for processor, memory, disks, network and processes.
  • language: Python
  • description: glow allows to render markdown on the CLI
  • language: Go
  • description: command-line based markdown presentation tool
  • language: C
  • description: gh is GitHub on the command line. It brings pull requests, issues, and other GitHub concepts to the terminal next to where you are already working with git and your code.
  • language: Go
  • description: tmpmail is a command line utility written in POSIX sh that allows you to create a temporary email address and receive emails to it. It uses 1secmail's API to receive emails.
  • language: Shell
  • description: dbcli contains CLIs for databases with auto-completion and syntax highlighting (pgcli for Postgres, mycli for MySQL, litecli for SQLite).
  • language: Python
  • description: Remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes. Mosh is a replacement for interactive SSH terminals. It's more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.
  • language: C++
  • description: sad is a Batch File Edit tool. It show you a really nice diff of proposed changes before you commit them.
  • language: Rust
  • description: A command line tool which helps you navigate faster by learning your habits. (alternative to z + fz)
  • language: Lua
  • description: Simplistic interactive filtering tool. peco can be a great tool to filter stuff like logs, process stats, find files, because unlike grep, you can type as you think and look through the current results.
  • language: Go
  • description: McFly replaces your default ctrl-r shell history search with an intelligent search engine that takes into account your working directory and the context of recently executed commands. McFly's suggestions are prioritized in real time with a small neural network.
  • language: Rust
  • description: choose is a a human-friendly and fast alternative to cut and (sometimes) awk
  • language: Rust
  • description: dog is a command-line DNS client, like dig. It has colourful output, understands normal command-line argument syntax, supports the DNS-over-TLS and DNS-over-HTTPS protocols, and can emit JSON.
  • language: Rust
  • description: SDKMAN is a tool for managing parallel Versions of multiple Software Development Kits on any Unix based system. It provides a convenient command line interface for installing, switching, removing and listing Candidates. Many applications based on JVM (Java, kotlin, groovy, maven...) can be installed with this tool.
  • language: gherkin, groovy
  • description: Huber is to simplify the package management from GitHub projects with a builtin awesome list (live updating) of popular projects. It also supports repository feature for managing the package installation from your personal Github project.
  • language: Rust
  • description: xsv is a command line program for indexing, slicing, analyzing, splitting and joining CSV files. Commands should be simple, fast and composable
  • language: Rust
  • description: qsv is a command line program for querying, indexing, slicing, analyzing, filtering, enriching, transforming, sorting, validating & joining CSV files.
  • language: Rust
  • description: tv is a cross-platform csv pretty printer that uses column styling to maximize viewer enjoyment.
  • language: Rust
  • description: Neofetch is a command-line system information tool written in bash 3.2+. Neofetch displays information about your operating system, software and hardware in an aesthetic and visually pleasing way.
  • language: Bash
  • description: Context-based replacement/enhancement for zsh and bash shell history. Search your history by commands and get relevant results based on current directory, git repo, exit status, and host.
  • language: Go
  • description: 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.
  • language: Rust
  • description: mprocs runs multiple commands in parallel and shows output of each command separately. Can be installed as a NPM package
  • language: Rust
  • description: A Kakoune/Neovim inspired editor, written in Rust. A powerful editor with a lot of built-in features (tree-sitter, LSP, fuzzy finder...) avoiding to install and configure many plugins (zero-configuration tool).
  • language: Rust
  • description: A tmux alternative with a lot of built-in features (zero-configuration tool, but plugins are availables)
  • language: Rust

NPM packages

  • description: A caniuse command line tool! All the power of caniuse.com with none of the nice UI or interactivity!
  • description: A Node.js based command-line client for tldr.
  • description: A command-line JSON processing tool
  • description: A cross-platform command-line tool to to fabulously search and kill processes.
  • description: A graphical activity monitor for the command line.
  • description: A CLI tool for learning commands from your terminal. kmdr provides command explanations for hundreds of programs including git, docker, kubectl, npm, go and more straight forward programs such as those built into bash.
  • description: http-server is a simple, zero-configuration command-line http server. It is powerful enough for production usage, but it's simple and hackable enough to be used for testing, local development, and learning.
  • description: This is a little development server with live reload capability. Use it for hacking your HTML/JavaScript/CSS files, but not for deploying the final site.
  • description: This tool allows you to list any node_modules directories in your system, as well as the space they take up. You can then select which ones you want to erase to free up space.
  • description: Immersive terminal interface for managing docker containers and services
  • description: how2 finds the simplest way to do something in a unix shell. It's like man, but you can query it in natural language.
  • description: undollar strips the dollar sign from the beginning of the terminal command you just pasted
  • description: nb is a command line note-taking, bookmarking, archiving, and knowledge base application.
  • description: A tool for writing better scripts
  • description: This lets you decode the URI generated by Google Authenticator.

Interesting Apps

  • description: k is a zsh script / plugin to make directory listings more readable, adding a bit of color and some git status information on files and directories.
  • language: Shell (zsh only)
  • description: kb is a minimalist knowledge base manager.
  • language: Python
  • description: fzy is a fast, simple fuzzy text selector for the terminal with an advanced scoring algorithm.
  • language: C
  • description: buku is a powerful bookmark manager.
  • language: Python
  • description: saidar provides a curses-based interface to viewing the current state of the system.
  • language: C
  • description: Single binary terminal-based TODO manager with git-based sync + markdown notes per task
  • language: Go
  • description: Tasks, boards & notes for the command-line habitat
  • language: JavaScript
  • description: This tool is designed to help you use git more efficiently. It's lightweight and easy to use. Powered by junegunn/fzf.
  • language: Shell
  • description: A CLI interface to git that relies heavily on fzf
  • language: Shell
  • description: Visually simulate Git operations in your own repos with a single terminal command. This generates an image (default) or video visualization depicting the Git command's behavior.
  • language: Python
  • description: micro is a terminal-based text editor that aims to be easy to use and intuitive, while also taking advantage of the capabilities of modern terminals.
  • language: Go
  • description: gix is a command-line interface (CLI) to access git repositories. It's written to optimize the user-experience, and perform as good or better than the canonical implementation.
  • language: Rust
  • description: autojump is a faster way to navigate your filesystem. It works by maintaining a database of the directories you use the most from the command line.
  • language: Python
  • description: A cross-platform graphical process/system monitor with a customizable interface and a multitude of features.
  • language: Rust
  • description: zfm is a minimal command line bookmark manager for zsh built on top of fzf.
  • language: Shell
  • description: Replace zsh's default completion selection menu with fzf.
  • language: Shell
  • description: Taskwarrior is a GTD, todo list, task management, command line utility with a multitude of features.
  • language: C++/Perl/Python
  • description: A Terminal User Interface for Taskwarrior.
  • language: Rust
  • description: Easily view, navigate and search your command history with shell history suggest box
  • language: C/C++
  • description: View images from the terminal
  • language: Rust
  • description: An interactive cheatsheet tool for the command-line and application launchers.
  • language: Rust
  • description: Arsenal is just a quick inventory, reminder and launcher for pentest commands. This project written by pentesters for pentesters simplify the use of all the hard-to-remember commands. Alternative to navi with some advantages but less powerful.
  • language: Python
  • description: Like du but more intuitive. Dust is meant to give you an instant overview of which directories are using disk space without requiring sort or head.
  • language: Rust
  • description: A minimal, fast alternative to du -sh. diskus is a very simple program that computes the total size of the current directory.
  • language: Rust
  • description: Pretty fast disk usage analyzer written in Go. Gdu is intended primarily for SSD disks where it can fully utilize parallel processing (faster than dust).
  • language: Go
  • description: pastel is a command-line tool to generate, analyze, convert and manipulate colors
  • language: Rust
  • description: Terminal stock watcher and stock position tracker
  • language: Go
  • description: fzfX multiplies the power of fzf by providing zero-configuration battle-tested applications to common use cases of fzf. It delivers the power of finding, previewing, editing and managing any file in few key strokes.
  • language: Shell
  • description: One theme script to rule them all (270+ preloaded themes).
  • language: Shell
  • description: Browse trending projects on Github from your command line.
  • language: Python
  • description: Find email addresses of Github users
  • language: Python
  • description: ratt is a tool for converting websites to rss/atom feeds. It uses config files which define the extraction of the feed data by using css selectors, or Lua script.
  • language: Go
  • description: HTTPie is a command-line HTTP client. Its goal is to make CLI interaction with web services as human-friendly as possible.It uses simple and natural syntax and provide formatted and colorized output.
  • language: Python
  • description: xh is a friendly and fast tool for sending HTTP requests. It reimplements as much as possible of HTTPie's excellent design.
  • language: Rust
  • description: McFly replaces your default ctrl-r shell history search with an intelligent search engine that takes into account your working directory and the context of recently executed commands. McFly's suggestions are prioritized in real time with a small neural network.
  • language: Rust
  • description: The minimal, blazing-fast, and infinitely customizable prompt for any shell.
  • language: Rust
  • description: grex is a library as well as a command-line utility that is meant to simplify the often complicated and tedious task of creating regular expressions. It does so by automatically generating a single regular expression from user-provided test cases. The resulting expression is guaranteed to match the test cases which it was generated from.
  • language: Rust
  • description: Funky takes shell functions to the next level by making them easier to define, more flexible, and more interactive. The way funky works is simple: as you enter a directory, funky looks for a .funky file which contains a list of bash functions. It loads them, and when you leave, it unloads them.
  • language: Python
  • description: Earthly is a build automation tool for the container era. It allows you to execute all your builds in containers. This makes them self-contained, repeatable, portable and parallel. You can use Earthly to create Docker images and artifacts (e.g., binaries, packages, arbitrary files)
  • language: Go
  • description: Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server.
  • language: Rust
  • description: just is a handy way to save and run project-specific commands
  • language: Rust
  • description: Modern watch command.
  • language: Go
  • description: You have a lot of version control repositories. Sometimes you want to update them all at once. Or push out all your local changes. You use special command lines in some repositories to implement specific workflows. Myrepos provides a mr command, which is a tool to manage all your version control repositories. An alternative is to use the git for-each-repo command
  • language: Perl
  • description: Rich-cli is a command line toolbox for fancy output in the terminal, built with Rich
  • language: Python
  • description: A tool for glamorous shell scripts.
  • language: Go
  • description: tere is a terminal file explorer. It is a faster alternative to using cd and ls to browse folders in your terminal.
  • language: Rust
  • description: a TUI playground for exploring jq.
  • language: Go
  • description: hishtory is a better shell history. It stores your shell history in context.
  • language: Python
  • description: A simple Web Ui for Docker. Aternative to portainer
  • language: Node
  • description: A terminal file manager
  • language: Go
  • description: YouPlot is a command line tool that draws plots on the terminal.
  • language: Ruby
  • description: fq is inspired by the well known jq tool and language and allows you to work with binary formats the same way you would using jq.
  • language: Go
  • description: Like jq, but for HTML. Uses CSS selectors to extract bits of content from HTML files.
  • language: Rust
  • description: Application to comfortably monitor your network traffic
  • language: Rust
  • description: Gut is an alternative CLI for Git. It provides a consistent naming of commands and a useful set of features.
  • language: Go
  • description: Frogmouth is a Markdown viewer/browser for your terminal, built with Textual.
  • language: Python
  • description: watchexec is a simple, standalone tool that watches a path and runs a command whenever it detects modifications.
  • language: Rust
  • description: GooFuzz is a script written in Bash Scripting that uses advanced Google search techniques to obtain sensitive information in files or directories without making requests to the web server.
  • language: Shell
  • description: pkgx is a single, standalone binary that can run anything
  • language: TypeScript
  • description: A simple and famous terminal UI for git commands
  • language: Go

NPM packages

  • description: diff-so-fancy strives to make your diffs human readable instead of machine readable.
  • description: Interactive UI to view and switch branches with fuzzy search
  • note: Requires Node 12 or higher
  • description: See your latest local git branches
  • description: Kill all Chrome tabs to improve performance, decrease battery usage, and save memory
  • description: Convert Currency Rates directly from your Terminal!
  • description: Transpile curl commands into C#, ColdFusion ML, Clojure, Dart, Elixir, Go, Java, JavaScript, MATLAB, PHP, Python, R, Ruby, Rust, Wget, Ansible, HAR or JSON.
  • description: Preevy is a powerful CLI tool designed to simplify the process of creating ephemeral preview environments. Using Preevy, you can easily provision any Docker-Compose application on AWS using affordable Lightsail, Google Cloud, or Microsoft Azure VMs (support for more cloud providers is on the way).

Snippets

  • language: python 3
  • language: typescript
  • language: go
  • language: python
  • language: Rust

See Also

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment