I've been using a combination of tools including Hyper, Pure, and ZSH to create my terminal of choice for the past several months. My workflow and day-to-day happiness with my environment has improved dramatically due to some subtle changes in the way I am able to work in the terminal. I outline my full terminal setup below, in hope it can help others improve their workflow.

There's just one caveat: don't copy these settings and configurations directly just because it works for me. Rather, use this post as inspiration to find pain points in your workflow and fix them. Ask yourself some questions: What bothers you about your terminal? Could it be better? How could you work faster?

Here's how I answered those questions for myself.

A new terminal app: Hyper

Hyper is a visually pleasing terminal that's powered by Electron (HTML, CSS, and Javascript). Some might say it's crazy to run a non-native terminal, and when it comes to performance, they may be correct. However, Hyper is very customizable and extensible. Best of all, it's built on a foundation that I am familiar with, so I am able to customize it to my liking with ease.

Hyper terminal in action

I use Hyper on a Mac primarily, but I have also installed and used it effectively on Windows or Linux environments. It's great to have a consistent workflow across machines, especially when I'm using a Windows environment to test my web projects. I store all my configuration in a the .hyper.js config file, and it's a breeze to transfer these settings to a new machine.

For a fantastic, clean, and minimal visual experience, I use the theme Verminal by Vernon de Goede. Verminal, like most plugins I have tried, is super easy to install and it is also customizable. I've found the default settings to be pretty useful, but it gives you a great starting point.

A new prompt: ZSH, Pure, and plugins

I pair Hyper with Z shell (ZSH) and Pure, a fast and clean ZSH prompt. Again, this is in an effort to create a visually-appealing and minimalistic experience. Not only is Pure visually appealing, but it has some extra features that improve my workflow. Most notably, Pure has some nifty git-related enhancements that improve my agility with git and version control. For example, it will display the current branch and status of that branch directly in your terminal. It will indicate a branch is dirty with a simple asterisk, and indicate a branch is out of sync with the remote repository with simple up or down arrows. Additionally, Pure removes a lot of the repetitive cruft that isn't necessary with every line in your terminal session, such as your username and host machine.

Hyper is very extensible, and there are many great plugins that can improve your day-to-day workflow in the terminal. Some of my favorite plugins help solve the little nags that can be easily solved. For example, hyper-tab-touchbar enables better interaction between the MacBook Pro's Touch Bar and Hyper. It will display open terminal tabs directly on the Touch Bar, which gives a great visual and interactive representation of your terminal. If you wish Hyper would quit when you close the last window, then install hyper-quit to do just that. It's a bit nontraditional for a Mac user, but it can be useful to some. For more great plugins, check out the Awesome Hyper project on GitHub.