A collection of zsh scripts that demonstrate every major feature of swiftDialog through an interactive, self-guided tour.
- macOS 15 or newer
- swiftDialog 3 or newer
# clone this repo
git clone https://github.com/swiftDialog/demo.git swiftDialog-demo
# or download the zip
curl -sL "https://github.com/swiftDialog/demo/archive/refs/heads/main.zip" -o swiftDialog-demo.zip && unzip swiftDialog-demo.zip -d swiftDialog-demo
cd swiftDialog-demo
./run_demos.zshThe main controller uses swiftDialog itself — pick demos with checkboxes, then step through each one.
New to swiftDialog? Start with the official swiftDialog Builder page for orientation and visual prototyping, then use one of the repo-contained skill packs to turn that understanding into repo-style shell scripts. Builder is useful, but it is not comprehensive and it does not replace final sizing, cleanup, and workflow decisions.
codex-swiftdialog-builder — For GitHub Copilot / OpenAI Codex
SKILL.md— Codex workflow and tier selectionreferences/— Demo mapping and authoring guidanceassets/templates/— Starter shell scripts- Includes a Jamf/root-run
/var/tmpplus ownership-handoff pattern for command-file workflows launched asroot
claude-swiftdialog-builder — For Claude Sonnet
CLAUDE.md— Claude workflow and tier selectionreferences/— Demo mapping and authoring guidancetemplates/— Starter shell scripts- Includes a Jamf/root-run
/var/tmpplus ownership-handoff pattern for command-file workflows launched asroot
Both skills follow the same repo conventions and produce identical script output — choose the one that matches your AI platform. See skills/README.md for detailed usage instructions.
These are skill packs for AI assistants, not runnable demos in the suite.
After exploring the demo suite and understanding swiftDialog's capabilities, use the playground/ directory to create your own custom scripts with AI assistance. The playground includes a comprehensive step-by-step guide that shows you how to:
- Work with AI assistants (Claude, Copilot) using the bundled skills
- Choose the right tier for your workflow (basic dialogs → forms → progress updates → inspect mode)
- Follow detailed real-world scenarios with exact prompts and expected AI interactions
- Build production-ready scripts for Mac Admin tasks (onboarding, compliance, deployment, monitoring)
Start here: playground/README.md — Your workspace for AI-assisted swiftDialog script development.
| # | Script | Features Demonstrated |
|---|---|---|
| 01 | basic_styles.zsh |
--style (alert, caution, warning, centered), style overrides |
| 02 | title_message.zsh |
--title, --titlefont, --message, --messagefont, --messagealignment, --messageposition, --bannertitle, title "none" |
| 03 | icons.zsh |
--icon (SF Symbols, apps, builtins, QR, palette, auto colour, weight), --iconsize, --iconalpha, --centreicon, --overlayicon, --hideicon |
| 04 | buttons.zsh |
--button1text, --button1symbol, --button1disabled, --button2text, --button2symbol, --infobuttontext, --infobuttonsymbol, --infobuttonaction, --buttonstyle (center, stack), --buttonsize, --buttontextsize, --hidedefaultkeyboardaction |
| 05 | images_banners.zsh |
--image, --imagecaption, --bannerimage, --bannertitle, --bannertext, --background, --bgalpha, --bgposition, --bgfill |
| 06 | progress_timer.zsh |
--progress (absolute, increment, reset, complete), --progresstext, --progresstextalignment, --timer, --hidetimerbar, command file progress updates |
| 07 | text_fields.zsh |
--textfield (required, secure, prompt, value, regex, regexerror, confirm, fileselect, filetype, path, name), --textfieldlivevalidation |
| 08 | dropdowns.zsh |
--selecttitle, --selectvalues, --selectdefault, modifiers (required, radio, searchable, multiselect, name), dividers |
| 09 | checkboxes.zsh |
--checkbox (name modifier), --checkboxstyle (checkbox, switch, sizes) |
| 10 | list_items.zsh |
--listitem (status, statustext, custom SF symbols), --liststyle, --enablelistselect, command file (list:, listitem:, add, delete, index) |
| 11 | window_options.zsh |
--width, --height, --big, --small, --position, --positionoffset, --moveable, --ontop, --resizable, --windowbuttons, --appearance, --showdockicon, --dockiconbadge |
| 12 | command_file.zsh |
Full command file tour: title:, titlefont:, message: (+append), alignment:, icon:, overlayicon:, iconalpha:, button1text:, button1:, infotext:, infobox:, icon: centre/left |
| 13 | notifications.zsh |
--notification, --subtitle, --identifier, --remove |
| 14 | mini_presentation.zsh |
--mini (with progress), --presentation (with listitem, infobox, progress) |
| 15 | web_video.zsh |
--webcontent, --video (youtube= shortcut), --videocaption, --autoplay |
| 16 | json_input.zsh |
--jsonstring, --jsonfile, JSON arrays for checkboxes, selectitems, textfields, images |
| 17 | fullscreen_blur.zsh |
--fullscreen, --blurscreen, --hideotherapps |
| 18 | misc_features.zsh |
--helpmessage, --infotext, --infobox, --vieworder, --quitkey, --sound, --showsoundcontrols, --displaylog, --loghistory, --debug, --eula, --alwaysreturninput, auth key/checksum explanation |
| 19 | inspect_mode.zsh |
--inspect-mode, --inspect-config, DIALOG_INSPECT_CONFIG, inspect JSON (preset, logMonitor, sideMessage, items, autoEnableButton) |
Each demo script is self-contained:
./demos/06_progress_timer.zsh
./demos/12_command_file.zsh- Demos that use
--blurscreenor--fullscreenwill briefly take over the display - Notification demos require notification permissions for swiftDialog
- Some image demos use system desktop pictures which may vary by macOS version
- Demo 19 covers
--inspect-modeand config-driven usage with a deterministic local simulation. - See the Inspect Mode documentation for additional presets and options.