Hi there, I’m writing this one just because I can 😄. Jokes aside, in this post, I listed some of my favourite CLI applications.
Most of them are publicly available, and you should be able to install these onto your Unix-based systems without any problems.
I cannot help but automate my workflow—I just can’t bear it. The need to be organised overcomes fast prototyping, so I build scripts, CLI apps, and even more to help me focus on the problem, not on the tools that I use. Plus, who doesn’t like spending hours creating something that saves you minutes, right?
The Missing Package Manager, Brew
Brew is a lifesaver on macOS platforms. It not only manages packages but also services. You can install daemons and manage them using some simple commands. It’s like Apple’s built-in screwdriver, just without the fruit. For example:
brew install <package_name>
brew services start <service_name>
Mapper of Ports, nmap
nmap is an open-source tool for network exploration and security auditing. It’s perfect for discovering hosts and services on a computer network, thus creating a “map” of the network. I use it regularly to keep tabs on my local network. It’s a lifesaver to check my services on newly deployed projects with ease. Who knew scanning your own Wi-Fi could feel so much like espionage?
ClientURL, curl
curl is a command-line tool for transferring data with URLs. Whether you need to download a file, test an API, or just browse the web from your terminal, curl has you covered. Words cannot suffice my feelings for this tool—it’s great for prototyping, testing APIs, and more. I mean, can you even call yourself a developer if you haven’t spun up a curl -hv session at 2 AM to debug your latest app?
curl https://api.example.com/resource
Control Your Versions, git
git is an indispensable version control system for tracking changes in source code. It helps in coordinating work among programmers while keeping track of every change in a special kind of database. I really can’t live without this beautiful little helper. Without git, collaborating on code would be like using carrier pigeons in the age of the internet. A simple workflow might look like this:
git init
git add .
git commit -m "Initial commit"
git push
Manage Your Environments with Ease, pyenv
pyenv is a simple Python version management tool. It lets you seamlessly switch between multiple versions of Python on a single system. Installing a different version is straightforward:
pyenv install 3.9.1
pyenv global 3.9.1
It saves a lot of time and is simply awesome! Trust me, pyenv is to Python what peanut butter is to jelly—an absolute must-have.
Serve FastAPI Apps with Ease: uvicorn
uvicorn is a lightning-fast ASGI server for Python, particularly well-suited to serving FastAPI applications. Here’s a simple command to get your app up and running:
uvicorn main:app --reload
If Uvicorn were any faster, it would have to wear running shoes.
Introducing Another VCS Software, sarm
sarm is my creation, a closed-source enterprise version control system developed by my company, smskSoft. We use it internally to manage our projects and some of our clients’ projects. Access is highly limited as it has proprietary integrations with our systems. Think of sarm as the Fort Knox of version control systems.
Track Your Tasks, todoman
todoman is another one of my creations from when I was in middle school. It’s a terminal-based todo list manager that can manage sessions, different projects, categories, and even generate analytics. Although it’s currently proprietary, I’m considering making it public, even though there’s no real necessity for it at this time. It interfaces with Taskwarrior to keep track of your tasks straight from the command line.
todoman list
todoman create -title="Some Task" -description="you really need to work on this one mate"
It’s like having a personal assistant, only without the coffee-fetching capabilities.
Connect to Projects, zed
zed features an innovative rendering engine based on Rust to handle rendering on cross-platform apps. It’s beautifully fast and efficient. It helps me connect to my collaborative projects smoothly. With Zed, it’s like working in 4K on every platform.
Its CLI helps me a lot; I often use i3 on one of my workbooks, and believe me, using prompt-based interfaces can be better than using user interfaces, even though I am using it to launch one.
Expose Them Projects, ngrok
ngrok enables you to expose a local server to the internet securely. It’s incredibly handy for testing APIs or showcasing a web application still in development. I started using it to serve my Minecraft server to my friends, but now I use it to expose test versions of projects. I am working on my version of the ngrok project, but there’s no urgent need to complete it soon—maybe later. Because why finish today what you can put off until tomorrow, right?
ngrok http 8080
Conclusion
These CLI tools help streamline my workflow, ensuring I can focus more on solving problems rather than getting bogged down by my tools. Automating repetitive tasks and using the right tools not only boosts my productivity but also makes the process enjoyable. Whether you are a developer, a system administrator, or just someone who loves tinkering with technology, these CLI applications are bound to make your life easier.
Remember, it’s not just about working hard—it’s about working smart. So go ahead, give these tools a try, and watch how they transform your workflow. I hope you find some of these applications as useful as I do. Happy coding!
Leave a Reply