Skip to content

thegdsks/awesome-modern-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Awesome Modern CLI

Stars Tools License Last Commit

A curated list of modern alternatives to classic command-line tools.

Faster, prettier, smarter replacements for the Unix utilities you use every day.

What is this? · Contribution guide · Code of conduct


Highlights

bat
cat with syntax highlighting

btop
beautiful system monitor

lazygit
terminal UI for git

delta
syntax-aware diff viewer

starship
customizable shell prompt

fzf
fuzzy finder for everything

gping
ping with a graph

lazydocker
terminal UI for Docker

More highlights (eza, ripgrep, zoxide, hyperfine)
eza
modern ls replacement

ripgrep
extremely fast grep

zoxide
smarter cd

hyperfine
command benchmarking


Contents


File Listing

Replacements for ls and tree.

  • broot - A new way to see and navigate directory trees with fuzzy search. Rust
  • eza - A modern, maintained replacement for ls with colors, icons, and git integration. Rust
  • lla - A fast ls alternative with a plugin system for extended functionality. Rust
  • lsd - The next gen ls command with pretty colors and file icons. Rust
  • pls - ls for the pros, with developer-friendly features and Nerd Font icons. Rust
  • tre - A tree command improved with git awareness and editor integration. Rust

⬆ back to top

File Search

Replacements for find.

  • fd - A simple, fast, and user-friendly alternative to find. Rust
  • fselect - Find files with SQL-like queries. Rust

⬆ back to top

File Management

Replacements for ranger, rm, cp, and file managers.

  • clifm - A command-line file manager that lives in the shell. C
  • f2 - Cross-platform tool for fast, safe, and flexible batch renaming. Go
  • fclones - Efficient duplicate file finder and remover. Rust
  • fuc - Fast cp and rm commands for modern hardware. Rust
  • joshuto - Ranger-like terminal file manager with vi keybindings. Rust
  • kondo - Find and delete software project build artifacts to reclaim disk space. Rust
  • lf - Fast, extensively customizable terminal file manager. Go
  • nnn - The unorthodox terminal file manager, tiny and blazing fast. C
  • nomino - Batch rename utility using regex, sort, and map. Rust
  • rip - A safe and ergonomic alternative to rm with a graveyard for recovery. Rust
  • superfile - Pretty and modern terminal file manager. Go
  • xplr - A hackable, minimal, fast TUI file explorer. Rust
  • yazi - Blazing fast terminal file manager with async I/O and image preview. Rust

⬆ back to top

Text Search

Replacements for grep and ag.

  • ast-grep - Structural code search, lint, and rewriting using AST patterns. Rust
  • rare - Real-time regex-powered aggregation and analytics on the command-line. Go
  • ripgrep - An extremely fast alternative to grep that respects gitignore. Rust
  • ripgrep-all - ripgrep, but also searches PDFs, e-books, Office documents, zip, and archives. Rust
  • sig - Interactive grep for streaming data. Rust
  • srgn - A grep-like tool that understands source code syntax. Rust

⬆ back to top

Text Processing

Replacements for sed, awk, cut, and uniq.

  • choose - A human-friendly and fast alternative to cut and awk. Rust
  • grex - Generate regular expressions from user-provided test cases. Rust
  • hck - A faster and more featureful drop-in replacement for cut. Rust
  • rargs - xargs + awk with pattern matching support. Rust
  • runiq - Efficient way to filter duplicate lines from unsorted input. Rust
  • ruplacer - Find and replace text across multiple source files. Rust
  • scooter - Interactive find and replace in the terminal. Rust
  • sd - An intuitive find-and-replace CLI, a simpler sed alternative. Rust

⬆ back to top

Text Viewing

Replacements for cat, less, and hexdump.

  • bat - A cat clone with syntax highlighting and Git integration. Rust
  • fblog - Small command-line JSON log viewer with smart formatting. Rust
  • glow - Render markdown beautifully in the terminal. Go
  • hexyl - A command-line hex viewer with colored output. Rust
  • lnav - An advanced log file viewer with automatic format detection. C++
  • mdcat - Render Markdown in the terminal with syntax highlighting, links, and inline images. Rust
  • tailspin - A log file highlighter that works out of the box. Rust

⬆ back to top

Text Editors

Modern terminal-based editors.

  • amp - A complete text editor for your terminal inspired by Vi/Vim. Rust
  • edit - A simple terminal text editor from Microsoft, paying homage to MS-DOS Editor. Rust
  • fresh - A TUI code editor with IDE features like LSP, git integration, and file tree. Rust
  • helix - A post-modern modal text editor with built-in LSP and tree-sitter. Rust
  • kakoune - Modal editor with multi-selection first design. C++
  • Lapce - A lightning-fast and powerful code editor with native GUI. Rust
  • micro - A modern and intuitive terminal-based text editor, replaces nano. Go
  • neovim - Vim-fork focused on extensibility and usability with Lua plugin system. C
  • ox - An independent terminal text editor, simple and practical. Rust
  • zed - A high-performance multiplayer code editor from the creators of Atom. Rust

⬆ back to top

JSON / YAML / CSV

Replacements for jq, data viewers, and structured data tools.

  • csvlens - A TUI CSV file viewer, like less but made for tabular data. Rust
  • dasel - Query and modify JSON, YAML, TOML, and XML from the command line. Go
  • dyff - A diff tool for YAML files with semantic awareness. Go
  • fx - Terminal JSON viewer and processor with interactive mode. Go
  • gron - Make JSON greppable by flattening it to discrete assignments. Go
  • jaq - A jq clone focused on correctness, speed, and simplicity; a near drop-in replacement for jq for most queries. Rust
  • jless - A command-line JSON viewer with vim-like navigation. Rust
  • jnv - Interactive JSON filter using jq expressions with live preview. Rust
  • jq - The original lightweight command-line JSON processor. C
  • jsongrep - Fast search tool for JSON, YAML, and TOML with path query syntax. Rust
  • qsv - A high-performance CSV toolkit, xsv fork with 34+ extra commands. Rust
  • sc-im - A vim-like spreadsheet calculator for the terminal. C
  • Tabiew - Lightweight TUI to view and query CSV, TSV, and Parquet files. Rust
  • visidata - A terminal spreadsheet multitool for exploring and arranging data. Python
  • xq - XML and HTML beautifier and content extractor. Go
  • xsv - A fast CSV command line toolkit for slicing, indexing, and searching. Rust
  • yq - jq wrapper for YAML, XML, and TOML documents. Python

⬆ back to top

Shell & Prompt

Modern shells and prompt customization.

  • elvish - An expressive shell with a real programming language built-in. Go
  • fish - The user-friendly command-line shell with autosuggestions. Rust
  • nushell - A new type of shell with structured data pipelines. Rust
  • oh-my-posh - A prompt theme engine for any shell with extensive themes. Go
  • starship - Minimal, blazing-fast, and infinitely customizable prompt for any shell. Rust

⬆ back to top

Shell History

Replacements for ctrl+r history search.

  • atuin - Magical shell history stored in a SQLite database with optional encrypted sync. Rust
  • mcfly - Fly through shell history with intelligent context-aware search. Rust

⬆ back to top

Navigation

Replacements for cd and directory jumping.

  • autojump - A cd command that learns from your navigation patterns. Python
  • tere - A faster alternative to cd + ls for navigating directories. Rust
  • zoxide - A smarter cd command that learns your habits. Rust

⬆ back to top

Fuzzy Finding

Interactive filtering and selection tools.

  • fzf - A general-purpose command-line fuzzy finder. Go
  • skim - A general-purpose fuzzy finder in Rust, similar to fzf. Rust
  • television - A blazing fast general-purpose fuzzy finder TUI. Rust

⬆ back to top

Version Control

Git TUIs and enhanced git workflows.

  • gh-dash - A beautiful TUI dashboard for GitHub pull requests and issues. Go
  • git-cliff - A highly customizable changelog generator following Conventional Commits. Rust
  • git-extras - Git utilities like repo summary, changelog, and commit percentages. Shell
  • gita - Manage multiple git repos side by side. Python
  • gitui - Blazing fast terminal client for git. Rust
  • jj - A Git-compatible VCS with simpler CLI, first-class conflicts, and auto-rebasing. Rust
  • lazygit - A simple terminal UI for git commands. Go
  • onefetch - Command-line Git information tool showing repo stats. Rust
  • sapling - A scalable, user-friendly source control system from Meta. Rust
  • serie - A rich git commit graph viewer for the terminal. Rust
  • soft-serve - A tasty, self-hostable Git server for the command line. Go
  • tig - Text-mode interface for git with browse and blame modes. C

⬆ back to top

Diff Tools

Better alternatives to diff.

  • delta - A syntax-highlighting pager for git, diff, and grep output. Rust
  • difftastic - A structural diff that understands syntax across 30+ languages. Rust

⬆ back to top

System Monitoring

Replacements for top, htop, and system info tools.

  • bandwhich - Terminal bandwidth utilization tool showing per-process usage. Rust
  • bottom - A cross-platform graphical process/system monitor. Rust
  • btop - A resource monitor with beautiful TUI and extensive features. C++
  • fastfetch - A fast system information tool, neofetch replacement. C
  • glances - An eye on your system with a top/htop alternative and web mode. Python
  • gotop - Terminal-based graphical activity monitor. Go
  • kmon - Linux Kernel Manager and Activity Monitor. Rust
  • macmon - Sudoless performance monitoring for Apple Silicon. Rust
  • nvtop - GPU process monitoring for AMD, Intel, and NVIDIA. C
  • procs - A modern replacement for ps written in Rust. Rust
  • systeroid - A more powerful alternative to sysctl with a terminal UI. Rust
  • zenith - In-terminal graphical metrics with CPU, GPU, network, and disk charts. Rust

⬆ back to top

Process Management

Replacements for nohup, bg, and kill.

  • mprocs - Run multiple commands in parallel and view their output in a TUI. Rust
  • pik - TUI tool to find and kill processes interactively. Rust
  • process-compose - A scheduler and orchestrator for non-containerized processes with TUI. Go
  • pueue - Manage long-running shell commands with a daemon and TUI. Rust

⬆ back to top

Disk Usage

Replacements for du and df.

  • diskonaut - Terminal visual disk space navigator. Rust
  • dua-cli - Disk usage analyzer with interactive navigation. Rust
  • duf - A better df alternative with color-coded output and filtering. Go
  • dust - A more intuitive version of du with visual output. Rust
  • gdu - Fast disk usage analyzer with console interface. Go
  • ncdu - A disk usage analyzer with an ncurses interface. Zig

⬆ back to top

Network Tools

Tools for network diagnostics, scanning, traffic analysis, and file serving/transfer.

  • copyparty - Portable file server with resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, and media indexing. Python
  • gping - Ping, but with a graph. Rust
  • miniserve - Serve files over HTTP from the terminal with a single command. Rust
  • netscanner - A TUI network scanner. Rust
  • nibble - A fast local network scanner with hardware vendor detection and service names. Go
  • sniffnet - Monitor your network traffic easily with a cross-platform TUI. Rust
  • termshark - A terminal UI for tshark, inspired by Wireshark. Go
  • trippy - A network diagnostic tool combining ping and traceroute with rich TUI. Rust

⬆ back to top

HTTP Clients

Replacements for curl and wget.

  • aria2 - Ultra-fast download utility supporting HTTP, FTP, BitTorrent, and Metalink. C++
  • curlie - The power of curl, the ease of use of httpie. Go
  • httpie - A modern, user-friendly command-line HTTP client for the API era. Python
  • xh - A friendly and fast tool for sending HTTP requests, an HTTPie reimplementation. Rust

⬆ back to top

API Testing

Replacements for Postman and API debugging tools.

  • ATAC - A feature-full TUI API client, free, offline, and account-less. Rust
  • HTTP Prompt - An interactive HTTP client with autocomplete and syntax highlighting. Python
  • posting - A powerful HTTP client that lives in your terminal. Python

⬆ back to top

DNS Tools

Replacements for dig and nslookup.

  • doggo - Command-line DNS client for humans with color-coded output. Go

⬆ back to top

Benchmarking

Replacements for time and load testing tools.

  • hyperfine - A command-line benchmarking tool with statistical analysis. Rust
  • oha - HTTP load generator with a real-time TUI. Rust

⬆ back to top

Compression

Replacements for tar, gzip, and unzip.

  • crabz - Multi-threaded compression and decompression CLI tool. Rust
  • ouch - Painless compression and decompression, smart format detection. Rust

⬆ back to top

File Transfer

Replacements for scp and rsync.

  • croc - Easily and securely send things from one computer to another. Go
  • portal - Send files between computers through an encrypted peer-to-peer tunnel. Go
  • rclone - Sync files with any cloud provider, an rsync for cloud storage. Go
  • termscp - TUI file transfer and explorer with SCP, SFTP, FTP, and S3 support. Rust

⬆ back to top

Terminal Emulators

Modern GPU-accelerated terminal emulators.

  • alacritty - A cross-platform, GPU-enhanced terminal emulator focused on speed. Rust
  • Ghostty - Fast, feature-rich, cross-platform terminal emulator with native platform UI. Zig
  • rio - A hardware-accelerated GPU terminal emulator powered by WebGPU. Rust
  • Warp - AI-powered modern terminal with structured command history and IDE-like features. Rust
  • wezterm - A GPU-accelerated terminal emulator and multiplexer with Lua config. Rust

⬆ back to top

Terminal Multiplexers

Replacements for tmux and screen.

  • tmux - The classic terminal multiplexer with extensive plugin ecosystem. C
  • zellij - A terminal workspace with batteries included, a tmux alternative. Rust

⬆ back to top

Task Runners

Replacements for make and build tools.

  • bacon - Background code checker, designed for Rust but works for any language. Rust
  • entr - Run arbitrary commands when files change. C
  • just - A handy command runner for project-specific tasks, a modern make. Rust
  • watchexec - Execute commands in response to file modifications. Rust

⬆ back to top

Version Managers

Replacements for nvm, pyenv, and asdf.

  • fnm - Fast Node Manager, a cross-platform nvm replacement. Rust
  • mise - A polyglot tool version manager and task runner, asdf replacement. Rust
  • volta - JavaScript toolchain manager that pins exact versions per project. Rust

⬆ back to top

JS / TS Toolchain

Modern JavaScript and TypeScript build tools and runtimes.

  • Bun - All-in-one JavaScript runtime, bundler, test runner, and package manager. Zig
  • Deno - A secure JavaScript/TypeScript runtime with built-in tooling. Rust
  • oxc - A high-performance collection of JS/TS tools, 50-100x faster than ESLint. Rust
  • SWC - A super-fast TypeScript/JavaScript compiler, replaces Babel. Rust
  • Turborepo - High-performance build system for JavaScript/TypeScript monorepos. Rust

⬆ back to top

Static Site Generators

Build static websites from templates and content.

  • hugo - The world's fastest static site generator with multi-language support. Go
  • zola - A fast static site generator in a single binary with built-in Sass and syntax highlighting. Rust

⬆ back to top

Container Tools

Docker TUIs and container management.

  • ctop - Top-like interface for container metrics. Go
  • dive - Tool for exploring each layer in a Docker image. Go
  • lazydocker - The lazier way to manage everything Docker. Go
  • nerdctl - Docker-compatible CLI for containerd with Compose and rootless support. Go
  • oxker - A simple TUI to view and control Docker containers. Rust

⬆ back to top

Kubernetes

kubectl alternatives and K8s TUIs.

  • k9s - TUI for managing Kubernetes clusters. Go
  • kdash - A simple and fast dashboard for Kubernetes. Rust
  • lfk - Yazi-inspired, vim-like keyboard focused Lightning Fast Kubernetes navigator. Go

⬆ back to top

Database Clients

Replacements for psql, mysql, and database GUIs.

  • harlequin - The SQL IDE for your terminal. Python
  • iredis - Redis client with autocompletion and syntax highlighting. Python
  • lazysql - A cross-platform TUI database management tool. Go
  • mycli - MySQL client with autocompletion and syntax highlighting. Python
  • pgcli - Postgres client with autocompletion and syntax highlighting. Python
  • rainfrog - Database management TUI for Postgres, MySQL, and SQLite. Rust
  • usql - Universal command-line SQL client with autocompletion. Go

⬆ back to top

Security Tools

Password managers, encryption, and security utilities.

  • cotp - Encrypted command-line TOTP/HOTP authenticator. Rust
  • feroxbuster - A fast, simple, recursive content discovery tool. Rust
  • flawz - A terminal UI for browsing security vulnerabilities (CVEs). Rust
  • gopass - Fully-featured password manager compatible with pass. Go
  • gpg-tui - A terminal user interface for GnuPG. Rust
  • rage - A simple, modern, and secure file encryption tool (age implementation). Rust

⬆ back to top

Calculator

Replacements for bc and calc.

  • fend - Arbitrary-precision unit-aware calculator. Rust
  • kalker - Scientific calculator with math-like syntax, complex numbers, and vectors. Rust

⬆ back to top

Documentation

Man page alternatives and documentation tools.

  • cheat - Create and view interactive cheatsheets on the command-line. Go
  • mdBook - Create books from Markdown, like GitBook but in Rust. Rust
  • navi - An interactive cheatsheet tool for the command-line. Rust
  • tealdeer - A very fast tldr client with offline caching. Rust
  • tectonic - A self-contained TeX/LaTeX engine that downloads packages on demand. C
  • thefuck - Corrects your previous console command when you mistype. Python
  • tldr - Simplified man pages with practical examples. Multi
  • Typst - A modern markup-based typesetting system, a LaTeX alternative. Rust

⬆ back to top

Presentation

Terminal-based presentation tools.

  • presenterm - A terminal slideshow tool that renders Markdown presentations. Rust
  • slides - Terminal-based presentation tool using Markdown. Go

⬆ back to top

Media

Music players, image viewers, and media tools.

  • asciinema - Record and share terminal sessions as lightweight text. Rust
  • freeze - Generate images of code and terminal output. Go
  • kew - A terminal music player that plays anything from your library with a single command. C
  • ncspot - Cross-platform ncurses Spotify client. Rust
  • oxipng - Multithreaded lossless PNG optimizer. Rust
  • pastel - Generate, analyze, convert, and manipulate colors. Rust
  • spotify-player - A Spotify player in the terminal with full feature parity. Rust
  • termusic - A terminal music player. Rust
  • vhs - Write terminal GIFs as code for documentation and demos. Go
  • yt-dlp - Download videos from YouTube and other sites, a youtube-dl fork. Python

⬆ back to top

Messaging

Terminal-based chat and email clients.

  • aerc - A pretty good email client for the terminal. Go
  • gomuks - A Matrix client for the terminal. Go
  • himalaya - CLI email client supporting IMAP, JMAP, and Maildir with scriptable interface. Rust
  • iamb - A Matrix client for Vim addicts. Rust
  • newsboat - An RSS/Atom feed reader for the text console. C++

⬆ back to top

Productivity

Task managers, clipboard, calendars, and shell utilities.

  • calcure - Modern TUI calendar and task manager. Python
  • Clipboard - Cut, copy, and paste anything from the terminal. C++
  • clipse - TUI clipboard manager. Go
  • envio - Modern environment variable manager with encrypted profiles. Rust
  • espanso - A cross-platform text expander. Rust
  • gum - A tool for glamorous shell scripts with prompts, spinners, and input widgets. Go
  • mods - AI on the command line, pipe stdin to LLMs and get structured output. Go
  • nb - A note-taking, bookmarking, and knowledge base application. Shell
  • topgrade - Upgrade all your tools at once. Rust

⬆ back to top

Code Counting

Replacements for cloc and wc -l.

  • scc - A very fast accurate code counter with complexity calculations. Go
  • tokei - Count lines of code quickly and accurately across many languages. Rust

⬆ back to top

Spelling & Linting

Code quality tools for the terminal.

  • biome - A fast formatter and linter for web projects, replaces ESLint + Prettier. Rust
  • ruff - An extremely fast Python linter and formatter. Rust
  • typos - Source code spell checker that finds and corrects common misspellings. Rust
  • uv - An extremely fast Python package and project manager. Rust

⬆ back to top

Tunneling

Replacements for ngrok and port forwarding tools.

  • bore - A simple CLI tool for exposing local ports to the internet. Rust
  • rathole - A lightweight, high-performance reverse proxy for NAT traversal. Rust

⬆ back to top

Web

Browsers, proxies, and web utilities.

  • browsh - A fully interactive, modern text-based browser. Go
  • carbonyl - Chromium running inside your terminal. Rust
  • mitmproxy - A free, interactive HTTPS proxy for debugging and testing. Python
  • monolith - Save complete web pages as a single HTML file with all assets embedded. Rust

⬆ back to top

Miscellaneous

Tools that defy easy categorization but are too good to leave out.

  • GQL - A SQL-like query language for .git repositories. Rust
  • httm - Interactive file-level Time Machine-like tool for ZFS/btrfs. Rust
  • prqlc - PRQL compiler, a pipelined modern alternative to SQL. Rust
  • rustic - Fast, encrypted, deduplicated backups, a restic alternative. Rust
  • uutils coreutils - Cross-platform Rust rewrite of the GNU coreutils (adopted by Ubuntu). Rust
  • vaultwarden - Lightweight Bitwarden server implementation. Rust
  • wttr.in - The right way to check the weather from the terminal. Python

⬆ back to top


Resources

  • awesome-cli-apps - A curated list of command line apps.
  • awesome-shell - A curated list of awesome command-line frameworks, toolkits, guides, and gizmos.
  • awesome-tuis - List of projects that provide terminal user interfaces.
  • Charm - Tools to make the command line glamorous (bubbletea, lipgloss, glow, etc.).
  • The Art of Command Line - Master the command line in one page.

Contributing

Contributions welcome! Read the contribution guidelines first.

Star History

Star History Chart

License

CC0

To the extent possible under law, the author has waived all copyright and related or neighboring rights to this work.

About

A curated list of modern alternatives to classic command-line tools. Faster, prettier, smarter replacements for the Unix utilities you use every day.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors