Essential CLI/TUI Tools for Developers
An opinionated list of CLI/TUI applications for developer productivity.
We, developers, spend a lot of time in our terminal. Or maybe we could spend even more, because there are so many great CLI/TUI tools that can boost the developer productivity, or just be fun to use.
This article contains a categorized list of CLIs / TUIs I personally use and those widely adopted in the development community.
Kubernetes
k9s - Kubernetes CLI To Manage Your Clusters In Style!
K9s provides a terminal UI to interact with your Kubernetes clusters. The aim of this project is to make it easier to navigate, observe and manage your applications in the wild. K9s continually watches Kubernetes for changes and offers subsequent commands to interact with your observed resources.
ktop - A top-like tool for your Kubernetes clusters.
Following the tradition of Unix/Linux top tools, ktop is a tool that displays useful metrics information about nodes, pods, and other workload resources running in a Kubernetes cluster.
kubectx - switch between contexts (clusters) on kubectl faster.
kubectx is a tool to switch between contexts (clusters) on kubectl faster.
kubens is a tool to switch between Kubernetes namespaces (and configure them for kubectl) easily.
kdash - A simple and fast dashboard for Kubernetes.
A simple terminal dashboard for Kubernetes built with Rust
kubescape - Kubernetes security platform for your IDE, CI/CD pipelines, and clusters.
Kubescape is an open-source Kubernetes security platform that provides comprehensive security coverage, from left to right across the entire development and deployment lifecycle. It offers hardening, posture management, and runtime security capabilities to ensure robust protection for Kubernetes environments. It saves Kubernetes users and admins precious time, effort, and resources.
Containers
ctop - A top-like interface for container metrics.
ctop provides a concise and condensed overview of real-time metrics for multiple containers.
ctop comes with built-in support for Docker and runC; connectors for other container and cluster systems are planned for future releases.
lazydocker - A simple terminal UI for both docker and docker-compose.
Memorising docker commands is hard. Memorising aliases is slightly less hard. Keeping track of your containers across multiple terminal windows is near impossible. What if you had all the information you needed in one terminal window with every common command living one keypress away (and the ability to add custom commands as well). Lazydocker's goal is to make that dream a reality.
dive - A tool for exploring each layer in a docker image.
A tool for exploring a docker image, layer contents, and discovering ways to shrink the size of your Docker/OCI image.
Files/Text
jq - Command-line JSON processor.
jq is a lightweight and flexible command-line JSON processor akin to sed, awk, grep, and friends for JSON data. It's written in portable C and has zero runtime dependencies, allowing you to easily slice, filter, map, and transform structured data.
bat - A cat(1) clone with wings.
bat is an enhanced version of the cat command, written in Rust, integrating syntax highlighting, git integration, and automatic paging.
Its syntax highlighting supports numerous programming and markup languages, making code more readable directly in the terminal. Git integration allows users to see modifications in relation to the index, highlighting the added or changed lines.
ripgrep - Recursively search directories for a regex pattern while respecting your gitignore.
ripgrep is a line-oriented search tool that recursively searches the current directory for a regex pattern. By default, ripgrep will respect gitignore rules and automatically skip hidden files/directories and binary files. (To disable all automatic filtering by default, use rg -uuu.) ripgrep has first class support on Windows, macOS and Linux, with binary downloads available for every release. ripgrep is similar to other popular search tools like The Silver Searcher, ack and grep.
rsync - A fast and extraordinarily versatile file copying tool for both remote and local files.
Rsync uses a delta-transfer algorithm which provides a very fast method for bringing remote files into sync. It does this by sending just the differences in the files across the link, without requiring that both sets of files are present at one of the ends of the link beforehand. At first glance this may seem impossible because the calculation of diffs between two files normally requires local access to both files.
fd - A simple, fast and user-friendly alternative to find.
fd is a program to find entries in your filesystem. It is a simple, fast and user-friendly alternative to find. While it does not aim to support all of find's powerful functionality, it provides sensible (opinionated) defaults for a majority of use cases.
Git
lazygit - Simple terminal UI for git commands.
Lazygit is a simple terminal UI for git commands, with keybindings for most actions. It aims to make working with git from the terminal easier and more intuitive.
gitui - Blazing fast terminal-ui for git written in Rust.
GitUI provides you with the user experience and comfort of a git GUI but right in your terminal while being portable, fast, free and opensource.
Development
ATAC - A simple API client (postman like) in your terminal.
ATAC is 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.
vegeta - HTTP load testing tool and library.
Vegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate.
k6 - A modern load testing tool, using Go and JavaScript.
k6 is a modern load-testing tool, built on our years of experience in the performance and testing industries. It's built to be powerful, extensible, and full-featured. The key design goal is to provide the best developer experience.
httpie - modern, user-friendly command-line HTTP client for the API era.
HTTPie (pronounced aitch-tee-tee-pie) is a command-line HTTP client. Its goal is to make CLI interaction with web services as human-friendly as possible. HTTPie is designed for testing, debugging, and generally interacting with APIs & HTTP servers. The http & https commands allow for creating and sending arbitrary HTTP requests. They use simple and natural syntax and provide formatted and colorized output.
asciinema - Terminal session recorder.
asciinema (aka asciinema CLI or asciinema recorder) is a command-line tool for recording terminal sessions.
Unlike typical screen recording software, which records visual output of a screen into a heavyweight video files (.mp4, .mov), asciinema recorder runs inside a terminal, capturing terminal session output into a lightweight recording files in the asciicast format (.cast).
Networking
dog - A command-line DNS client.
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.
gping - Ping, but with a graph.
gping is an excellent tool for network, system, devops engineers and for anyone looking to visualize their ping output. It's best utilized in environments where readability and visual communication of ping results is essential.
Workstation
tmux - A terminal multiplexer.
tmux is a terminal multiplexer. It enables a number of terminals to be created, accessed, and controlled from a single screen.
tmux may be detached from a screen and continue running in the background, then later reattached.
zellij - A terminal workspace with batteries included.
Zellij is a workspace aimed at developers, ops-oriented people and anyone who loves the terminal. Similar programs are sometimes called "Terminal Multiplexers".
Zellij is designed around the philosophy that one must not sacrifice simplicity for power, taking pride in its great experience out of the box as well as the advanced features it places at its users' fingertips.
btop - A monitor of resources.
Resource monitor that shows usage and stats for processor, memory, disks, network and processes.
chezmoi - Manage your dotfiles across multiple diverse machines, securely.
chezmoi helps you manage your personal configuration files (dotfiles, like ~/.gitconfig) across multiple machines.
chezmoi provides many features beyond symlinking or using a bare git repo.
chezmoi init
chezmoi add ~/.bashrc
chezmoi edit ~/.bashrc
chezmoi diff
chezmoi -v apply
Conclusion
These CLIs/TUIs should work well in any modern terminal, I personally use Ghostty currently and it works great.
There's a huge amount of CLIs/TUIs out there, and we can't list them all (though we tried).
Great list, Alex! Thank you for sharing your work.
Nice list! It's missing a category though, games like my https://github.com/fortio/terminal?tab=readme-ov-file#game-of-life and brick (plus the library to build them)