What is plainvm?

plainvm allows you to control and create multiple virtual machines which are distributed among many hosts through your browser. The only thing you need is plainvm installed and browser which supports HTML5. For the virtualization you can use any platform (currently only Virtualbox is supported). Everything is done real-time through the websocket protocol so multiple clients can access the environment simultaneously. If all dependencies of plainvm are installed the client can establish direct access to any virtual machine and control its' desktop. As the project is in it's first release there are some limitations which can be found in the next sections. plainvm is distributed under the terms of the GPL 3.0

Current features

plainvm is in it's second release so it's functionality is a bit limited. Here are some of the current features of plainvm:
  • Real-time managment
  • Creation of virtual machines (includes ISO upload for OS)
  • Managment of multiple VMs spread through many hosts
  • Editing some characteristics of the VMs
  • Statistics about the VMs
  • Control of different VMs
  • Simultaneous use by multiple clients
  • HTML5 based interface
  • Intuitive user interface
  • Duplex communication between the client and the server

How to contribute?

The project is hosted at GitHub. There are a lot of features which can be implemented. Here is a sample list:
  • TLS access to the Entry host
  • Managing snapshots
  • Control over more properties of the virtual machine
  • Performance optimiza tions


plainvm is design and developed by Minko Gechev. It's implementation is in Perl. For the real-time managment of the VM's desktops is used Guacamole. The user interface is implemented with jQuery and jQWidgets. Further information about the project can be found at GitHub or Minko Gechev's blog. The whole project is developed with open source software and is distributed under the terms of the General Public License 3.0. More implementation details can be found at the project's wiki page.