We are using Spring shell, and it worked really well for us. Some of its features:
A simple, annotation driven, programming model to contribute custom
commands
Use of Spring's classpath scanning functionality asthe basis for a
command plugin strategy and command develoment
Inheritance of the Roo Shell features, most notably tab completion,
colorization, and script execution.
Customization of command prompt, banner, shell history file name.