System Setup in 2025
My setup, tools, and tricks I have learnt over the years
First Things First
I use a mac and the first thing I do is install Homebrew. Most of my CLI tools & programs are available on Homebrew. Makes it very easy to install a ton of packages in one go.
Over the years, I have learnt to store vital configurations in a dotfiles repository. You should read this old blog post and do it too!
When I setup my system, I download this repo and the first thing to run is
brew bundle install
This picks up the Brewfile
and installs all the packages I have listed in it. Read more about how Homebrew Bundle works.
Terminal
I have gone through the phases of using iTerm, Alacritty, Kitty, and now WezTerm. I also tried Warp for a while but it always felt too bloated & slow. It now has AI built in which is already too much AI everywhere at this point.
I have settled on WezTerm because it is a modern terminal emulator that is easy to configure and has a lot of features. Most importantly, it's lean, clean and has low CPU & Memory footprint. It also uses Lua for configuration which is a very nice language to work with.
I store my WezTerm configuration in the same dotfiles repository. Simply copying this to ~/.config/wezterm/wezterm.lua
does the job.
I have a few custom keybindings to split the terminal into multiple vertical / horizontal panes, navigate left and right around commands etc. You can find them in the config file itself.
Shell
I have been a long term fan of ZSH because of the Oh My ZSH framework. It supercharges my shell workflows.
macOS now comes with ZSH by default so you don't have to install it separately but in case you don't have it, you can install it via Homebrew.
My configuration is available here but you may not need all of it - things like the environment variables and path changes. Modify as needed.
I do wanna talk about some of the plugins I use because they make life easier.
zsh-autosuggestions
This plugin provides suggestions for commands as you type. It's a great way to speed up your workflow.
zsh-syntax-highlighting
This plugin provides syntax highlighting for your shell commands. If a command doesn't exist, it gets highlighted in red.
z
This plugin provides a way to navigate to frequently used directories. Example, if I need to go to ~/code/github
, I simply type z github
and it takes me there. The longer the path the quicker it feels.
git-extras
git-extras has a lot of useful tools & aliases that make git workflows super easy. For example -
git undo
- Undo the last commitgit delete-branch <branch-name>
- Deletes both the local and remote branch
You can take a look at the full list of commands here.
Prompt
I love Powerlevel10k. It's a no-nonsense, fast prompt with a lot of customizability. Make sure to enable transient prompt if you are using it.
My configuration is available in the same repository. If you are copying it, you'll need to place it in ~/.p10k.zsh
.
Misc CLI Tools & Aliases
Some of my favorite CLI tools & aliases.
Tools
- eza : eza is a modern replacement for ls. It's a lot faster and has a lot of features.
- micro : I couldn't ever get used to working with Vim. Thankfully Micro exists with sensible defaults, keyboard shortcuts, syntax highlighting and more.
- volta : I use Volta to manage my Node.js versions. NVM is popular but Volta is lean and clean. It seamlessly integrates into your node projects via
volta
config inpackage.json
and if you have a pinned node / npm version, it'll automatically switch to that version when you go into your project directory. - fkill : I don't like googling that command to figure out process ID and then kill it using
kill -9 <pid>
. fkill is just more convenient. - fzf : Ever used arrow keys to find that one command you couldn't fully remember? Or tried the default
Ctrl+R
to search through your command history? fzf is a better alternative. It has fuzzy search to get you to the right command at lightning speed. - yt-dlp : I love downloading videos from YouTube for offline viewing, especially when I am on a plane / train. YT-DLP is amazing for this. It can download videos, music, subtitles in various quality. I even have an alias for it mentioned below.
Aliases
# zshrc management
alias zc="micro ~/.zshrc"
alias zs="source ~/.zshrc"
# use eza when typing ls
alias ls="eza"
alias la="eza --icons -la"
# because this is needed a lof of times
alias nuke="rm -rf node_modules"
# recursively kills all node_modules. Helpful when freeing up space
# and also migrating to a new system without having to copy
# gazillion files
alias boom="find . -name "node_modules" -exec rm -rf '{}' +"
# kill process
alias k="fkill -v"
# git additional
alias gdl="git delete-branch"
# yt-dlp alias for downloading videos from YouTube in the best possible quality
# along with all the subtitles
alias ytd='yt-dlp --output "./%(title)s/%(title)s-[%(id)s].%(ext)s" --all-subs -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4"'
Apps
- AppCleaner : It's an oldie but a goodie. Mac doesn't have a native uninstaller that can purge all the files & configurations when an app is uninstalled. AppCleaner is a great tool to do that. If you installed an app via Homebrew,
brew uninstall
should do the job. If you are using AppCleaner, make sure you turn Smart Delete on.

- Bandwidth+ : Nifty little menu bar tool that shows upload and download speeds.
- Bitwarden : The best password manager I have ever used. The free version is good enough for most people.
- CommandX : I hate hitting ⌘⌥V to cut paste a file? CommandX enables ⌘X on a mac.
- Dato : Another great one from Sindre. I can't imagine tackling all the meetings and calendar events I have in life without it.
- ImageOptim : The fastest way to optimize images. One of the must have tools for UI engineers.
- LocalSend : I use an Android phone and LocalSend is the easiest way to send files to my mac and other devices.
- Menu Bar Spacing : Another one from Sindre that fixes the nighmare of a decision Apple took with spacing the menu bar items in the newer macOS versions.
- QuickRecorder : My go to tool for screen recording was QuickTime screen recording but I needed something that had a bit more features. QuickRecorder is a great, free, open source alternative.
- Raycast : Seriously! Why do people still use Spotlight? It has a great extensions ecosystem that helps me to things like quickly generate passwords, copy TOTPs via Ente Auth, have auto expanding snippets etc.
- Shottr : The best screenshot tool I have ever used and purchased a license. If you install it, make sure you change the default macOS screenshot shortcut to open Shottr instead. Here's a screenshot! ;)
- Thorium : I have been daily driving Thorium now. So far, it's been a great, fast, reliable Chromium fork.
- Squoosh : My go-to tool for converting images to web optimized formats, especially AVIF.
- SVGOMG : The tool to optimize individual SVG files.
- edit.photo : The simplest and cleanest browser based photo editor for most common use cases.
- Photopea : Not paying for Photoshop. Photopea is the best free Photoshop alternative running on web tech.
- tldraw : Between Excalidraw and this one, I like this one a tad bit more! Purely a personal taste thing.