Powerful Terminal And Command-Line (CLI) Tools For Modern Web Development
Many modern programmers, including front-end and full-stack developers, work daily with the command line. Even those who are relatively new to web development are picking up command-line skills early and finding practical tools and utilities to enhance their productivity in the terminal.
This post presents a categorized list of many command-line apps I’ve personally discovered over the past few years. Some of them are relatively new, others have been around for a while. So I hope something in this roundup will interest you and help you get stuff done when working in the terminal.
You can jump to a category using the navigation below:
- Terminal Apps
- Terminal Utilities and Enhancements
- Command-line Scripting and Frameworks
- Productivity Tools for the Terminal
Terminal Apps #
This section features terminals, multiplexers, console emulators, mobile terminals, and command-line workspaces that you can use to replace the default terminal app on your system.
tmux
#
tmux
is a popular terminal multiplexer for Unix-like operating systems that lets you easily switch among several programs in a single terminal, with the ability to “detach” a session (while still running in the background) or “reattach” it to a different terminal.
![tmux](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e5982e51-254c-4834-8f4f-4afd3663cf5c/1-terminal-and-cli-tools.png)
iTerm2
#
iTerm2
, the successor to iTerm, is a replacement for your Terminal on macOS that includes features like split panes, robust search, autocomplete, instant replay, along with a whole slew of configuration options.
![iTerm2](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/49202387-c48e-452a-8cbd-a053540528d0/2-terminal-and-cli-tools.png)
Mosh #
Mosh is a remote terminal app (or mobile shell) for interactive SSH usage that includes several useful features for those who need to do terminal-based tasks over weak WiFi, cellular networks, or other less-reliable connections.
![Mosh](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a09da513-8d82-44a6-9d0b-8e15eebf00ba/3-terminal-and-cli-tools.png)
Zellij #
Zellij is a terminal workspace that has the base functionality of a terminal multiplexer (similar to tmux) but includes features that allow users to extend it and create a personalized environment via panes/tabs and plugins.
![Zellij](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55161bed-d69a-435e-ab95-7e147631314a/4-terminal-and-cli-tools.png)
Hyper #
Hyper is an Electron-based terminal app for Mac, Windows, or Linux that’s built with web technologies (HTML/CSS/JS). Includes dozens of themes and plugins and is built on speed and stability.
![Hyper](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21c74aa7-e4b6-4b8c-b655-ff95c0fbbc78/5-terminal-and-cli-tools.png)
cmder
#
cmder
is a portable console emulator for Windows that was built due to the lack of a good option in this area for Windows users.
![cmder](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cfd043f0-ffcf-4668-bb46-3a104830b3d5/6-terminal-and-cli-tools.png)
a-Shell #
a-Shell is an iOS app that offers a ‘terminal in your pocket’ with files/directory control, compatibility with Apple Shortcuts, multiple windows, and lots more.
![a-Shell](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1e95b053-f85f-4cf1-9476-0404fa36799d/7-terminal-and-cli-tools.png)
Eternal Terminal #
Eternal Terminal is another remote terminal app inspired by other similar, popular projects.
![Eternal Terminal](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/077f5b6d-bd3a-44e3-9590-30e185e02c11/8-terminal-and-cli-tools.png)
Ten Hands #
Ten Hands is a terminal app for Mac, Linux, and Windows that is billed as the simplest way to organize and run command-line tasks, useful for those who run similar daily tasks on multiple projects.
![Ten Hands](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/216d5520-62ad-4a4e-9172-602d067bcf5b/9-terminal-and-cli-tools.png)
eDEX-UI #
eDEX-UI is a fullscreen, cross-platform terminal emulator and system monitor heavily inspired by science fiction movie UIs, in particular, the Tron: Legacy film.
![eDEX-UI](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/651c07c0-12eb-427c-a39b-6602254acd4c/10-terminal-and-cli-tools.png)
Tabby #
Tabby, formerly “Terminus”, is a customizable cross-platform terminal app for local shells, SSH, serial, and Telnet connections that includes support for features like split panes, smart tabs, customizable hotkeys, and lots more.
![Tabby](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ae3a0cd-8c4a-4c24-8b40-b7ac10cc5c6a/11-terminal-and-cli-tools.png)
Fish Shell #
Fish Shell is another option for a command-line shell for Linux, macOS, and Windows that includes auto-suggest, tab completions, 24-bit color, web-based configuration, syntax highlighting, among other practical features.
![Fish Shell](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4813717a-16e1-4e11-bd2c-9383de050dfd/12-terminal-and-cli-tools.png)
Terminal Utilities And Enhancements #
Once you’ve got your primary workspace, you’ll want to enhance it with various tools, utilities, themes, and so forth. This section includes some useful tools to make your terminal experience more enjoyable.
Oh My Zsh #
Oh My Zsh is an open-source, community-driven framework for managing your configuration for Z Shell (or Zsh, a popular Unix shell). It comes bundled with thousands of helpful functions, helpers, 300+ plugins, 140+ themes, and more. Works best on macOS or Linux, but can also be used on Windows using something like Cygwin or WSL2.
![Oh My Zsh](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/fcfae738-6a51-471e-847d-d99a3fd87c88/13-terminal-and-cli-tools.png)
Fig #
Fig adds VSCode-style autocomplete to your existing terminal and includes support for existing CLI tools like Git, npm, Kubernetes, Docker, AWS, Google Cloud, and more.
![Fig](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d4f0596e-9e3b-4326-822b-c02e7282e475/14-terminal-and-cli-tools.png)
fzf
#
fzf
is a fast, portable, fuzzy finder for the command line that lets you run fuzzy search queries with a comprehensive feature set.
![fzf](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f9faeaec-4be8-4381-8e14-cdc719ad4c44/15-terminal-and-cli-tools.png)
Shell History #
Shell History (not free) is a macOS app that integrates with Bash, Zsh, or Fish and allows you to easily backup and sync via iCloud and organize your shell history in “notebooks”.
![Shell History](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a53bdef8-bf63-4ab7-b5fd-661fb2497e71/16-terminal-and-cli-tools.png)
htop
#
htop
is an interactive process viewer, originally Linux-only but now cross-platform, that aims to improve on the Linux top
command by providing extra features when viewing running processes.
![htop](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/16fa5760-3e28-4a53-9f02-4b03bcb704f0/17-terminal-and-cli-tools.png)
GitHub CLI #
GitHub CLI, in case you missed it, is the official cross-platform command-line interface for GitHub, bringing pull requests, issues, and other GitHub-related tasks to your terminal.
![GitHub CLI](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a6541476-c15d-4b56-ae1f-28cf859393df/18-terminal-and-cli-tools.png)
Streamhut #
Streamhut lets you share your terminal in real-time without installing anything. Simply run one of two commands (depending on your setup), useful for live terminal sessions in team collabs, interviews, or teaching.
![Streamhut](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e9af5ba0-109b-458a-8c7e-f9376652625a/19-terminal-and-cli-tools.png)
icdiff
#
icdiff
is a terminal-based file diff tool that makes good use of colors to present diffs in a more practical, visual manner.
![icdiff](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f22dff93-6b69-4893-83ee-b97fb9c084fd/20-terminal-and-cli-tools.png)
>\_TerminalSplash
#
TerminalSplash
, as the name suggests, is like Unsplash, but for terminal themes. Choose from more than 200 user-submitted themes or submit your own.
![TerminalSplash](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ca2a2088-c92b-4ff7-a6bb-d2c9c4013457/21-terminal-and-cli-tools.png)
Terminalizer #
Terminalizer is a customizable and cross-platform terminal recorder that lets you record terminal sessions then share them as animated GIFs or via a web player.
![Terminalizer](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1a417129-efee-4e61-9641-201c77374dcb/22-terminal-and-cli-tools.png)
Asciinema #
Asciinema is another popular option for terminal recording and sharing, but not available for Windows. The cool thing about this one is that the recorded output is not a video but a plain text animation of the terminal session, meaning you can select and copy/paste items from recordings.
![Asciinema](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/889299ec-c998-47c6-b1d6-59350637cfee/23-terminal-and-cli-tools.png)
gtop
#
gtop
is another enhancement on the top
command that provides a system monitoring dashboard for your terminal. Require Node.js and includes partial support on Windows.
![gtop](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d325fba4-8a92-4751-a43e-ec5a8d53e4c7/24-terminal-and-cli-tools.png)
DevDash
#
DevDash
is a highly configurable terminal dashboard for developers and creators. You can customize it to display information from sources like Google Analytics, GitHub, Feedly, shell command output, and more.
![DevDash](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/81d01ac2-f073-45a0-9301-20b835645ef9/25-terminal-and-cli-tools.jpg)
Honorable Mentions: #
ora
An elegant terminal spinner.tiny-care-terminal
A little dashboard that tries to take care of you when you’re using your terminal.theme.sh
A shell script that lets you set your terminal theme that includes 270+ preloaded themes.
Command-Line Scripting And Frameworks #
Some numerous libraries and frameworks allow you to build and maintain your own command-line apps and utilities. Below you’ll find a few of those for Bash, JavaScript, and more.
Command And Conquer (cac) #
Command And Conquer, also called cac, is a lightweight JavaScript framework for building command-line apps. For example, it’s been used to build several Node.js-based scaffolding tools.
![Command And Conquer](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5b96e436-e427-4f30-99b1-ade2b68548d9/26-terminal-and-cli-tools.png)
zx
#
zx
is a popular alternative to Bash from engineers at Google that allows you to write command-line apps using JavaScript with an easy-to-use API that allows you to call executables and get their output, handle errors, and more.
![zx](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/530b52be-d2d4-48ff-be28-6ab717d76dbc/27-terminal-and-cli-tools.png)
present
#
present
is a Markdown-based presentation tool for the terminal that includes colors and effects and allows you to play pre-recorded playable code blocks as slides.
![present](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f605c062-bae2-42a0-bbdb-00cda134658b/28-terminal-and-cli-tools.png)
Bach #
Bach is a Bash testing framework that can be used to test scripts that contain dangerous commands like rm -rf /
and also includes APIs (e.g. @mock
, @ignore
, @mockallto
, etc.) to mock commands.
![Bach](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3de1f9af-b086-4c21-8a30-2685ef9ec88a/29-terminal-and-cli-tools.png)
CLUI
#
CLUI
is a JavaScript API with utilities to allow you to build command-line interfaces with context-aware autocomplete into your apps (i.e. terminal-like applications that users interact with).
![CLUI](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5e2fa228-42ad-4ca6-9d54-06ccabf2ec62/30-terminal-and-cli-tools.png)
ShellCheck
#
ShellCheck
is a shell extension to help you find bugs in your shell scripts.
![ShellCheck](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/84155770-bd84-48b0-be43-8b7945b11cce/31-terminal-and-cli-tools.png)
Honorable Mentions #
Bashō
Lets you write complex shell tasks using plain JavaScript and it mixes well with shell commands and scripts.import
A fast and easy-to-use module system for Bash and other Unix shells.Bash Infinity
A modular and lightweight library and boilerplate framework for writing tools using Bash.
Productivity Tools For The Terminal #
Finally, this category puts together a small sampling of command-line utilities and programs that help with various productivity-related tasks like keeping stuff organized, sharing files, and more.
Dash Dash #
Dash Dash is an online documentation site that presents the Unix man pages (i.e. manual pages) in a more palatable format, to help those less familiar with the terminal learn to use the command line.
![Dash Dash](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a433284c-00cd-47cb-8cc9-057290fed6c2/32-terminal-and-cli-tools.png)
nb
#
nb
is a command-line tool with features that include local web note‑taking, bookmarking, archiving, and encryption. Storage is in plain text, includes Git-based versioning, wiki-style linking, color themes, and lots more.
![nb](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/91afb66b-dee3-495d-8edf-5556cf4659f7/33-terminal-and-cli-tools.png)
Rclone
#
Rclone
is an open-source command-line program that allows you to manage files on 40+ cloud storage services (Amazon S3, Dropbox, Google Drive, Azure, etc.). It includes cloud equivalents for familiar Unix commands and other features.
![Rclone](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e7d74416-924f-46c4-907a-3dd5e75ab063/34-terminal-and-cli-tools.png)
navi
#
navi
is an interactive cheatsheet tool for your terminal. In addition to other features, you can browse through cheatsheet repositories, import cheatsheets, or add your own.
![navi](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a208d63b-aea2-42ad-994c-f1cd26b47fda/35-terminal-and-cli-tools.png)
Taskbook #
Taskbook is a fast command-line tool that lets you organize tasks, boards, and notes in your terminal, with features like search/filter, custom storage location, and a simple and user-friendly syntax.
![Taskbook](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/57dd369b-4097-432f-8bf4-4f81fdf196d5/36-terminal-and-cli-tools.png)
Project Explorer #
Project Explorer is a CLI tool that lets you build a tree visualization of any project. This would come in handy when bringing on new team members or when inheriting a new project.
![Project Explorer](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b0190fb8-9613-4af8-937f-6fe2a50cfc24/37-terminal-and-cli-tools.png)
transfer.sh
#
transfer.sh
is a fast and easy-to-use app for sharing files via the command line. Includes support for services like Amazon S3, Google Drive, Storj, and the local file system.
![transfer.sh](https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d5f27e50-7c8b-4107-8179-a04abe5568b7/38-terminal-and-cli-tools.png)
Honorable Mentions #
ack
A code-searching tool, similar to grep but optimized for programmers searching large trees of source code.goto
A shell utility with auto-complete support to navigate to aliased directories.bashupload
Upload files (up to 50GB) via the command line to easily share between servers, desktops, and mobile devices.copyfiles
A command-line utility that adds extra features to copying files in your terminal.
What’s Your Favourite Command-Line Tool? #
As mentioned, this wasn’t meant to be an exhaustive list, but merely a big collection of relevant command-line apps and utilities that I’ve personally come across in the past few years.
If you’ve built something yourself or if there’s one you use regularly that supercharges your terminal experience, feel free to drop it in the comments!
Further Reading #
- Lesser Known Uses Of Better Known Attributes
- Tight Mode: Why Browsers Produce Different Performance Results
- Sustainable Design Toolkits And Frameworks
- Sticky Headers And Full-Height Elements: A Tricky Combination
![Smashing Editorial](https://www.smashingmagazine.com/images/logo/logo--red.png)
— Comments 12
My favorite for more than 7 years: OhMyZSH!
Oh man, I'm in awe of this list (and slightly jazz cabbaged—sorry in advance). I wasn't expecting a list this good, not because of SmashMag's quality (always top) but that I've literally never seen an "awesome CLI stuff" article that was actually all of:
I especially appreciate the inclusion of Fish and Cmder. Cmder is one of the best terms for Windows but somehow it never gets mentioned. Now with Microsoft's Terminal and Hyper being available as well, I can't say for sure that Cmder is king anymore but at least there's three awesome, turn-key solutions for us weirdos doing web dev on Windows (thank heavens we have WSL2 now).