Am i saying bull sheets?
Instant messaging Virtual Terminal
Instant messaging Virtual Terminal


This plugin opens a Virtual Terminal in your host and allows buddies to execute commands on it. This can be useful (and very risky!) in several situations:

  • when you’re behind a NAT or firewall that allow traffic on port 80
  • when you cannot carry your PC with you but you can access i.e. to your Facebook/Gmail chat (AAAAARRRRGH!)
  • when all other remote methods are precluded (SSH server crashed… think about it, it could happen! :D )

There are huge security problems in doing this so you should absolutely limit as much as possible the privileges of the user running the terminal. Of course it’s not such a great idea give your root password to Gmail (unless you disable chat recording Gmail logs all your chats!) so don’t execute programs like su or SSH (although in theory you can do).

You should not even let all your buddies to control the terminal. What I’ve done to test this plugin is create a new account and add only personal accounts as contacts.

I’m not a code guru and I’ve wrote only a rudimentary very buggy terminal but in most cases it works decently.

I apologize to the authors of rxvt from which I watched and copied part of the code. I really hope someone more experienced than me can help me improve the code.

For now take it carefully and in no way consider this plugin safe or stable.


Compiled on libpurple 2.10.0 (this means you have to use this version or newer!).

ARCH File Last Update Version
Linux i386 imvt-0.0.2.i386.tar.gz 19/10/2011 0.0.2
Linux amd64 imvt-0.0.2.amd64.tar.gz 19/10/2011 0.0.2
Source imvt-0.0.2.src.tar.gz 19/10/2011 0.0.2


Date Version Note
19/10/2011 0.0.2 Corrected #Ret, Arrow keys and simplified timeout
19/01/2011 0.0.1 First


For bugs reports, hints, … email me at federico.zanco ( at )

How to install:

These are general instructions to build and install my purple plugins.
To build the plugin you have to install gcc, GNU make, pkg-config and pidgin developing dependencies (or maybe only libpurple if in your os they are distribuited separately). I.e. in Debian/Ubuntu, open a terminal and type:

sudo apt-get install gcc make pkg-config pidgin-dev

then to build type:


to install (default directory is ~/.purple/plugins) type:

make install

You can also create a compressed tar by typing:

make tar

How to use:

Compile and Install (read INSTALL) or Download (from this page) the plugin for your arch.

Linux: if you don’t have GNU make program installed on your system, to install the plugin manually copy in your purple dir:

(if ~/.purple/plugins/ does not exist: $ mkdir ~/.purple/plugins/ )
$ cp ~/.purple/plugins/

Restart Pidgin and in Tools/Plugins you should see Instant messaging Virtual Terminal.

Once enabled you should adjust settings. Buffer dimensions it’a a try/catch task. I’ve noticed that Gmail start to loose messages if you send a lot of messages in a short period of interval. To start the terminal just open a chat with your host client and send the command:


it’s case sensitive so write it exactly as above. In a while you should see the prompt. #Help to get a quick help that display some useful private commands. In general all private ImVT commands starts with a #. An interesting command is ‘##‘ (direct input) that allows you to enter text without confirm it with return.


This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
Street, Fifth Floor, Boston, MA 02111-1301, USA.

5 thoughts on “Instant messaging Virtual Terminal

  • March 17, 2011 at 7:54 am

    A simple addition to security that would improve the situation immensely would be to make your init command into #Imvt And then have it only listen to buddies who have provided the proper password. Still not secure since most protocols aren’t encrypted, but better than nothing.

    • March 17, 2011 at 7:55 am

      Apparently it swallows anything inside of gt/lt. Above should read: #Imvt [password]

      • May 30, 2011 at 8:04 pm

        Yes, I should add a security mechanism. I’ll try to implement a kind of Access Control List to choose which buddies to enable

  • August 7, 2011 at 4:53 am

    i have download your sourcecode and installed it

    also enabled it in pidgin

    but it seems not work when i send #Imvt from a client

    my envir:

    OS: ubuntu 10.04
    pidgin: 2.6.6

  • August 7, 2011 at 1:19 pm

    Probably a libpurple ABI mismatch. The plugin has been compiled with libpurple 2.7.1 so you should use Pidgin 2.7.x or newer. However, open debug window (Menu Help/Debug Window) and open Tools/Plugins. Look for any error message regarding ImVT. If you there’s no errors, try to start ImVT with debug window opened and send me a log with any ImVT messages


Leave a Reply to Perkins Cancel reply

Your email address will not be published. Required fields are marked *