Users can only write after the prompt.
Built-in command completion by pressing TAB key, just register your commands.
Pressing Enter key validates the input.
Everything is event-based, so you can interface it easily without changing the code.
Command and arguments are parsed. Arguments can be simple words (anything but a whitespace character) or quoted arguments in order to include spaces.
NEW: Abort request event is raised when the user enters CTRL+C
Bug fixes and performance improvements
This package has no dependencies.