I want to build a graphical interface for some terminal programs like imagemagick and exiftool on my Mac. These are awesome command line utilities but I really miss having a simple drag and drop interface for everyday use.
I’ve been searching around but haven’t found good resources or guides that show how to wrap CLI tools with a proper Mac app interface. Does anyone know of tutorials or documentation that could point me in the right direction?
Just to be clear - I’m not looking for existing GUI apps, I actually want to learn how to create my own wrapper application.
I’ve built several CLI wrappers for macOS - Swift with AppKit is definitely the easiest route. Use NSTask (now called Process) to run your command line tools and grab their output. Want drag and drop? Just implement NSDraggingDestination protocol on your main view. Users can drag files right onto your app, and those get passed as arguments to your CLI tools. Xcode makes building native Mac apps pretty painless, and NSFileManager handles all your file operations. Process takes care of subprocess management, so no messy shell scripting needed. Build a simple single-file processor first, then add batch processing once that’s working.
platypus is a good choice for this. it’s free and wraps cli tools into nice mac apps w/o coding. just point it to your script, set up the ui elements (drag/drop, file pickers, etc.), and it generates a .app bundle. i wrapped some ffmpeg tools last year - it worked really well.
what about electron or tauri? they’re not native but make gui dev super easy. which cli tools are you planning to wrap first? imagemagick’s huge - maybe start with something like exiftool to figure out the process communication stuff?