Skip to content
a ruby eventmachine bot inspired by richard jones' irccat. also logs channels. history and webhooks via sinatra.
Find file
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=


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

minictl 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 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 a script called miniminimini with the command as an arg. there's a default script bundled as an executable in the gem. if you want to use your own, just make sure you place it before the bundled one in your $PATH. here's an example:

puts "called miniminimini with #{ ARGV.inspect }"

don't forget to chmod +x and replace the bang as appropriate.

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 from something sitting behind :80. Set the ENV variables before starting mini.



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

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

just write that straight into ~/miniconfig.rb.


the following environment variables can be used to configure mini.

  • MINI_SECRET: a secret key for the web server, ie /git_commit/kvds78ovdsjhvksd7ckjlds7cvds879bskdl
  • MINI_CAT_PORT: port for clients using netcat.
  • MINI_WEB_PORT: port on which the web server is started.
Something went wrong with that request. Please try again.