Unleash the Power of the Terminal: Essential Tools Every Developer Should Know
Tags: terminaltools, commandlintutilities, productivity
Published: 2023-05-30 19:16:52

---
title: Unleash the Power of the Terminal: Essential Tools Every Developer Should Know
published: true
tags: TerminalTools,CommandLintUtilities,Productivity
canonical_url: https://blog.bajonczak.com/unleash-the-power-of-the-terminal-essential-tools-every-developer-should-know/
---

 ![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://images.unsplash.com/photo-1629654297299-c8506221ca97?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fGNvbW1hbmRsaW5lfGVufDB8fHx8MTY4NTE2NjgwMHww&ixlib=rb-4.0.3&q=80&w=2000)

As developers, we spend a lot of our time in the terminal. The most of developers I talked using several tools in their console... yes console tha itchy thing that will only display letters and numbers. This tool is more powerfull as you think. And there are very many nice handy tools to use.

This post outlines my list fo tools that every develope must-have, of must have heard about it ;). Feel free to comment, if you miss some thing.

So let's get started!

## Utils

### [`thefuck`](https://github.com/nvbn/thefuck?ref=blog.bajonczak.com) - Auto-correct miss-typed commands

> `thefuck` is one of those utilities you won't be able to live without once you've tried it. Whenever you mis-type a command and get an error, just run `fuck` and it'll auto-correct it. Use up/down to choose a correction, or just run `fuck --yeah` to just execute the most likely immediately.

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--u7SIvxke--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.ibb.co/J55hWKX/thefuck.gif)

* * *

### [`tldr`](https://github.com/tldr-pages/tldr?ref=blog.bajonczak.com) - Community-maintained docs _(better `man`)_

> `tldr` is a huge collection of community-maintained man pages. Unlike traditional man pages, they're summarized, contain useful usage examples and nicely colourized for easy reading

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--NCt0wa_e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.ibb.co/jTW9knx/tlfr.gif)

* * *

### [`scc`](https://github.com/boyter/scc?ref=blog.bajonczak.com) - Count lines of code _(better `cloc`)_

> `scc` gives you a breakdown of number of lines of code written in each language for a specific directory. It also shows some fun stats, like estimated cost to develop and complexity info. It's incredibly fast, very accurate and has support for a wide range of languages

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--Rx6T-QOU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/NygHWXt/scc.png)

* * *

### [`exa`](https://github.com/ogham/exa?ref=blog.bajonczak.com) - Listing Files _(better `ls`)_

> `exa` is a modern Rust-based replacement for the `ls` command, for listing files. It can display file-type icons, colors, file/folder info and has several output formats - tree, grid or list

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--mdHy9jvg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/cTs0wQ5/exa.png)

* * *

### [`duf`](https://github.com/muesli/duf?ref=blog.bajonczak.com) - Disk Usage _(better `df`)_

> `duf` is great for showing info about mounted disks and checking free space. It produces a clear and colorful output, and includes options for sorting and customizing results.

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--ubkhFYhh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/sP59DKd/duf.png)

* * *

### [`aria2`](https://github.com/aria2/aria2?ref=blog.bajonczak.com) - Download Utility _(better `wget`)_

> `aria2` is a lightweight, multi-protocol, resuming download utility for HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink, with support for controlling via an RPC interface. It's incredibly [feature rich](https://aria2.github.io/manual/en/html/README.html?ref=blog.bajonczak.com), and has tons of [options](https://aria2.github.io/manual/en/html/aria2c.html?ref=blog.bajonczak.com). There's also [ziahamza/webui-aria2](https://github.com/ziahamza/webui-aria2?ref=blog.bajonczak.com) - a nice web interface companion.

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--IpOODsJu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/pJkkX6x/aria2c.png)

* * *

### [`bat`](https://github.com/sharkdp/bat?ref=blog.bajonczak.com) - Reading Files _(better `cat`)_

> `bat` is a clone of `cat` with syntax highlighting and git integration. Written in Rust, it's very performant, and has several options for customizing output and theming. There's support for automatic piping and file concatenation

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--hPPPnAo8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/VND3Y9s/bat.png)

* * *

### [`diff-so-fancy`](https://github.com/so-fancy/diff-so-fancy?ref=blog.bajonczak.com) - File Comparisons _(better `diff`)_

> `diff-so-fancy` gives you better looking diffs for comparing strings, files, directories and git changes. The change highlighting makes spotting changes much easier, and you can customize the output layout and colors

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--BahI35Zk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/RGKLhQk/diff-so-fancy.png)

* * *

### [`entr`](https://github.com/eradman/entr?ref=blog.bajonczak.com) - Watch for changes

> `entr` lets you run an arbitrary command whenever file changes. You can pass a file, directory, symlink or regex to specify which files it should watch. It's really useful for automatically rebuilding projects, reacting to logs, automated testing, etc. Unlike similar projects, it uses kqueue(2) or inotify(7) to avoid polling, and improve performance

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--7isTJ7zR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/HHKQx2H/entr.png)

* * *

### [`exiftool`](https://github.com/exiftool/exiftool?ref=blog.bajonczak.com) - Reading + writing metadata

> ExifTool is handy utility for reading, writing, stripping and creating meta information for a wide variety of file types. Never accidentally leak your location when sharing a photo again!

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--R3gSjE8h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/Gv5PN6v/exiftool.png)

* * *

### [`fdupes`](https://github.com/jbruchon/jdupes?ref=blog.bajonczak.com) - Duplicate file finder

> `jdupes` is used for identifying and/or deleting duplicate files within specified directories. It's useful for freeing up disk space when you've got two or more identical files

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--u0WU9v67--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/jhSY2Nn/fdupes.png)

* * *

### [`fzf`](https://github.com/junegunn/fzf?ref=blog.bajonczak.com) - Fuzzy file finder _(better `find`)_

> `fzf` is an extremely powerful, and easy to use fuzzy file finder and filtering tool. It lets you search for a string or pattern across files. fzf also has [plugins](https://github.com/junegunn/fzf/wiki/Related-projects?ref=blog.bajonczak.com) available for most shells and IDEs, for showing instant results while searching. This [post](https://www.freecodecamp.org/news/fzf-a-command-line-fuzzy-finder-missing-demo-a7de312403ff/?ref=blog.bajonczak.com) by Alexey Samoshkin highlights some of it's use cases.

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s---VBiXRJW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.ibb.co/LNcwjWm/fzf.gif)

* * *

### [`hyperfine`](https://github.com/sharkdp/hyperfine?ref=blog.bajonczak.com) - Command benchmarking

> `hyperfine` makes it easy to accurately benchmark and compare arbitrary commands or scripts. It takes care of warm-up runs, clearing the cache for accurate results and preventing interference from other programs. It can also export results as raw data and generate charts.

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--n63ClWNS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/tKNR5gr/hyperfine.png)

* * *

### [`procs`](https://github.com/dalance/procs?ref=blog.bajonczak.com) - Process viewer _(better ps)_

> `procs` is an easy to navigate process viewer, it has colored highlighting, makes sorting and searching for processes easy, has tree view and updates in real-time

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--WqRp_Xe5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.ibb.co/y6qhgDX/procs-demo.gif)

* * *

### [`ripgrep`](https://github.com/BurntSushi/ripgrep?ref=blog.bajonczak.com) - Search within files _(better `grep`)_

> `ripgrep` is a line-oriented search tool that recursively searches the current directory for a regex pattern. It can ignore the contents of `.gitignore` and skip binary files. It's able to search within compressed archives, or only search specific extension, and understands files using various encoding methods

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--CmvC7yAB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/qkMgQm9/ripgrep.png)

* * *

### [`rsync`](https://rsync.samba.org/?ref=blog.bajonczak.com) - Fast, incremental file transfer

> `rsync` lets you copy large files locally or to or from remote hosts or external drives. It can be used to keep files across multiple locations synced, and is perfect for creating, updating and restoring backups

* * *

### [`sd`](https://github.com/chmln/sd?ref=blog.bajonczak.com) - Find and replace _(better `sed`)_

> `sd` is an easy, fast and intuitive find and replace tool, based on string literals. It can be executed on a file, an entire directory, or any piped text

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--5oTimteF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/G9CfcGS/sd.png)

### [`tre`](https://github.com/dduan/tre?ref=blog.bajonczak.com) - Directory hierarchy _(better `tree`)_

> `tre` outputs a tree stye list of files for your current or a specified directory, with colors. When running with the `-e` option, it numbers each item, and creates a temporary alias that you can use to quickly jump to that location

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--AltLlVoH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/CmMrZLB/tre.png)

* * *

## CLI Monitoring and Performance Apps

### [`bandwhich`](https://github.com/imsnif/bandwhich?ref=blog.bajonczak.com) - Bandwidth utilization monitor

> Show bandwidth usage, connection information, outgoing hosts and DNS queries in real-time

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--y_6Dadgj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/8jHHBD3/Screenshot-from-2023-01-18-22-45-32.png)

* * *

### [`ctop`](https://github.com/bcicen/ctop?ref=blog.bajonczak.com) - Container metrics and monitoring

> Like `top`, but for monitoring resource usage for running (Docker and runC) containers. It shows real-time CPU, memory and network bandwidth as well as the name, status and ID of each container. There's also a built-in log viewer, and options to manage (stop, start, exec, etc) containers

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--vdKvkGu6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.ibb.co/xGjyzZ2/ctop.gif)

* * *

### [`bpytop`](https://github.com/aristocratos/bpytop?ref=blog.bajonczak.com) - Resource monitoring _(better `htop`)_

> `bpytop` is a fast, interactive, visual resource monitor. It shows top running processes, recent CPU, mem, disk and network history. From the interface you can navigate, sort and search - there's also support for custom color themes

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--xRcMVtCB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.ibb.co/nj9jrhr/bpytop.gif)

* * *

### [`glances`](https://github.com/nicolargo/glances?ref=blog.bajonczak.com) - Resource monitor + web and API

> `glances` is another resource monitor, but with a different feature set. It includes a fully responsive web view, a REST API and historical monitoring. It's easily extendable, and can be integrated with other services

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--6Wp2nhqx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.ibb.co/6g65Qy4/glances.gif)

* * *

### [`gping`](https://github.com/orf/gping?ref=blog.bajonczak.com) - Interactive ping tool _(better `ping`)_

> `gping` can run ping tests on multiple hosts, while showing results in real-time graph. It can also be used to monitor execution time, when used with the `--cmd` flag

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--YMe9lAFT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.ibb.co/CvG6xt0/gping.gif)

* * *

### [`dua-cli`](https://github.com/Byron/dua-cli?ref=blog.bajonczak.com) - Disk usage analyzer and monitor _(better `du`)_

> `dua-cli` let's you interactively view used and available disk space for each mounted drive, and makes freeing up storage easy

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--nle07K3Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.ibb.co/x3NbDLR/dua.gif)

* * *

### [`speedtest-cli`](https://github.com/sivel/speedtest-cli?ref=blog.bajonczak.com) - Command line speed test utility

> `speedtest-cli` just runs an internet speed test, via speedtest.net - but straight from the terminal :)

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--qFJxYj0D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.ibb.co/25QCbdF/speedtest-cli.gif)

* * *

### [`dog`](https://github.com/ogham/dog?ref=blog.bajonczak.com) - DNS lookup client _(better `dig`)_

> `dog` is an easy-to-use DNS lookup client, with support for DoT and DoH, nicely coloured outputs and the option to emit JSON

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--iOnIsJRk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/48n617Q/dog.png)

* * *

## CLI Productivity Apps

> Surf the web, play music, check emails, manage calendars, read the news and more, all without leaving the terminal!

### [`browsh`](https://github.com/browsh-org/browsh?ref=blog.bajonczak.com) - CLI web browser

> `browsh` is a fully interactive, real-time, and modern text-based browser rendered to TTYs and browsers. It supports both mouse and keyboard navigation, and is surprisingly feature rich for a purely terminal based application. It also mitigates battery drain issues that plague modern browsers, and with support for MoSH, you can experience faster load times due to reduced bandwidth

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--sO3TkLzU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.ibb.co/S7nLFX5/browsh.gif)

* * *

### [`buku`](https://github.com/jarun/buku?ref=blog.bajonczak.com) - Bookmark manager

> `buku` is a terminal-based bookmark manager, with tons of configuration, storage and usage options. There's also an optional [web UI](https://github.com/jarun/buku/tree/master/bukuserver?ref=blog.bajonczak.com#screenshots) and [browser plugin](https://github.com/samhh/bukubrow-webext?ref=blog.bajonczak.com#installation), for accessing your bookmarks outside of the terminal

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--vcrdyl0t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/CWQsf1x/buku.png)

* * *

### [`cmus`](https://github.com/cmus/cmus?ref=blog.bajonczak.com) - Music browser / player

> `cmus` is terminal music player, controlled with keyboard shortcuts. It has support for a wide range of audio formats and codecs, and allows organising tracks into playlists and applying playback settings

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--X-hFmnWf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/dP6b3bd/cmus.png)

* * *

### [`cointop`](https://github.com/cointop-sh/cointop?ref=blog.bajonczak.com) - Track crypto prices

> `cointop` show current crypto prices, and track the price history of your portfolio. Supports price alerts, historical charts, currency conversion, fuzzy searching, and much more. You can try the demo via the web at [cointop.sh](https://cointop.sh/?ref=blog.bajonczak.com), or by running `ssh cointop.sh`

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--t890F5P5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/JBf9y4y/cointop.png)

* * *

### [`ddgr`](https://github.com/jarun/ddgr?ref=blog.bajonczak.com) - Search the web from the terminal

> `ddgr` is like [googler](https://github.com/jarun/googler?ref=blog.bajonczak.com), but for DuckDuckGo. It's fast, clean and easy, with support for instant answers, search completion, search bangs, and advanced search. It respects your privacy by default, and also has HTTPS proxy support, and works with Tor

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--xbxemVB3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/S0H21QH/dggr.png)

* * *

### [`micro`](https://github.com/zyedidia/micro?ref=blog.bajonczak.com) - Code editor _(better `nano`)_

> `micro` is an easy to use, fast and extendable code editor with mouse support. Since it's packaged into a single binary, installation is as simple as `curl https://getmic.ro | bash`

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--IzOVcyTT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/cgNcH7w/Screenshot-from-2023-01-21-19-18-04.png)

* * *

### [`khal`](https://github.com/pimutils/khal?ref=blog.bajonczak.com) - Calendar client

> `khal` is a terminal calendar app, which shows upcoming events, month and agenda views. You can sync it with any CalDAV calendar, and add, edit and remove events directly

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--9YOqO5S5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/hLCdjZW/khal.png)

* * *

### [`mutt`](https://gitlab.com/muttmua/mutt?ref=blog.bajonczak.com) - Email client

> `mut` is a classic, a terminal based mail client for sending, reading and managing emails. It supports all mainstream email protocols and mailbox formats, allows for attachments, BCC/CC, threads, mailing lists and delivery status notifications

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--VwdNaLYL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/zVVsG3s/mutt.webp)

* * *

### [`newsboat`](https://github.com/newsboat/newsboat?ref=blog.bajonczak.com) - RSS / ATOM news reader

> `newsboat` is an RSS feed reader and aggregator, for reading the news, blogs and following updates directly from the terminal

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--BPuEuPaC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/fvT4YzD/newsboat.png)

* * *

### [`taskwarrior`](https://github.com/GothenburgBitFactory/taskwarrior?ref=blog.bajonczak.com) - Todo + task management

> `task` is a CLI task management/ todo app. It's both simple and unobtrusive, but also incredibly powerful and scalable, with advanced organisation and query features built in. There's also a lot (700+!) of extra [plugins](https://taskwarrior.org/tools/?ref=blog.bajonczak.com) for extending it's functionality and integrating with third-party services

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--QeqQw1O0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/7k6M37g/taskwarrior.jpg)

* * *

### [`tuir`](https://gitlab.com/ajak/tuir?ref=blog.bajonczak.com) - Terminal UI for Reddit

> `tuir` is a great one if you want to look like you're working, while actually browsing Reddit! It's got intuitive keybindings, custom themes, and can render images and multi-media content too. There's also [haxor](https://github.com/donnemartin/haxor-news?ref=blog.bajonczak.com) for hacker news

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--QttDR9ja--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/vzSw7s5/tuir.png)

* * *

## CLI Dev Suits

### [`httpie`](https://github.com/httpie/httpie?ref=blog.bajonczak.com) - HTTP / API testing testing client

> `httpie` is a HTTP client, for testing, debugging and using APIs. It supports everything you'd expect - HTTPS, proxies, authentication, custom headers, persistent sessions, JSON parsing. Usage is simple with an expressive syntax and colourized output. Like other HTTP clients (Postman, Hopscotch, Insomnia, etc) HTTPie also includes a web UI

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--GCvEbIXw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/Wk5S19g/httpie.png)

* * *

### [`lazydocker`](https://github.com/jesseduffield/lazydocker?ref=blog.bajonczak.com) - Full Docker management app

> `lazydocker` is a Docker management app, that lets you view all containers and images, manage their state, read logs, check resource usage, restart/ rebuild, analyse layers, prune unused containers, images and volumes, and so much more. It saves you from needing remember, type and chain multiple Docker commands.

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--t3qjWKXi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/MD8MWNH/lazydocker.png)

* * *

### [`lazygit`](https://github.com/jesseduffield/lazygit?ref=blog.bajonczak.com) - Full Git management app

> `lazygit` is a visual git client, on the command line. Easily add, commit and puch files, resolve conflicts, compare diffs, manage logs, and do complex operations like squashes and rewinds. There's keybindings for everything, colors, and it's easily configurable and extenable

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--rF4wSFzE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/KLF3C6s/lazygit.png)

* * *

## CLI External Sercvices

### [`ngrok`](https://ngrok.com/?ref=blog.bajonczak.com) - Reverse proxy for sharing localhost

> `ngrok` safely\* exposes your localhost to the internet behind a unique URL. This lets you share what you're working on with you're remote colleagues, in real-time. Usage is [very simple](https://notes.aliciasykes.com/p/RUi22QSyWe?ref=blog.bajonczak.com), but it's also got a lot of advanced features for things like authentication, webhooks, firewalls, traffic inspection, custom/ wildcard domains and much more

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--SIjfLNwV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/4WPZNGx/ngrok.png)

* * *

### [`transfer.sh`](https://github.com/dutchcoders/transfer.sh/?ref=blog.bajonczak.com) - Fast file sharing

> `transfer` makes uploading and sharing files really easy, directly from the command line. It's free, supports encryption, gives you a unique URL, and can also be self-hosted.  
> I've written a Bash helper function to make usage a bit easier, you can [find it here](https://github.com/Lissy93/dotfiles/blob/master/utils/transfer.sh?ref=blog.bajonczak.com) or try it out by running `bash <(curl -L -s https://alicia.url.lol/transfer)`

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--3Xa_MJUD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/cCqDb1k/transfer-sh.png)

* * *

### [`surge`](https://surge.sh/?ref=blog.bajonczak.com) - Deploy a site in seconds

> `surge` is a free static hosting provider, that you can deploy to directly from the terminal in a single command, just run `surge` from within your `dist` directory! It supports custom domains, auto SSL certs, pushState support, cross-origin resource support - and it's free!

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--iKFo9ur---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/NynprxZ/surge-sh.png)

* * *

### [`wttr.in`](https://github.com/chubin/wttr.in?ref=blog.bajonczak.com) - Check the weather

> `wttr.in` is a service that displays the weather in a format that's digestible in the command line. Just run `curl wttr.in` or `curl wttr.in/London` to try it out. There's URL parameters to customise what data is returned, as well as the format

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--d24wQ08X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/J2JWnYT/Screenshot-from-2023-01-18-21-10-54.png)

* * *

## CLI Fun

### [`cowsay`](https://en.wikipedia.org/wiki/Cowsay?ref=blog.bajonczak.com) - Have an ASCII cow say your message

> `cowsay` is a configurable talking cow. It's based off the [original](https://github.com/tnalpgge/rank-amateur-cowsay?ref=blog.bajonczak.com) by Tony Monroe

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--qNjdMj8x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/TRqW3jD/cowsay.png)

* * *

### [`figlet`](http://www.figlet.org/?ref=blog.bajonczak.com) - Output text as big ASCII art text

> `figlet` outputs text as ASCII art

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--Jala8Oxw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/fk4T7D0/figlet.png)

* * *

### [`lolcat`](https://github.com/busyloop/lolcat?ref=blog.bajonczak.com) - Make console output raibow colored

> `lolcat` makes any text passed to it rainbow coloured

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--AUO8rVMr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/nfp9Ycx/lolcat.png)

* * *

### [`neofetch`](https://github.com/dylanaraps/neofetch?ref=blog.bajonczak.com) - Show system data and ditstro info

> `neofetch` prints distro and system info (so you can flex that you use Arch btw on r/unixporn)

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--9vGUZc_0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/x1PHpFC/Screenshot-from-2023-01-18-22-44-28.png)

As an example, I'm using `cowsay`, `figlet`, `lolcat` and `neofetch` to create a custom time-based MOTD shown to the user when they first log in. It greets them by their name, shows server info and time, date, weather and IP. [Here's the source code](https://github.com/Lissy93/dotfiles/blob/master/utils/welcome-banner.sh?ref=blog.bajonczak.com).

![Unleash the Power of the Terminal: Essential Tools Every Developer Should Know](https://res.cloudinary.com/practicaldev/image/fetch/s--2Zp8xWf0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.ibb.co/cTg0jyn/Screenshot-from-2023-01-18-22-59-28.png)

* * *

#Conclusion

I think that there is at least one interesting tool for you and your productivity enlisted.

So in fact the console is not a black / white screen, that will only allow you to type in shell commands. It's in the meanwhile customizable and can be used for anything you want.