RUBY-667 user commands

DO NOT MERGE

I'm opening this pull request to get feedback and so the code can run on Travis.

Let me know if you have any comments