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 nvm and 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 with pg_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:

  1. Install Alfred
  2. Disable Spotlight
  3. 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:

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!

WhatsApp

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.