swiftDialog 3.0.0 Release Notes
What’s New
Section titled “What’s New”🚨 Breaking Change 🚨
Section titled “🚨 Breaking Change 🚨”swiftDialog 3.0 requires macOS 15 or newer
If you need to support macOS 14 or earlier, use v2.5.6
New Documentation
Section titled “New Documentation”All documentation is now hosted at https://swiftdialog.app
Support for macOS 26 visual style
Section titled “Support for macOS 26 visual style”This release will have macOS 26 appearance when run on macOS 26 and macOS 15 appearance on macOS 15
There is a new “squircle” icon to match the macOS 26 branding style and avoid landing in squircle gaol.
The old “Important message” boilerplate text for title and message have been removed. Leaving title or message blank will produce blank message and title. Default icon uses the built in AppIcon resource instead of an SF symbol
New --inspect-mode
Section titled “New --inspect-mode”Inspect Mode is a new built-in feature that enables real-time monitoring within the macOS filesystem. It tracks filesystem status (utilizing Apple’s FSEvents API) while monitoring application installations and inspecting cache folders, files, and plist content to visualize compliance checks. This feature is specifically designed for use during device enrollment, software deployment, and compliance auditing

Documentation here
Huge thanks to @headmin for his hard work on these features
Changes to /usr/local/bin/dialog
Section titled “Changes to /usr/local/bin/dialog”/usr/local/bin/dialog is now a link to a compiled dialogcli binary written in swift. Previously this was a shell script that handled command line processing and launching of the Dialog.app app bundle.
The embedded dialogcli command line utility intelligently determines the location of the Dialog.app app bundle when running making the Dialog app relocatable. Call by running /path/to/Dialog.app/Contents/MacOS/dialogcli
For this initial release this generally performs the same function as the shell script but will be expanded over time. Support for running the Dialog.app/Contents/MacOS/Dialog binary directly will be removed in a future release
⚠️ Important Note: In this release, when running Dialog.app/Contents/MacOS/Dialog directly, the number and order of arguments matters. For the sake of brevity, specify flags (arguments with no parameter like --ontop) at the end of your command.
Builder Modes
Section titled “Builder Modes”--builder mode is for assistance when constructing regular dialogs and has been updated with some fixes for broken functionality and updates for some of the new layouts. Documentation here
Run --inspect-mode with no arguments to bring up sample configuration utility
Other additions
Section titled “Other additions”- Add support for specifying an exact location on the screen using —position x,y #452
- Add support for actions in listitems. Actions are limited to URLOpen. #472
- Add file path option to textfield fileselect to set the initial file path. Defaults to users home directory if not used. #451
- Add iconalpha as an option to listitems #508
- Add optional
--loghistoryfor use with--displaylog#539 - Added a custom indeterminate linear progress bar (this was required as macOS 26 linear progress bar does not animate correctly)
--imageand--iconcan now accept multiple values as a single comma separated list, e.g. `—image “/path/image1.png”,“/path/image2.png”,“/path/image3.png” #536- Added
searchableoption to drop down lists- example:
dialog --selecttitle "Search Me",searchable --selectvalues "Apple,Banana,Cherry,Date,Elderberry,Fig,Grape,Honeydew,Kiwi,Lemon,Mango,Nectarine,Orange,Papaya,Quince,Raspberry,Strawberry,Tangerine,Ugli Fruit,Watermelon" - Added
--soundto play a sound on launch. Accepts file or url- example
dialog --sound /System/Library/Sounds/Glass.aiff - if you pass in a very long audio file, add the
--showsoundcontrolsoption.
- example
- Added animated gif support (finally)
- Allow listitem’s to be selectable (one or many) #465
- new argument
--enablelistselectenables selection of listitems on click. selection status is sent to stdout as"<title>" : "<status"
- new argument
- Buttons can now have symbols and adjustable text size
- new arguments
--button1symbol--button2symbol--infobuttonsymbol. Takes one sf symbol name as a value. Optional properties: position, size, style, color. see--help button1symbolfor more info.- example:
--button1symbol sunrise.fill,multicolour,leading
- example:
- new argument
--buttontextsizeaccepts a number value to set the desired text size - button text values can now be specified as
nilto disable button text
- new arguments
- Enable button1 usage with stacked style and timer #520
- swiftDialog icon can be displayed in the Dock using
--showdockicon- Dock icon can be set to a custom image using
--dockicon <img> - Dock icon can have a badge using
--dockbadge <text> - Icon visibility and badge can be updated via command file
- Dock icon can be made to bounce - regular mode one bounce, critical mode, multiple bounces
- Dock icon can be set to a custom image using
- SF Symbol transitions are now animated between compatible symbol types
- Added option
--hideotherapps- will cause all other apps to be hidden when swiftDialog launches - Added support for inline text colour using
:colour[text]format. e.g."Text can be :blue[blue] or :red[red]"- Supported in any markdown text area and also in
--titleand--bannertitle
- Supported in any markdown text area and also in
- Added support for left/right text alignment for Title and progress text
--titlefont alignment=left--progresstextalignment left
Too many to list all in the release notes. This release has over 300 changes and updates.