Simple - Commands are plain-old ruby classes, with options and arguments declared as attributes. All features are Ruby modules that can be included into command classes. Correct - CommandKit behaves like a standard UNIX command. Safely handles Ctrl^C / SIGINT interrupts and exits with 130. Safely handles broken pipes (aka mycmd | head). Respects common environment variables (ex: TERM=dumb and NO_C