You know since you are are a mentor, you could create a simple API command that atakes the marco name as a parameter. When that API is called, it basically just uses sendChat() to call the macro. Something like the following on("chat:message", function(msg) { var msgTxt = msg.content; var cmd = msgTxt.split(/\s+/); var lcmd = cmd[0]; log(cmd); if(lcmd=="!apimacro"){ var mycmd = msg.content.replace("!apimacro ",''); sendChat(msg.who,mycmd); //sendChat(msg.who,"#test"); } }); Then in the chat window you could the following. [Attack](!apimacro #attack_1)