A framework for Python bots with replaceble front ends