duti is a command-line utility capable of setting default applications for
various document types on macOS, using Apple's
(UTI). A UTI is a unique string describing the format of a file's content. For
instance, a Microsoft Word document has a UTI of
duti, the user can change which application acts as the default handler for a
./configure make sudo make install
duti can read settings from four different sources:
a settings file
an XML property list (plist)
A settings line, as read in cases 1 and 2, consists of an application's bundle
ID, a UTI, and a string describing what role the application handles for the
given UTI. The process is similar when
duti processes a plist. If the path
duti on the command-line is a directory,
duti will apply settings
from all valid settings files in that directory, excluding files whose names
. (single dot).
duti can also print out the default application information for a given
-x). This feature is based on public domain source code posted
by Keith Alperin on the heliumfoot.com blog.
See the man page for additional usage details.
Set Safari as the default handler for HTML documents:
duti -s com.apple.Safari public.html all
Set TextEdit as the default handler for Word documents:
echo 'com.apple.TextEdit com.microsoft.word.doc all' | duti
Set Finder as the default handler for ftp:// URLs:
duti -s com.apple.Finder ftp
Get default application information for .jpg files:
duti -x jpg # Output Preview /Applications/Preview.app com.apple.Preview
duti is unsupported. You can submit bug reports and feature requests at
the duti GitHub project page.
duti was originally released into the public domain by Andrew Mortensen
in 2008. It's provided as is without warranties of any kind. You can do
anything you want with it. If you incorporate some or all of the code into
another project, I'd appreciate credit for the work I've done, but that's all.
Andrew Mortensen April 2018