a ruby eventmachine bot inspired by richard jones' irccat. also logs channels. history and webhooks via sinatra.
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


a ruby eventmachine bot inspired by richard jones' irccat. interact via netcat, irc or web.


sudo gem install purzelrakete-mini --source=http://gems.github.com

create a directory for mini and run the following

minigen create <your-mini-dir>

this creates two files in your mini dir. edit both as you see fit, then add your mini dir to your $PATH inside of your shell's rc file.


launch: (leave the # off the channel names. you can add many channel names, main one is first)

minictl irc.freenode.net 6667 my_bot_name my_bot_nickserv_passwd my_bot_control_channel next_channel

íf you want to background this, just do something like

nohup minictl irc.freenode.net 6667 mimi secret mini-lounge &

via netcat

now send some data down the pipes!

echo "Ilovethistuffs yes .. i .. do. " | nc localhost 12345
vmstat | nc localhost 12345
echo "#musicteam,#legal,@alice New album uploaded: ..." | nc somemachine 12345
tail -f /var/log/important.log | nc somemachine 12345

to send IRC commands from the bot, prepend '/':

echo "/JOIN #some_channel"

via irc

run stuff by typing ?command in the main mini channel or by dmsging mini bot. this will invoke minicmd (in your mini dir) with the command as an arg. if you want the script to run a different language (ie php), just change the bang and replace with your own stuff.

you have to be on the control channel for the script to execute. this is the first channel in your list.

via web

post to hostname:MINI_WEB_PORT/command/MINI_SECRET. ie:

curl -d "netcat, lolcats, pigs, sweaty snout, nixon" http://localhost:2345/echo/dscds789svjskdlvsdz789mkvcjvklsd6

of course normally, you'd proxy to startup.com:2345 from something sitting behind :80. Set up ports in minictl in your mini dir.

you can find MINI_SECRET and MINI_WEB_PORT inside of the minictl file in your mini directory.



you can create commands simply by providing your own minicmd script. ARGV.first is the command, the rest is arguments. mini comes bundled with a ruby based minicmd script which you can extend by adding procs to it:

  Mini::Bot.commands["echo"] = lambda { |*args| puts args }

you can also require any mini plugins in there.

web callbacks

there is a secret key (see above) wich you can configure inside of minicmd (inside of your mini dir).