Der komplette Code ist hier zu sehen: http://paste.pocoo.org/show/88985/
UNSAFE kann hier heruntergeladen werden: http://www.zshare.net/download/503490849a6ed2f2/
PS: Ja, ich bin stolz auf das rekursive Akronym

Edit: 2 Sachen noch:
1. die Bash gibt eine Fehlermeldung zurück, wenn ein String mit mindestens einem Ausrufezeichen ent- oder verschlüsselt werden soll. (Wie kann ich das verhindern?)
2. unter TODO im Docstring von der Klasse Code kann man sehen, was ich noch vorhab: optionale Pipe-Unterstützung anbieten, damit der Input auch anders angegeben werden kann. Mach ich das am besten mit subprocess? Wie ich das gesehen hab, kann man damit nur neue prozesse mit einer Pipe erstellen, aber nicht die Pipe aus dem Programm lesen.