This is a plugin for pidgin for Linux written in C. [Download source] [Download binary (64bit)]
The old version of the plugin for gaim (1.5 or 2.0) [Download source]
What this plugin does
If you have a program that you interact with using STDIN/STDOUT, you can run it with this plugin and have a buddy interact with your program using am IM window. You can specify the interaction to occur with only specific buddies, for all messages or for commands only (specified with a message of the form !CMD[command]), or restrict the interaction to occur only when you are marked as away.
Your external program will receive to STDIN a message from from the plugin: text or command from IM window and optionally, the username of the buddy who sent this message. Whatever your program sends to STDOUT gets sent to your buddy as a reply. Please note: Your program should always reply something and it should flush the buffers for STDOUT. If you do not want to send any message as reply, the output should be the string "<empty>" without quotations and followed by a new line character.
Installing the plugin
Create a new directory in your home folder. Download the source from the link above to that directory. Then run:
- tar -zxvf voshtomoc-*.tar.gz
- cd voshtomoc-*
- make install
This will compile voshtomoc.so and copy it to ~/.purple/plugins
You can then configure the plugin in Pidgin, Tools->Plugins
Configuring the plugin
In pidgin, you can simply use the provided configuration dialog. The file ~/.purple/voshtomoc.conf can also be edited. The format is the same as for the gaim version.
The old version of this plugin (only for gaim) has no interface. You can use the configuration file ~/.gaim/voshtomoc.conf to set things up.
Format of the configuration file:
send_text_from_CMD_only send_username run_only_when_idle
If a buddy name is *, all buddy names match. If a program name starts with #, the program is marked as inactive.
A sample configuration file is found here.
To reload the configuration file while the plugin is active, use the command vreload in an IM window.
What I use it for
I wrote a little perl script (sh_std) that takes shell commands at STDIN and returns the output to STDOUT. If no output is produced, "<No output>" is returned. This allows me to control my computer through an IM window. Please note this is NOT secure.
Another use I found is that I can run A.L.I.C.E using libaiml and have it chat with my buddies while I am away.