Displaying a progress bar as a macro works through a collection of lines

A first experiment in displaying a Yosemite Javascript progress bar while a macro works through a collection of lines.

(The lines might be anything – text to read aloud, filepaths to copy, etc etc)

Show progress of macro.zip (58.6 KB)

( Installation requires the compressed .zip rather than the uncompressed folder – read Installation below )

Custom Keyboard Maestro Plug-in


  • Show progress of macro


  • 0.1


  • Feeds lines from one variable or clipboard to another in batches, and
  • for each batch of lines:
    • Calls a macro which reads and acts on that batch, and
    • updates a progress bar.


  • Yosemite
    • The core applet, Progress.app, called by lineProgress.sh, is written in Javascript for Applications (Yosemite JXA), and the osascript Progress object is a Yosemite innovation.
    • We have to save the script as an applet (rather than '.scpt' or '.applescript') for Yosemite to display the progress in its own panel. Otherwise the default is to show progress at the foot of the Script Editor window.


  • Feed lines from
    • Variable or clipboard containing a number of lines
  • to a variable named
    • Name of the variable read by the macro below
  • for use by macro
    • Name of the macro whose progress will be reported
  • Number of progress updates
    • Number of batches that the lines in Feed lines from will be divided into.
    • After each batch of lines has been processed by the macro named in for use by macro, the progress bar and its text will be updated.


  • Drag the .zip file onto the Keyboard Maestro icon in the OS X toolbar.
  • (if updating a previous version of the action, first manually remove the previous copy from the custom actions folder)
    • ~/Library/Application Support/Keyboard Maestro/Keyboard Maestro Actions