CLI tools you won't be able to live without π§
Hatched by min dulle
Sep 10, 2023
7 min read
14 views
CLI tools you won't be able to live without π§
In the fast-paced world of software development, efficiency is key. And one way to boost your productivity is by using command-line interface (CLI) tools. These tools offer a streamlined way to perform various tasks right from your terminal, saving you time and effort. In this article, we'll explore some must-have CLI tools that will enhance your workflow and make your life as a developer much easier.
- Community-maintained docs (better man)
When working on a project, it's common to come across unfamiliar commands or tools. Usually, the first instinct is to search the web for documentation. But what if you could access the documentation right from your terminal? That's where "better man" comes in. It's a CLI tool that enhances the traditional "man" command by pulling in community-maintained documentation. With "better man", you can quickly find examples, tips, and tricks shared by other developers, making it a valuable resource for learning and troubleshooting.
- exa - Listing Files (better ls)
If you've ever used the "ls" command to list files in a directory, you know that the output can be overwhelming, especially in large projects. "exa" is a CLI tool that provides a better alternative to "ls". It offers a more visually appealing and informative file listing with features like colored icons, file size, and Git integration. With "exa", you can quickly navigate and understand your file structure, making it a must-have tool for any developer.
- entr - Watch for changes
When working on a project, it's essential to keep track of file changes and update your workflow accordingly. "entr" is a CLI tool that helps you do just that. It allows you to monitor file changes in a directory and execute a command whenever a change occurs. This can be particularly useful when working with automated tests or live-reloading tools. With "entr", you can streamline your development process by automatically triggering actions based on file changes.
- fzf - Fuzzy file finder (better find)
Finding specific files or directories in a large project can be a daunting task. That's where "fzf" comes in. It's a powerful CLI tool that allows you to search for files and directories using a fuzzy search algorithm. With "fzf", you can quickly locate the file you need without having to remember its exact name or location. This can save you a significant amount of time and frustration, especially when working with complex projects.
- hyperfine - Command benchmarking
Performance optimization is crucial when it comes to software development. And to optimize your code, you need to measure its performance accurately. "hyperfine" is a CLI tool that helps you do just that. It allows you to benchmark your command-line tools and scripts, providing you with valuable insights into their performance. With "hyperfine", you can identify bottlenecks, compare different implementations, and make data-driven decisions to improve your code's efficiency.
- jq - JSON processor (better grep)
Dealing with JSON data is a common task in modern software development. And when it comes to parsing and manipulating JSON, "jq" is the go-to tool. It's a lightweight and flexible CLI tool that allows you to extract, filter, and transform JSON data with ease. With "jq", you can quickly perform complex queries and operations on JSON files, making it a valuable tool for data analysis and manipulation.
- better grep
The "grep" command is a powerful tool for searching text patterns in files. However, it can be challenging to use, especially when dealing with large codebases or complex search patterns. "better grep" is a CLI tool that enhances the functionality of "grep" by providing a more user-friendly and customizable interface. With "better grep", you can refine your search queries, exclude certain files or directories, and even highlight the matching patterns for better visibility.
- better ps
Monitoring system processes is essential for troubleshooting and resource management. The "ps" command is a standard tool for viewing running processes. However, it can be overwhelming to parse and understand its output, especially in complex environments. "better ps" is a CLI tool that provides a more informative and visually appealing process view. With "better ps", you can quickly identify resource usage, parent-child relationships, and other vital information about running processes.
- better sed
"sed" is a powerful stream editor that allows you to perform text transformations on files or streams. However, its syntax and usage can be quite cryptic, making it challenging for beginners or occasional users. "better sed" is a CLI tool that enhances the functionality of "sed" by providing a more intuitive and user-friendly interface. With "better sed", you can perform complex text transformations with ease, making it a valuable tool for data processing and manipulation.
- gping - Interactive ping tool (better ping)
The "ping" command is a staple tool for testing network connectivity and measuring latency. However, its output can be challenging to interpret, especially in complex network environments. "gping" is a CLI tool that provides a more user-friendly and visually appealing alternative to "ping". With "gping", you can visualize network latency in real-time, making it easier to identify network issues and troubleshoot connectivity problems.
- glances - Resource monitor + web and API speedtest-cli - Command line speed test utility
Monitoring system resources and network performance is crucial for maintaining optimal system performance. "glances" is a CLI tool that provides a comprehensive overview of system resources, including CPU usage, memory usage, disk I/O, and network statistics. With "glances", you can quickly identify bottlenecks and optimize your system for maximum efficiency. Additionally, "speedtest-cli" is a command-line speed test utility that allows you to measure your network's upload and download speeds. With "speedtest-cli", you can ensure that your network connection is stable and performant.
- dog - DNS lookup client (better dig)
"dig" is a powerful tool for performing DNS lookups and troubleshooting DNS-related issues. However, its output can be overwhelming, especially for beginners or occasional users. "dog" is a CLI tool that provides a more user-friendly and visually appealing alternative to "dig". With "dog", you can perform DNS lookups, query specific DNS records, and troubleshoot DNS-related problems with ease.
- Bookmark manager (note: μ¬μ© κ°λ₯ μ¬λΆ νμΈ νμ)
Managing bookmarks is essential for organizing and accessing valuable online resources. While there are many bookmark manager tools available, not all of them have a CLI interface. However, if you prefer working from the terminal, there are CLI tools like "buku" that allow you to manage your bookmarks right from your command line. With a CLI bookmark manager, you can quickly add, search, and open your favorite webpages without leaving your terminal.
- ddgr - Search the web from the terminal
Searching the web is a common task, but it usually involves opening a web browser and typing your query into a search engine. With "ddgr", you can perform web searches right from your terminal. It's a CLI tool that uses the DuckDuckGo search engine to fetch search results and display them in your terminal. With "ddgr", you can save time and avoid distractions by keeping your searches within your development environment.
- micro - Code editor (better nano)
When it comes to editing files from the terminal, "nano" is a popular choice. However, if you're looking for a more feature-rich and customizable code editor, "micro" is worth considering. It's a CLI-based text editor that offers syntax highlighting, multiple cursors, and various keybindings. With "micro", you can edit code files with ease, making it a valuable tool for quick edits or when working on remote servers.
CLI Dev Suites:
- httpie - HTTP / API testing client
Testing APIs and HTTP endpoints is a common task for developers. While there are many tools available for this purpose, "httpie" is a CLI-based HTTP client that offers a simple and intuitive interface. With "httpie", you can send HTTP requests, inspect response headers and bodies, and even perform complex operations like authentication and file uploads. With its user-friendly syntax and powerful features, "httpie" is a valuable tool for API testing and development.
- lazydocker - Full Docker management app
Managing Docker containers and images can be a complex task, especially when dealing with multiple projects or environments. "lazydocker" is a CLI-based Docker management app that provides a user-friendly and intuitive interface for managing Docker resources. With "lazydocker", you can view running containers, manage volumes and networks, and even inspect container logs and statistics. With its streamlined workflow, "lazydocker" simplifies Docker management and allows you to focus on your development tasks.
- lazygit - Full Git management app
Git is an essential tool for version control and collaboration in software development. While there are many GUI-based Git clients available, sometimes you need a CLI-based solution for working on remote servers or in headless environments. "lazygit" is a CLI-based Git management app that provides a user-friendly and intuitive interface for common Git operations. With "lazygit", you can stage changes, commit code, create branches, and even resolve merge conflicts, all from your terminal. With its simplicity and power, "lazygit" is a valuable tool for Git-based workflows.
CLI External Services:
- ngrok - Reverse proxy for sharing localhost
When working on web projects, it's common to test and share your work on localhost before deploying it to a production environment. However, sharing your localhost with others can be challenging, especially when dealing with firewalls and network configurations. "ngrok" is
Sources
Hatch New Ideas with Glasp AI π£
Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)
Start Hatching π£