Working in software, we know the stereotypical terminals shown in movie scenes - with green text whizzing through black backgrounds as a hacker furiously slings commands from memory onto an eight inch screen - is far from the reality of today's development.
While our day-to-day development process might not appear as exciting and action-packed as the silver screen renditions, as software developers, we do have a lot of great options to streamline our workflows by improving the style and functionality of our terminals.
Fish
One of the biggest improvements to my experience in the terminal was from switching from bash
to fish. Fish upgrades your terminal with features like autosuggestions, that remember commands you have run before and try to auto complete them for you, and automatically generates auto completes for other utilities by parsing their man pages, neat!
Starship
Starship is a cross-shell prompt that is blazing-fast, and infinitely customizable. It is built in Rust, which gives it best-in-class speed and safety, to make your prompt as quick and reliable as possible. Out of the box it shows you pertinent information like what git branch you are on, what version of CLI tools you are running (e.g. node, Rust, etc), how long commands took to run, and so much more!
MonoLisa
Yes, this font costs money, and yes it is worth spending money on. There are a lot of nice free fonts out there, and I personally used Input before, but there is just something special about MonoLisa that cannot be put into words. It just feels clean and extremely legible. Their website says it was designed "to improve developers' productivity and reduce fatigue" and I think they nailed it!
Hyper
The built in terminal on Mac is decent, and has been getting some updates, but it tends to lag behind alternatives in terms of features. iTerm is another popular option, and new players to the space like Warp promise all kinds of new and exciting features.
However, my current gold standard for terminals is Hyper. I have been using it for many years and it was built by the folks at Vercel, who you may have heard of.
asdf
If you have worked on multiple different projects, throughout your career, odds are you have encountered a need to switch node
, ruby
, etc. versions depending on the project. There are several independent tools that exist for managing versions of these tools like nvm and rvm but I have recently been opting more for an all-in-one solution asdf.
asdf
supports auto switching versions of tools as you change directories in your terminal, so if you create a .tool-versions
file and specify the versions there, you can magically use the correct versions for every project, as soon as you cd
into that directory! 🎉
Top comments (2)
Using a few of these already they make the experience so much better. Can't beat those customisations.
For sure! Makes things so much nicer.