I like to keep my terminal lean and productive, here is a list of some awesome tools to help you with your daily work:
- Brew
- Alfred
- iTerm2
- Zsh
- Powerlevel10k
- Meslo Nerd Font
- z
- Kubectl
- Kubectx
- Helm
- Stern
- Kubernetic
1. Brew package manager (Mac)
I use Brew for installing everything on my Mac. To install brew itself simply run:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
2. Alfred Productivity App (Mac)
Alfred is an application launcher for Mac which is not directly terminal related but I use it to start my terminal, so worth the mention.
Keyboard shortcut just the one and only:
-
Cmd+Space
: Open Alfred app
Installation:
brew install alfred
Alternatives: QuickSilver, Launchbar, Spotilight.
3. iTerm2 (Mac)
As a terminal emulator I prefer to use iTerm2, which integrates great with other tools in this list. Some of my favourite features are spawning multiple terminals to work with.
Keyboard shortcuts I use daily:
-
Cmd+Enter
: Fullscreen mode. -
Cmd+D
: Split horizontally. -
Cmd+[
orCmd+]
: Next or previous terminal. -
Cmd+t
: New tab terminal. -
Cmd+Alt+i
: Broadcast input to all panes in current tab.
The last one I'm not using daily, but it super helpful in case you want to perform a repetitive work in multiple .
Installation:
brew install iterm2
Alternatives: Alacritty (Mac, Linux, Win), Kitty (Mac, Linux)
4. Zsh Shell
Choosing a shell is something of a personal preference, I chose some time ago zsh and have sticked to it since then.
5. Powerlevel10k theme for Zsh
Powerlevel10k (or p10k) is a zsh theme that greatly improves the UX of the CLI itself. Once installed do p10k configure
and it will interactively prompt you to customize it as you want.
Some of my favourite features here are:
- Instant Prompt: It provides you with an interactive prompt before finish loading the shell configuration itself, this makes it super fast to startup.
-
Show On Command: It displays command related info (e.g. the kubernetes context & namespace). I have as alias
k
forkubectl
so it appears the moment I strikek
on my keyboard:
Installation:
brew install romkatv/powerlevel10k/powerlevel10k echo 'source /usr/local/opt/powerlevel10k/powerlevel10k.zsh-> theme' >>~/.zshrc p10k configure
Alternatives: oh-my-zsh
6. Meslo Nerd Font
P10k prompts if you want automatic installation of Meslo Nerd Font
during p10k configure
process. As a console font is good enough for me, so I'm sticking with that one.
Installation:
p10k configure
Alternatives: Fira Code, Incosolata, Victor Mono
7. z
Z is one of those small tools that really make a difference! Its description is "jump around" and is used as a direct replacement of cd
to switch directories.
Instead of jumping by using absolute or relative paths between directories, it tracks your most frequent paths and jumps to the best match. So instead of doing for example cd ~/src/private/harbur/docs/playbook
I simply do z play
and it picks it up.
Installation:
brew install z
8. Kubectl
Cloud native is almost synonym these days with kubernetes, so kubectl on the CLI is a must. There are different ways to install the binary, for the sake of uniformity we'll install it with brew.
Installation:
brew install kubernetes-cli
9. Minikube
Either if you're starting out or you're an experienced user of kubernetes one of the best ways to start a Kubernetes cluster locally is using minikube.
Installation:
brew install minikube
9. kubectx
If you work with many clusters or many namespaces it s(h)aves a loooot of time to avoid passing those as parameters to each command, instead you can switch your active context or namespace to be the one you want to use.
For that you can use kubectx. It installs both kubectx
and kubens
for switching context or namespace respectively, combined with the "Show on command" feature of p10k at the right side of the screen it really shines:
Installation:
brew install kubectx
10. Helm
Helm is a package manager for kubernetes, it helps you organize multiple resources and install them together as a unified app, it also manages the lifecycle of the releases providing the ability to do upgrades and rollbacks.
Make sure to use v3, as helm v2 has reached its end-of-life.
Installation:
brew install helm
11. Stern
Stern is a multi pod and container log tailing for Kubernetes, so for example if you want to get the logs of a deployment with two pods you simply do stern nginx and it will tail the logs of both pods on screen:
Installation
brew install stern
Alternatives: kubetail, kail
12. Kubernetic Desktop client
Kubernetic is a desktop client for kubernetes focused on productivity. While CLI is great for productivity and automation when needed, Kubernetic is best for feature discoverability, provides a great learning platform for newcomers, and is actually faster than working with the CLI for experienced users.
With Kubernetic you can manage multiple contexts & namespaces, see resources usage consumption, do port-forwarding of services, execute commands in containers, craft resources without extensive YAML knowledge and much much more.
Installation:
brew install kubernetic
Disclaimer: Kubernetic is a product of Harbur Cloud Solutions, the consulting company where I currently work.
I hope you find these tools useful to boost your productivity, if you added one of those tools to your daily toolbox, then I consider this post a success.
I recently started my blog Coding Holy Grail where I talk about the eternal pursuit of the perfect coding experience and the backstage process of building a product such as Kubernetic. This article is from there, you should check it out :)
If you like what I write, please follow me on Twitter 🥰
Top comments (0)