Today, I’m sharing a list of essential software and tools I use daily as a developer on my Mac in 2026.
Command-line tools
Homebrew
I’m starting this list with Homebrew, the must-have package manager on macOS. I install most of my tools with Homebrew. Apple should really consider including Homebrew natively in macOS.
To install Homebrew (brew), run the following command and follow the instructions in the terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
iTerm2
iTerm2 is my favorite terminal. It supports many features that are missing from macOS’s default Terminal app. Once you’ve tried it, you won’t be able to go back.
brew install --cask iterm2
Fish
Fish is my favorite shell, and I use it together with the Oh My Fish extension.
I’ve been using Fish for more than 10 years, and I miss its autocompletion features as soon as I switch to another shell. I’ve tried several times to move to zsh when Apple made it the default shell on macOS, but I’ve never managed to recreate a setup as efficient and pleasant as Fish.
brew install fish
nvm
nvm is a utility for managing multiple versions of Node.js side by side. It’s the best way to install Node.js on Mac.
brew install nvm
For more details on installing nvm, see this article.
If you work with multiple languages beyond Node.js, mise is a polyglot version manager that could replace
nvmand similar tools with a single binary. I'm planning to try it soon.
pnpm
pnpm is my default Node.js package manager. Not only is it faster than npm and yarn, but it also optimizes disk space usage thanks to a package sharing system. With pnpm, each package is downloaded only once, no matter how many projects use it. A real game changer!
brew install pnpm
LaTeX
I use LaTeX mainly to write my résumé and letters (often cancellation letters 😂). Yes, it’s a bit geeky, but it saves me a lot of time by avoiding the formatting headaches that come with WYSIWYG tools.
brew install --cask mactex
GitHub CLI
The GitHub CLI, what a wonderful utility! It’s an essential tool if you work with GitHub. Here are a few examples of useful commands:
gh pr checkout <pr>: to switch to a pull request.gh release create: to create a release.gh release download <tag>: to download the artifacts from a release.gh issue list: to list issues.
brew install gh
ffmpeg
ffmpeg is a tool for converting and compressing video and audio. It’s super handy for reducing the size of videos and photos taken on our smartphones.
brew install ffmpeg
For more details on how I use it to compress videos, see this article.
bat
bat is an enhanced version of cat, but with syntax highlighting and Git integration.
brew install bat
HTTPie
HTTPie is an HTTP client like Postman, Bruno, or Insomnia, but for the command line. Super handy.
brew install httpie
fzf
As explained in their GitHub repository, fzf “is a general-purpose command-line fuzzy finder.” It’s hard to explain in French, but trust me: it’s incredibly practical and efficient!
brew install fzf
tree
tree is a utility that displays the contents of a folder in a tree structure, as shown below:
.
└── JetBrains Toolbox
├── DataGrip.app
├── IntelliJ IDEA Ultimate.app
├── JetBrains Gateway.app
└── WebStorm.app
5 directories, 0 files
You can install tree via Homebrew:
brew install tree
PostgreSQL
PostgreSQL is my favorite database. It’s an open-source relational database that covers 99.99% of my needs.
To install it, run the following commands:
brew install postgresql@17
brew services start postgresql@17
These commands also install the suite of command-line tools used to interact with PostgreSQL. This suite notably includes:
pg_dump: to export a database,pg_restore: to restore a database previously exported withpg_dump,psql: the interactive terminal used to manage PostgreSQL databases.
yt-dlp
yt-dlp is a nice utility for downloading YouTube videos from the terminal. Handy!
brew install yt-dlp/taps/yt-dlp
Pandoc
Pandoc is the ideal command-line tool if you need to convert files from one format to another. It is especially useful in the age of artificial intelligence for easily turning any document into Markdown.
brew install pandoc
Cloud tools
Google Cloud CLI
To interact with Google Cloud, I use the Google Cloud CLI:
brew install --cask gcloud-cli
Azure CLI
To work with Microsoft Azure, I use the Azure CLI:
brew install --cask azure-cli
Terraform CLI
Terraform is an infrastructure-as-code (IaC) tool that makes infrastructure management easier. It is compatible with most cloud providers.
brew tap hashicorp/tap && brew install hashicorp/tap/terraform
Scaleway CLI
Scaleway CLI is a command-line tool for deploying and managing your infrastructure on Scaleway, a European cloud provider.
brew install scw
Productivity tools
Rectangle
Rectangle is a free and open-source tool for moving and resizing your windows using the keyboard. If you don’t already have Rectangle on your Mac, stop reading this article and go install it right now. It will literally change your life and save you a huge amount of time!
brew install --cask rectangle
Alfred
Alfred is a utility for launching applications, opening files, searching, managing the clipboard, and many other everyday actions. You know Spotlight, the search tool built into macOS? Alfred is similar, but 10 times better. I use Alfred an average of 40 times a day. The first things I do on a new Mac:
- Install Alfred
- Disable Spotlight
- Assign the Command + Space shortcut to Alfred
Alfred is free, but I opted for the Powerpack to unlock additional features
while also supporting the development of the project.
Raycast is on my radar, and I'm considering using it as an alternative to Alfred because I've heard a lot of great things about it. However, I haven't found the time to try it yet.
brew install --cask alfred
Notion
I use Notion for note-taking, but it can do much more than that, such as task management and project management. I used to use OneNote, but I switched to Notion because it supports Markdown.
brew install --cask notion
I'm switching from Notion to Obsidian because storing your content as Markdown files is the best way to provide it to AI agents.
Spark
I use Spark as my email client for personal emails. I also use it on my iPad and Android phone.
brew install --cask readdle-spark
Todoist
Those who know me know how much I love to-do lists. I use Todoist to plan and track all my tasks. The tool is free, but I subscribed to the Pro version, which offers additional features.
brew install --cask todoist
1Password
I use 1Password as my password manager. Although there is a native Mac app, I mainly use it through the extension built into my browser.
brew install --cask 1password
Bruno
Bruno is an open-source API client that supports REST and GraphQL. What I like about it is that it stores collections and all configuration offline, directly in the file system.
Collaboration and collection sharing happen naturally through Git.
brew install --cask bruno
IDEs and development tools
JetBrains
I’m a big fan of the IDEs offered by JetBrains, which I find far superior to their competitors. To manage my installations easily, I use JetBrains Toolbox, which centralizes everything. Here are the IDEs I use regularly:
- WebStorm: for frontend development.
- IntelliJ IDEA: for backend development.
- DataGrip: for working with databases.
brew install --cask jetbrains-toolbox
Visual Studio Code
I also use Visual Studio Code, but only for reading and exploring code. As soon as it’s time to do serious work, I systematically turn to WebStorm.
brew install --cask visual-studio-code
Docker Desktop
In the age of containerization, having Docker Desktop is essential. It makes the main containerization tools very easy to use, such as Docker Engine, Docker CLI, Docker Compose, and Kubernetes.
LM Studio
In the age of Artificial Intelligence, being able to run certain models locally is essential. LM Studio is the perfect tool for that. It is free and open source and installs easily.
brew install --cask lm-studio
Java (Eclipse Temurin)
Eclipse Temurin is the OpenJDK distribution of Java. It is maintained by the Eclipse Foundation through the Eclipse Adoptium working group, the successor to AdoptOpenJDK.
To install it, use the following command:
brew install --cask temurin@25
Gradle
Gradle is a package management, build, and automation tool. It is more performant than Maven. It natively supports build output caching, which means that if you run the same command twice, the second execution is instantaneous.
brew install gradle
Maven
I also use Maven when I don’t have the option to use Gradle.
brew install maven
Kotlin
Kotlin is a programming language that needs no introduction. It is concise, optionally typed, and interoperable with Java. It has become the default language for Android and is officially supported by Spring.
brew install kotlin
Browsers
Microsoft Edge
My main browser is Microsoft Edge. Here are my three favorite extensions:
- uBlock Origin: to block ads, popups, and trackers of all kinds.
- Wappalyzer: to quickly identify the technologies used by the websites I visit.
- 1Password: to manage all my passwords.
brew install --cask microsoft-edge
Sizzy
Sizzy is not a traditional browser. It is a specialized tool for simulating different devices and testing the responsive design of the web applications I develop.
brew install --cask sizzy
Other browsers
I also use Firefox, Google Chrome, and Safari to make sure my applications work properly on these browsers.
To install Google Chrome:
brew install --cask google-chrome
To install Firefox:
brew install --cask firefox
Software
The Office suite
The Office suite is almost indispensable in the professional world. So I installed Word, Excel, Outlook, PowerPoint, and Teams on my Mac. However, I regret that the Mac versions of these applications often have fewer features than their Windows counterparts. But well, you can’t have everything in life!
I probably spend too much time on WhatsApp, but the desktop version saves me a bit of time. Like all developers, I type much faster on my Mac keyboard than on my phone.
brew install --cask whatsapp
VLC
VLC is a media player. I don’t know a single video or audio format that is not supported by VLC.
brew install --cask vlc
Zoom
Zoom is a video conferencing tool often used by organizers of meetups or online conferences.
brew install --cask zoomus
Slack
Slack is a widely adopted communication tool, especially by the open-source community, to facilitate communication and collaboration.
brew install --cask slack
Setapp
I also subscribed to a monthly Setapp plan, which gives me access to a vast collection of software. Here are some of my favorite applications available through Setapp:
- AnyDroid: for transferring files from Android to Mac.
- DevUtils: an essential suite of utilities for developers.
- CleanShot X: a powerful tool for taking screenshots.
- Squash: a handy tool for compressing images.
- Permute: a utility for converting audio, image, and video files.
- Lungo: a tool to prevent your Mac from going to sleep.
Conclusion
This list is based on my personal experience and reflects my needs and requirements. I shared it with you hoping that you’ll find a tool that improves your experience on macOS. If that’s the case, feel free to contact me and let me know.
Likewise, if you know of a tool that could improve my experience on macOS and that is not on this list, I would be very grateful if you shared it with me. I promise to test it and add it to this list if I find it useful.
If you enjoyed this article, follow @ahasall on Twitter for more content like this.