Service (older) Quick Action (newer): A workflow that you can add to Finder windows, the Touch Bar, and the Services menu. For more information about using Quick Action workflows, see Use Quick Action workflows on Mac.
See also MacDev! MacOS! Development (jandp.biz/is/dev/sw/macdev/) for important notes around problems around Security.
Services, Workflows – Automator-based (macOS)
Common pattern
In many cases, start with writing a shell script / command line interface (CLI) tool/executable, then create some small wrapper code for GUI use in applications / Finder.
I.e.
- Implement core functionality in CLI tool, e.g. mime-tool-by-j.sh
- That can be used in terminal – gred for both development, using flags for verbose outputs, et c, as well as actual use when anyway down there in terminal windows.
- Save such in $HOME/bin/ (a subdirectory I’ve had a habit to alway have since maybe around early 1990s on every computer worked with)
- Wrapper: as appropriately.
Creating a Quick Action in Automator app, e.g. Save Web as mhtml J- Quick Action to make tool available via
- <App> menu under Services> submenu
- As applicable (depending on functionality, how tool has been implemented) possibly in
- Finder’s popup menu under Quick Actions, OR
- Finder’s popup menu under Services
which depend on generation of macOS….. NOT the best solution and Apple should fix this….!!!
- Most often writing most of code in AppleScript but it happens using other means like bash
- Tool that in turn call CLI utility, e.g. mime-tool-by-j.sh
- Quick Action to make tool available via
Gotchas / Issues
- General: Often start a new script/tool based on some existing, AND OLD code for copied tool may still be around, which can be confusing… NOTE: most scripts created are ONLY intended for my personal use.
- And in many cases lots of Work In Progress until a more stable set of pieces works well.
- Time that can be months, as lots of work is done when get focus for some period.
- CLI-tools
- Such may be using commands that are not standard macOS but downloaded in various ways over many years and lost track if standard or added by myself, and also where such may be stored
- via applications (code within apps that are ‘re-usable’ / can be used via CLI/scripts)
- brew … (and other download managers)
- python ecosystem – yeah…. that also happens, and opens up THAT area of quagmire.
- AppleScript: keystrokes (e.g. of areas of issues)
- Controlling applications via AppleScript can be really messy when get into some more advanced things like controlling dialogs.
- Must give apps rights via System Settings > security … (don’t remember exactly what to do where just now….)

- …
That’s it for now – more a starting point of potential issues.
####d
| col 0 | Product, What | Type | External(s) | Current ver info |
Col#5 |
|---|---|---|---|---|---|
| (1) | Activity Monitor – check for … suite | Application | 2026-01 | ||
| (2) | Audible Etc DRM JS | Service | bash-script | 2024 | |
| automator-cleaner-js (bash, 2025-10-17) | CLI script | bash-script | 2026-01 | ||
| AutoTrash! AutoTrash by J, TrashIt! WIP–NOT-FINISHED | Service, Quick Action | WIP | |||
| Camera Uploads! organizer (Dropbox folder) Service Automator Workflow Folder Actions | Folder Action | no | 2024-12; v4.2 | ||
| check-change-js.sh script | CLI script | – | |||
| chmod util, for unzipped zip archives etc | CLI script | – | |||
| cloudfilestatus-js.sh scripts | CLI script | 2026-06; v1.0 | |||
| convert_mp4_to_m4a.sh script | CLI script | 2025-04; v1.0 | |||
| Copy Path as Text J | Service, Quick Action | 2025-11; v1.0 | |||
| Count Apps & Windows CAW! (R&D) | Application | 2024-11; v2.2 | |||
| create disk image | Service | ||||
| daytime-js.py script | CLI script | ||||
| Dropbox-Mover-J.workflow (Folder Action) | Folder Action | 2026-04; v1.0 | |||
| Email Archive2FS, Email-related Automator-Services Emails! | set of tools | 2026-04; v4.3 | |||
| Email Low-level Msg Info (originally ‘Low-level Email Msg Info’) | workflow ### | ||||
| Email Stats J | Service, Quick Action | ||||
| eml to html script eml! html! | |||||
| emlx-to-eml-by-j emlx! eml! Quick Action | |||||
| File System Tests, J | |||||
| Finance Tagger by J | |||||
| find-apps-js.sh script | |||||
| Finder Windows Utility | |||||
| Folder Actions! info, scripts | |||||
| Folder Organizer J Folder Organizer! MISC … | Folder Action | ||||
| Get Info – Quick Action (2021-10) Get Info! | |||||
| Get Info by J, Info by J | |||||
| Go Finder n! Desktop. Downloads, Documents, Dropbox … Open Finder … | |||||
| GPS Utility by J! gpsutil-js.sh! | |||||
| GPX! gpxparser! alias | |||||
| Hash It by J | |||||
| hellow-j.sh bash script | |||||
| iCloud-Drive-Mover-J.workflow (Folder Action) | Folder Action | ||||
| Image manipulations | |||||
| JImage scripts services -rotate images, shrinking | |||||
| macosperf.sh! | |||||
| Make Alias! scripts | |||||
| Make Image from Folder J – macOS Service (make-dmg-j.sh WIP) | |||||
| mdfind-js.sh script | |||||
| mediafilenamefix-js.sh and MediaFilenameFix-JS SH! | |||||
| MediaInfo! Media Info! MediaStats! by MLabs | |||||
| MediaProcJ | |||||
| MediaTranscode J (Service) mediatranscode-js.sh (CL) | |||||
| mime-tool-by-j mime! | |||||
| mlabschecker.sh script | |||||
| mlabstexts.sh script | |||||
| Move Items to Downloads | Folder Action | ||||
| MS-Ergo4000-… | |||||
| Music-related; Find Missing J (Apple app); music-util-by-j.sh bash | |||||
| Navionics-exports-processing! | Folder Action | bash-script | |||
| New Disk Image with Selection – OLD | |||||
| New Folder – Service | |||||
| New Note in TextEdit J (Quick Action, Services) | |||||
| New Text File – Service | |||||
| Open Hazel.app – tell application “Hazel” to activate | |||||
| Open in Terminal | |||||
| Open URL in … | |||||
| Paths-related things (file systems, …) | |||||
| Pushover! Pushover- Simple Notifications for Android, iOS, and Desktop alias | |||||
| RWTS-PDFwriter File Mover Folder Action | Folder Action | ||||
| Save PowerPoint as PDF | |||||
| Save Web Page as mhtml J | Quite powerful, but also complex and a bit sensitive, thingy… | ||||
| Screenshot! Screenshots! Screen shot – filename-Cleanup – services | Folder Action | (bash script, from 2018, but inside FA) | 2026-04, v26 | v26 gen 2026-04-09 (w Quick Action AND bash-script inside). Apr 15 2018 ./Screenshot-Filename-Cleaning-FolderAction.workflow/screenshotscleanfilename.sh |
|
| Set Icon by J SetIcon! | |||||
| Special Key Handler … (MS Ergo 4000 kbd) | |||||
| Spotlight Search shortcut | |||||
| Tag Finder Items | Folder Action | 2026-05; UT | (UT: Under Test) | ||
| Time Difference J | |||||
| Toggle Play user interface sound effects | |||||
| videodownloader-js! ( yt-dlp-js! CLI yt-dlp! ) | |||||
| WindowArrange-Archive J | Service, Quick Action | v1.3 2026-01-09 number of smaller tweaks | |||
| WindowReopen by J (WRbJ!) WR! | Application | with a companion Service | v1.3.1 2025-10-08 | ||
| WindowReopen by J (WRbJ!) WR! | Service, Quick Action | with a companion Application | v2.2 2026-03-30 Brave Browser, some cleanups, performance improvements | ||
| xdone.sh! script | |||||
| yt-dlp-js .. see videodownloader-js! ( yt-dlp-js! CLI yt-dlp! ) alias | |||||
| Zoom+, Zoom-, Forward and Backward keystrokes handlers alias |
EoP
