minimal command-line interface framework