macOS
brew install dutilocal Homebrew formula metadata
sudo port install dutiMacPorts ports tree · sysutils/duti/Portfile · source: api.github.com
brew
Select default apps for documents and URL schemes on macOS. Version 1.5.4 via Homebrew; verified from local package data.
install
brew install dutilocal Homebrew formula metadata
sudo port install dutiMacPorts ports tree · sysutils/duti/Portfile · source: api.github.com
nix profile install nixpkgs#dutinixpkgs package indexes · pkgs/by-name/du/duti/package.nix · source: api.github.com
overview
Select default apps for documents and URL schemes on macOS
history
duti is a macOS command-line utility for setting default applications for document types, URL schemes, extensions, and MIME types. It is one of those small macOS plumbing tools that became package-manager-relevant because Apple exposes the concept through Launch Services and UTIs but not through a friendly shell command.
The README says duti was originally released into the public domain by Andrew Mortensen in 2008. The current GitHub repository was created in September 2012 and hosts the README, man page, and tagged releases.
The tool is built around Apple's Uniform Type Identifiers and related handler metadata. It can read settings from stdin, a settings file, an XML plist, or command-line arguments, making it easy to script default-app policy on macOS.
duti's adoption is mostly in macOS automation circles: users install it through package managers or build it from source, then use it in setup scripts to make browser, editor, document, and URL-scheme defaults reproducible. The README also labels the project unsupported, which makes its persistence in package managers part of its history.
The man page documents `duti -s` for setting handlers, `duti -x` for printing the default app for an extension, and file/plist input for bulk settings. A settings file contains bundle ID, UTI or URL scheme, and role fields such as viewer, editor, shell, all, or none.
duti matters because macOS developer machines are often rebuilt from scripts, and default application bindings are otherwise awkward to automate. It gives Homebrew/MacPorts/Nix users a small, scriptable bridge into Apple's UTI and handler database.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
duti | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/moretension/duti
install metadata
| Package key | brew:duti |
|---|---|
| Version | 1.5.4 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/duti |
| Homepage | https://github.com/moretension/duti/ |
| Repository | https://github.com/moretension/duti |
| Upstream docs | https://github.com/moretension/duti#readme |
| License | LicenseRef-Homebrew-public-domain |
| Source archive | https://github.com/moretension/duti/archive/refs/tags/duti-1.5.4.tar.gz |
| Build dependencies | autoconf |
| Bottle | available (on arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, monterey, sonoma, ventura) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | duti |
| Version Scheme | 0 |
| Revision | 1 |
| Head Version | HEAD |
| Requirements |
|
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
duti
nix profile install nixpkgs#dutiduti
sudo port install dutisource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.