Developers and those with engineering responsibilities are fond of calling terminal their home. Anyone with a Unix system has to frequently interact with the Terminal in one way or the other. And customization has always been a big part of how much the Terminal can be used to improve productivity, create unique experiences, and manage the system to improve the workflow. At Stackify, we’re always up for quirky and innovative tools that help us become more productive developers. So no matter how you prefer to work, taking frequent breaks, relying on a lengthy task list, GTD methodology, with your favorite music playing in the background, you can make all of that and more happen from right within the Terminal with command line tools.
Command line tools are scripts, programs, and libraries that have been created with a unique purpose, typically to solve a problem that the creator of that particular tool had himself. Because of that, we have divided this roundup of the best command line tools to include different categories, like Web Development, Utilities, Productivity, and others. Beyond being categorized, note that the following 50 command line tools are listed in no particular order — they’re not ranked or rated, but are numbered simply to make a list easier to navigate.
These are all open-source projects, so everything is free to download, and you can become a contributor to any of the projects through GitHub, where most of these tools have been hosted. To check out command line tools in a particular category, click on a link below:
Sindre Sorhus has done some great projects in the open-source community; the “is-up” is a small library that taps into the “isitup.org” API to deliver a seamless website status checking service from your terminal.
Key Features:
As a developer, you will often find yourself needing to take website snapshots to present to your clients or work colleagues. The pageres-cli is capable of capturing up to 100 snapshots from 10 unique websites in less than 60 seconds, dramatically cutting down on the time and hassle of taking dozens of screenshots individually.
Key Features:
Kevin Mårtensson is another brilliant coder for the Open Source community, and this time we’re featuring one of his lesser-known libraries, albeit still useful, which can quickly return a viewport ratio for any device that you’re building an interface for. If you have your style guide workflow, this might not be as helpful, but still, it’s quite easy to use and could come in handy when you’re doing some quick fixes on the go.
Key Features:
Developers love the idea of static websites, more than they love the idea of having to host their WordPress website. Surge caters to front-end developers who need a quick method for publishing their HTML, CSS, and JavaScript content on the web. It takes a few seconds to type in the command and viola; your pages are up and running!
Key Features:
The loadtest library is a fully capable project for load testing a website. With an extendable API, you can integrate loadtest into your tests environment. The number one reason for developers using loadtest is that it allows for custom configuration options that replicate a real-world scenario.
Key Features:
WordPress is the world’s most popular blogging software, though not everyone wants to use the WordPress dashboard to manage their site, especially not developers who have grown to love their terminal! The WP-CLI is a sophisticated command line solution for managing your WordPress website, including themes and plugins.
Key Features:
Diff to Html generates pretty HTML diffs from unified and git diff output in your terminal. Diff2HTML supports GitLab, GitHub, Bitbucket, and merge/pull requests. The main reason developers use this over any other library is that diff2html provides a clear overview of the changes.
Key Features:
This one is for Node.js devs! Save yourself a little bit of time by loading up the NPM page of a particular package directly from the terminal. Whether you’re browsing the web with terminal and found a package you want to check or an old-memory strikes back, npm-home is handy to have.
Key Features:
When you’re working on something special, the last thing you want is to be distracted from your workflow. But being a web developer means that you constantly have to check for errors and mistakes, especially when talking about function usage across different browsers. This neat little library is based on the CanIUse.com website.
Key Features:
Another one for you busy Node.js developers, this tool is useful for checking whether a particular package name has been taken on the NPM website. This lets you quickly push out project names that you know won’t interfere or be confusing for other members of the community.
Key Features:
Every byte matters, especially when you have to improve performance. If your app is finished and ready for production, use this efficient library to quickly strip away any comments on your CSS files.
Key Features:
HTTPie is like Internet Explorer; only it doesn’t have a UI. Instead, it works directly from the terminal. the isn’t just another weekend project either. HTTPie has 30,000 stars on GitHub, and among the features, you will find JSON support, code highlighting, plugins, an intuitive User Interface, a custom interface for downloads, and much more.
Key Features:
The terminal can process a lot of information, but not all of the tools tap into that power. The icdiff library can show you the small tweaks and differences between two files of similar nature. It highlights the values that have been changed, added, and shows what has been removed from the second file.
Key Features:
Getting your files to work across multiple devices is essential. With the personalized preferences for systems that developers use, you never know when you might need to convert your TXT documentation into an HTML presentation.
Key Features:
As per the reviews of the users themselves, Babun is a Linux shell that Windows users are going to enjoy using. If you thought Cygwin was great, then you will adore the extended functionality of Babun.
Key Features:
Keeping track of yourself is a good way to prioritize your workflow and improve your productivity based on the amount of work you get done in a specific time frame. While Moro is a simple tool, it can turn out to be useful to understand your work performance.
Key Features:
JIRA is without a doubt one of the world’s leading platform for issue and bug tracking, and with Terjira you can bring the JIRA functionality straight into your terminal. This is an ultra-optimized library that gives you a simple JIRA interface from your terminal shell.
Key Features:
Timetrap is a time tracking tool with a slightly more complex capabilities, perfect for freelance developers and designers who are constantly relying on their performance to manage projects. The best way to improve yourself is to learn how to manage yourself, and time tracking is a good place to start.
Key Features:
Taskwarrior is an open-source library that integrates a fully functional TODO list management application into your terminal. It’s clean, with excellent performance and more than 350+ custom plugin extensions created by other developers. Taskwarrior scales to fit your workflow. Use it as a simple app that captures tasks, shows you the list, and removes tasks from that list.
Key Features:
Taking notes is an essential aspect of being a developer, an engineer, or even a designer. While Linux systems have the capacity to provide locally hosted note management platforms, nowadays it’s quite popular to use a platform such as Evernote to capture notes and have them readily available across multiple devices. Geeknote gives you a stellar UI for using Evernote within your terminal.
Key Features:
Imgur is one of the world’s most popular image sharing platforms, with millions of daily active users, and a performance optimized image sharing interface that can deal with any demand. Most of all it is simple to use, and efficient in getting your images seen by anyone quickly.
Key Features:
Doing is a basic CLI for adding and listing “what was I doing” reminders in a TaskPaper-formatted text file. It allows for multiple sections/categories and flexible output formatting. Never again will you question yourself and the actions that you performed during any given day.
Key Features:
Uber CLI is obviously a bit of a jab at productivity geeks, but that hasn’t stopped thousands of developers from switching their Uber access workflow permanently. With Uber CLI you can quickly get a price and time to destination estimates with a simple command.
Key Features:
JQ is an easy to use and a lightweight processor for JSON files. JQ primarily acts as a filter that can take your input, and then produce a settings-based output. Filters can be combined in various ways – you can pipe the output of one filter into another filter, or collect the output of a filter into an array.
Key Features:
This neat library creates a more streamlined workflow for the directories that you access on a consistent basis. It can save into its memory the folders that you visit the most, and give you a more flexible way of navigating to them with simple commands. Being productive is all about methods for minimizing your need to exit the terminal for any reason at all.
Key Features:
Ranger is a dynamic User Interface for complete system file management needs. It supports VI binds for easier access across the whole of your system. The interface is focused on a minimal design, emphasizing the structure of each directory. Additionally, you can customize Ranger with external plugins, or build your own.
Key Features:
This is a rather straightforward utility tool for those of you who live in the complete absence of a GUI on your system. Just type in the battery-level command, and it will give you a clear percentage indication of how much juice is left in your system.
Key Features:
Love to code at night, but don’t love the bright screen? Sure, there are tons of ways to adjust brightness on your system, and some laptops have integrated buttons that do it. But if you’re feeling like geeking out a bit – why not adjust the percentage with a simple command line syntax?
Key Features:
GoTTY can transform your terminal into a web application. If you are running some extensive tools from the terminal and want to have access to them on the go, simply run a GoTTY instance and have a web address available to monitor the process.
Key Features:
If terminal is your home, why not add an additional layer of web search capabilities. The Web-Search-CLI library is ideal for searching the web based on custom inputs. Apart from Google, there are ~100 other supported providers, such as: Imgur, GitHub, Wikipedia, and many other developer-friendly websites.
Key Features:
Aria2 is a flexible download utility software with multi-protocol and multi-source support. It’s capable of understanding protocols like BitTorrent, FTP, HTTP(S), SFTP, and others. There are also ways to transform Aria2 into a web-based UI using an external plugin.
Key Features:
Remote Share CLI was created to enable developers and Unix system users such as yourself to quickly share important files with the world, presumably your co-workers or friends you’re collaborating on a project with. The first version of this tool could only share files locally; however, with the CLI version, you can share with anyone.
Key Features:
Hub is your friendly git wrapper that boosts your GitHub experience, whether you are a contributor or someone who maintains their own project. Hub makes the GitHub code-sharing experience much more enjoyable and straightforward, letting you focus on things that are important; like writing more code!
Key Features:
The tmux tool is what’s known as a terminal multiplexer. This program allows developers to run multiple terminals at once, but manage them all from one terminal instance. It’s commonly known as a solid alternative to the popular GNU Screen. Tmux runs on most Unix systems.
Key Features:
Metadelta CLI is an effective way to solve your math problems in the terminal, without the need to load up your Python or seek an external website. Metadelta can do derivative math simply and quickly.
Key Features:
It’s not uncommon knowledge that FFMPEG encoded GIFs come out a little choppy, largely because FFMPEG uses a limited color palette which doesn’t have the capacity to cover the full range of colors. GifGen differs in that it does multiple encodes for the GIF. It analyzes colors for pixels individually, and then uses that palette to encode the actual GIF.
Key Features:
Gifsicle is a universal CMD tool for all your GIF management needs. Gifsicle can create, edit, and organize information about your GIF files. Gifsicle can combine multiple animations into a single GIF, it can customize single frames, and do lots of color customization for individual aspects of a GIF.
Key Features:
If you’re a developer who actively develops programs for the Open Source community, then chances are you will eventually want to provide your README files with animated explanations of how your programs work in the terminal or outside of it. TTYGIF enables you to convert any terminal screen recordings into smooth GIF files.
Key Features:
SVG is the new king of visual content on the web, but there’s still more that can be done to improve the graphics files based on their origins. If you edit your SVG files using certain software, there’s a high chance that the final files are going to be stuffed with useless data like comments, metadata, and other useless values that will only add extra weight to the final piece.
Key Features:
Ever thought about giving your terminal a makeover in the form of a screensaver? Well, it turns out that someone cape up with the idea to do just that, so we couldn’t resist including this little visual wonder. All you need to get this to work is Bash V4+, and you have yourself a way to hibernate your own terminal with a colorful pipes screensaver.
Key Features:
WOPR is a custom-built markup for your terminal that can turn markup data into presentations, reports, and infographics directly within the terminal window. WOPR relies strictly on the blessed-contrib library (from the same author) which creates dashboards in ASCII format.
Key Features:
Pocket is one of the most well-known bookmarking apps that you can find, and it’s extremely reliable for saving and storing your most favorite links on the web. The pockyt library helps you manage your Pocket account right from the terminal. This command-line client interfaces the Pocket API and provides a way to interact with your pocket collection.
Key Features:
Tired of writing code? Need to take a break? Just learned about a new hacker movie release you want to check out? Why not do it in the traditional fashion of running a command from your terminal? The Movie-CLI lets you quickly fetch information about a movie; just type in the name and you’ll get all the juicy data output.
Key Features:
iTunes-Remote uses JXA (Node.js) to create a terminal-based iTunes experience. It’s simple enough to let you navigate music folders, and includes all the native music management functions.
Key Features:
Obviously iTunes is only for Mac computers, but what if you want something that works alongside all Unix based systems? The answer is C* Music Player (cmus). This nifty little program creates a musical enterprise right in your terminal, letting you navigate and manage your music folders.
Key Features:
How about ditching the web UI of Facebook, and using FB only from the command line? Well, thanks to Facebook’s openness towards developers, it is possible, and the usability is far greater than you’d expect. The Facebook-CLI is an all-in-one solution for using Facebook from your shell. All you need to do is create a new app for the Facebook API so that you can connect to the site using your credentials.
Key Features:
Likewise, Oysttyer is a terminal-interface for Twitter users, and it seems that these days devs are more keen towards using Twitter to discuss development than Facebook. Similarly to the above situation, you will need to create a Twitter App to authorize your own account for access to the site through your CMD.
Key Features:
YouTube-DL is a Python-built program that allows you to download videos from YouTube without having to leave your terminal. It is a convenient piece of software if you ever stumble across an important, or relevant, talk that you like, letting you download it instantly to your computer and save for future use.
Key Features:
Medium is a growing blogging platform that’s gaining popularity within the developer community. It provides a beautiful UI for publishing stories that get views, and has the option for users to leave comments and highlight individual paragraphs of stories. Now, you can bring the Medium experience to your favorite place on the planet: the terminal!
Key Features:
This simple tool gives you the functionality to convert any HTML-based website into plain-text format. It’s great if you wish to fetch the individual links to latest stories from your favorite news platform, or want to avoid any type of JavaScript/HTML operations in general. Either way, it all happens from within the command line, and the interface is kept to a minimum.
Key Features:
If you would like to be a guest contributor to the Stackify blog please reach out to [email protected]