TTY::Reader provides independent reader component for TTY toolkit. A pure Ruby library that provides a set of methods for processing keyboard input in character, line and multiline modes. It maintains history of entered input with an ability to recall and re-edit those inputs. It lets you register to listen for keystroke events and trigger custom key events yourself. The tty-reader is not compatible with the GNU Readline and doesn't aim to be. Features Pure Ruby Reading single keypress Line editing Reading multiline input Ability to register for keystroke events Track input history No global state Works on Linux, OS X, FreeBSD and Windows Supports Ruby versions >= 2.0.0 & JRubyNumber of prompt types for gathering user input