1. A method comprising: receiving a first user input from a first device of a plurality of devices, each of the plurality of devices configured with a processor and a memory for execution of program code; receiving a second user input from a second device of the plurality of devices; identifying, using a processor, that at least a first rule for a macro is satisfied by the first user input, the macro defining at least one input operation to be performed by at least one of the plurality of devices; identifying that at least a second rule for the macro is satisfied by the second user input; determining that all rules for the macro have been satisfied; and sending instructions corresponding to the input operation defined by the macro to the at least one of the plurality of devices in response to determining that all rules for the macro have been met.