Skip to main content

Essential Development Tools: My Brewfile Setup

· 9 min read
Ammar Najjar
Software Architect

As a software engineer, our toolset shapes how we work and what we can accomplish. Over time, I've curated a collection of essential tools that boost my productivity and make development more enjoyable. Here's a breakdown of my Homebrew setup, featuring the tools I use daily.

Tools at a Glance

ToolWhat It's Good For
Claude CodeAI-powered coding assistant CLI
awscliAWS services management from the command line
colimaLightweight Docker Desktop alternative for macOS
neovimModern, extensible vim-based text editor
fdFast and user-friendly alternative to find
fzfInteractive fuzzy search for files, commands, and more
ghGitHub CLI for managing repos, PRs, and issues
git-deltaSyntax-highlighted git diffs with side-by-side view
jqCommand-line JSON processor for parsing and manipulation
helmKubernetes package manager for deploying applications
k9sTerminal UI for managing Kubernetes clusters
kubernetes-clikubectl - Kubernetes cluster management tool
MacTeXComplete TeX distribution for macOS
ObsidianKnowledge base and note-taking with markdown
MaccyLightweight clipboard manager for macOS
uvFast Python package installer and resolver
ripgrepUltra-fast recursive search tool
atuinSmart shell history search with sync across machines
tmuxTerminal multiplexer for managing multiple sessions
WarpModern terminal with AI features and collaborative tools
gitDistributed version control system
misePolyglot runtime version manager (replaces asdf, nvm, etc.)
graphvizGraph and diagram generation from text descriptions

Detailed Tool Breakdown

Command Line Essentials


atuin

Atuin revolutionizes shell history management. Instead of the basic up-arrow history search, Atuin provides a searchable, syncable database of your shell commands across all your machines. It captures context like the directory you were in and exit codes, making it easy to find that command you ran three weeks ago.

Key Features:

  • Full-text search through your entire shell history
  • Sync history across multiple machines (end-to-end encrypted)
  • Context-aware search (filter by directory, exit status, time)
  • Import existing shell history from bash, zsh, fish

Installation:

brew install atuin

fd

fd is a modern replacement for the classic find command. It's faster, more intuitive, and uses sensible defaults like ignoring .gitignore patterns automatically.

Why I use it:

  • Simpler syntax than find: fd pattern vs find . -name '*pattern*'
  • Colored output for better readability
  • Respects .gitignore by default
  • Blazingly fast parallel directory traversal

Installation:

brew install fd

fzf

fzf is an interactive fuzzy finder that integrates beautifully with the shell, vim, and other tools. It transforms how you search for files, navigate directories, and search command history.

Common use cases:

  • Ctrl+R for fuzzy command history search
  • Ctrl+T for fuzzy file search
  • Integration with vim/neovim for file navigation
  • Custom scripts for searching anything (git branches, processes, etc.)

Installation:

brew install fzf

ripgrep

ripgrep (rg) is hands-down the fastest way to search through code. It automatically respects .gitignore, searches recursively, and provides colorized output with context.

Performance highlights:

  • Faster than grep, ag, ack, and others
  • Respects .gitignore and hidden files by default
  • Supports multiple search patterns and file type filtering
  • Essential for large codebases

Installation:

brew install ripgrep

tmux

tmux is a terminal multiplexer that lets you manage multiple terminal sessions from a single window. It's invaluable for remote work, long-running processes, and organizing your workspace.

Why it's essential:

  • Persistent sessions that survive disconnections
  • Split panes and windows for multitasking
  • Session management for different projects
  • Scriptable and highly customizable

Installation:

brew install tmux

Version Control & Git Tools


git

Git is the backbone of modern software development. The distributed version control system that powers collaboration across teams and projects worldwide.

Installation:

brew install git

git-delta

Delta transforms git diffs into beautiful, syntax-highlighted output with side-by-side comparisons. It makes code review and understanding changes much easier.

Visual improvements:

  • Syntax highlighting in diffs
  • Side-by-side diff view
  • Line numbering and git blame integration
  • Configurable themes and styles

Installation:

brew install git-delta

gh

GitHub CLI brings GitHub functionality to your terminal. Create PRs, review issues, manage repos, and automate workflows without leaving the command line.

Favorite features:

  • gh pr create - Create pull requests from the terminal
  • gh pr checkout - Check out PRs by number
  • gh repo clone - Quickly clone repos
  • gh run view - Monitor GitHub Actions workflows

Installation:

brew install gh

Container & Kubernetes Tools


colima

Colima is a lightweight container runtime for macOS that provides Docker and Kubernetes support with minimal resource usage. It's an excellent free alternative to Docker Desktop.

Benefits:

  • Low memory footprint compared to Docker Desktop
  • Simple CLI interface: colima start, colima stop
  • Supports both Docker and Kubernetes
  • Configurable CPU, memory, and disk allocation

Installation:

brew install colima

kubernetes-cli

kubectl is the official Kubernetes command-line tool for deploying applications, inspecting resources, and managing cluster operations.

Installation:

brew install kubernetes-cli

helm

Helm is the package manager for Kubernetes, making it easy to define, install, and upgrade complex Kubernetes applications using charts.

Installation:

brew install helm

k9s

k9s provides a terminal UI for Kubernetes that makes cluster management visual and interactive. It's like having a dashboard in your terminal.

Productivity boost:

  • Real-time cluster monitoring
  • Navigate pods, services, deployments with keyboard shortcuts
  • View logs, describe resources, port-forward with ease
  • Vim-like keybindings for efficiency

Installation:

brew install derailed/k9s/k9s

Development Tools


mise

mise (formerly rtx) is a polyglot runtime manager that handles multiple language versions seamlessly. It replaces tools like nvm, rbenv, pyenv, and asdf with a single, fast tool written in Rust.

Language support:

  • Node.js, Python, Ruby, Go, Java, and more
  • Per-project version configuration with .mise.toml
  • Faster than asdf (written in Rust)
  • Compatible with asdf plugins

Installation:

brew install mise

uv

uv is a blazingly fast Python package installer and resolver written in Rust. It's 10-100x faster than pip and provides a better dependency resolution experience.

Speed improvements:

  • Parallel downloads and installs
  • Global cache for packages
  • Better dependency conflict resolution
  • Drop-in replacement for pip commands

Installation:

brew install uv

neovim

Neovim is a modern, extensible fork of Vim with better defaults, Lua scripting support, and built-in LSP (Language Server Protocol) support. It's my primary editor for all development work.

Modern features:

  • Native LSP support for IDE-like features
  • Lua configuration (more powerful than VimScript)
  • Treesitter for better syntax highlighting
  • Extensive plugin ecosystem

Installation:

brew install neovim

Data & Visualization Tools


jq

jq is a lightweight command-line JSON processor. It's indispensable for working with APIs, parsing JSON logs, and transforming data.

Common uses:

  • Parse API responses: curl api.example.com | jq '.data'
  • Filter arrays: jq '.[] | select(.status == "active")'
  • Transform JSON structure
  • Pretty-print JSON

Installation:

brew install jq

graphviz

Graphviz generates graphs and diagrams from text descriptions using the DOT language. It's perfect for visualizing system architecture, data structures, and relationships.

Installation:

brew install graphviz

AWS Tools


awscli

AWS CLI is the official command-line interface for Amazon Web Services. It provides direct access to AWS services and is essential for automation and infrastructure management.

Key operations:

  • Manage EC2 instances, S3 buckets, Lambda functions
  • Automate deployments and infrastructure changes
  • Query and filter resources with JMESPath
  • Profile management for multiple AWS accounts

Installation:

brew install awscli

Desktop Applications


Claude Code

Claude Code is an AI-powered coding assistant that runs in your terminal. It helps with code generation, refactoring, debugging, and understanding complex codebases.

Capabilities:

  • Intelligent code generation and completion
  • Context-aware suggestions
  • Code explanation and documentation
  • Debugging assistance

Installation:

brew install --cask claude-code

Warp

Warp is a modern, Rust-based terminal that reimagines the terminal experience with AI features, collaborative tools, and a more intuitive interface.

Standout features:

  • AI command suggestions
  • Block-based output for easy copying
  • Command palette and searchable history
  • Collaborative terminal sharing
  • Built-in workflows and command templates

Installation:

brew install --cask warp

Maccy

Maccy is a lightweight, open-source clipboard manager for macOS. It keeps a history of everything you copy, making it easy to access previous clipboard contents.

Simple but powerful:

  • Keyboard-driven interface
  • Search clipboard history
  • Pin frequently used items
  • Privacy-focused (no cloud sync)

Installation:

brew install --cask maccy

Obsidian

Obsidian is a powerful knowledge base and note-taking application that works with local Markdown files. It's excellent for personal knowledge management and linking ideas together.

Why I love it:

  • Local-first (your data stays on your machine)
  • Graph view for visualizing connections
  • Extensive plugin ecosystem
  • Markdown-based for portability
  • Backlinking and bi-directional links

Installation:

brew install --cask obsidian

MacTeX

MacTeX is a complete TeX distribution for macOS, essential for creating professional documents, academic papers, and technical documentation with LaTeX.

Installation:

brew install --cask mactex

Managing This Setup

To replicate this setup on a new machine, I use Homebrew Bundle. You can download my Brewfile and install all tools at once:

# Install Homebrew (if not already installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Download the Brewfile and install all tools
curl -O https://raw.githubusercontent.com/ammarnajjar/ammarnajjar.github.io/main/blog/2026-02-23-essential-dev-tools/Brewfile
brew bundle install --file=Brewfile

# Or to create a Brewfile from your current setup
brew bundle dump --file=Brewfile

Conclusion

These tools form the foundation of my development environment. Each one solves a specific problem and integrates well with the others. The key is finding tools that match your workflow and actually using them consistently.

What tools are essential in your setup? I'm always interested in discovering new productivity boosters and improvements to existing workflows.

Go to Top