View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Mark Fowler > Mac-KeyboardMaestro-1.00 > Mac::KeyboardMaestro



Annotate this POD

View/Report Bugs
Module Version: 1.00   Source   Latest Release: Mac-KeyboardMaestro-1.01


Mac::KeyboardMaestro - Run Keyboard Maestro macros


   use Mac::KeyboardMaestro qw(km_macro km_set km_get);

   # set a Keybaord Maestro variable
   km_set "VarName", $value;

   # run a Keyboard Maestro macro
   km_macro "Reticulate Splines";

   # get a Keboard Maestro variable
   my $result = km_get "OtherVar";


This module is a simple interface to the OS X keyboard macro program Keyboard Maestro.

The standard way recommended by the Keyboard Maestro application to talk to it via Perl is to shell out to osascript and pass that an AppleScript program that calls Keyboard Maestro. This module avoids this and talks the same AppleScript directly in process (which is quicker) and handles all the character escaping necessary to avoid executing parts of your macro/varible names and values as AppleScript by mistake.


These functions can be imported, or you can use them fully qualified.

km_macro $macro_name
km_macro $macro_uuid

Execute the named macro / macro with the passed uuid. Returns nothing. Throws and exception if there's a problem.

km_set $varname, $value

Sets the value of the corrisponding Keyboard Macro variable. $value will be automatically stringified.

km_get $varname

Gets the current value of the corrisponding Keyboard Macro variable. Returns undef if no such variable exists.

km_delete $varname

Deletes the corrisponding Keyboard Macro variable


Written by Mark Fowler <>


Copyright Mark Fowler 2012. All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Keyboard Maestro itself is copyright Stairways Software Pty Ltd. Neither Mark Fowler nor this Perl library is not associated with Keyboard Maestro or Stairways Software Pty Ltd.


Bugs should be reported via this distribution's CPAN RT queue. This can be found at

You can also address issues by forking this distribution on github and sending pull requests. It can be found at



syntax highlighting: