macOSDefaultApps

View and set default application associations on macOS — file extensions, UTIs and URL schemes. The modern replacement for RCDefaultApp, SwiftDefaultApps and duti.

Download GitHub

macOSDefaultApps: types grouped by family, one handler dropdown per row

Install with Homebrew

brew tap klabast/tap
brew trust klabast/tap                  # newer homebrew asks for this once
brew install mda                        # cli
brew install --cask macosdefaultapps    # app
Not notarized yet. On first launch macOS says "macOSDefaultApps.app" was blocked to protect your Mac — Gatekeeper checking for an Apple developer signature this project doesn't have yet (the code is open source, the app is built by CI). To run it anyway: System Settings → Privacy & Security → Open Anyway, or install with brew install --cask --no-quarantine macosdefaultapps. The Homebrew-built CLI is unaffected.

Why

CLI

mda get md                          # default handler for .md
mda ls md                           # all candidates, default marked *
mda set com.sublimetext.4 md        # set a handler
mda dump --json                     # every curated type + current handler
mda apply ~/.duti                   # apply a settings file

Dotfiles

Your associations are a plain text file. Snapshot them, put ~/.mda in your dotfiles, restore on the next machine — apps that aren't installed yet are skipped and reported, run it again after installing them.

mda save                    # snapshot current handlers to ~/.mda/default
git init ~/.mda             # make saves diffable (mda warns if you don't)
mda apply                   # restore — on this or any other machine

Requires macOS 15+. Changing the default browser always shows a macOS consent dialog — that's the system, not the app.