I just the other day started working on an idea for a ruby based shell: https://github.com/seiferteric/rbshell . The idea is to try to write a ruby DSL that looks as similar as possible to regular CLI commands, but return ruby objects so you can more easily process the results. I would be interested in some help if others are interested. I haven't yet decided on the exact syntax yet but it is already looking kind of interesting I think.