Every install command in the rest of this site assumes a package manager. Downloading installers from websites makes updates and removals awkward, and leaves you with no record of what you installed.

macOS — Homebrew

One line to install:

  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  
GoalCommand
Install a CLI toolbrew install ripgrep
Install a GUI appbrew install --cask visual-studio-code
Searchbrew search fzf
Show detailsbrew info jq
Update everythingbrew update && brew upgrade
Removebrew uninstall ripgrep
List installsbrew leaves (only what you asked for)

Windows — winget

Bundled since Windows 10. If it’s missing, install “App Installer” from the Microsoft Store.

  winget search ripgrep
winget install BurntSushi.ripgrep.MSVC
winget upgrade --all
winget uninstall BurntSushi.ripgrep.MSVC
  

For a repository with more developer tooling, add Scoop alongside it.

  irm get.scoop.sh | iex
scoop install ripgrep fd bat
  

Linux — apt / dnf

  sudo apt update && sudo apt install ripgrep fd-find bat
sudo dnf install ripgrep fd-find bat
  

Distribution repositories sometimes lag well behind. When you need current versions, grab the .deb/.rpm from each tool’s GitHub releases, or use Homebrew, which works on Linux as well as macOS.

Keep the list in a file

To rebuild a machine in one shot, record what you have.

  # save
brew leaves > ~/dotfiles/brew-list.txt
brew list --cask > ~/dotfiles/brew-cask-list.txt

# restore
xargs brew install < ~/dotfiles/brew-list.txt
  

Homebrew also has a dedicated format, the Brewfile.

  brew bundle dump --file=~/dotfiles/Brewfile --force
brew bundle install --file=~/dotfiles/Brewfile
  

Next

With the install list in a file, it’s time to manage the configuration itself → Dotfiles

Last updated 19 Aug 2026, 00:00 UTC. history