View and set default application associations on macOS — file extensions, UTIs and URL schemes. The modern replacement for RCDefaultApp, SwiftDefaultApps and duti.
brew tap klabast/tap
brew trust klabast/tap # newer homebrew asks for this once
brew install mda # cli
brew install --cask macosdefaultapps # app
brew install --cask --no-quarantine macosdefaultapps. The Homebrew-built CLI is unaffected.
NSWorkspace and UniformTypeIdentifiers only.mda apply reads your existing duti settings files unchanged.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
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.