GNU Readline

GNU Readline is a software library that provides in-line editing and history capabilities for interactive programs with a command-line interface, such as Bash.

As a cross-platform library, readline allows applications on various systems to exhibit identical line-editing behavior.

Readline supports both Emacs and vi editing modes, which determine how keyboard input is interpreted as editor commands.

[7] An important example of an application changing its licensing to comply with the copyleft conditions of GNU Readline is CLISP, an implementation of Common Lisp.

[10] Another response has been to not use this in some projects, making text input use the primitive Unix terminal driver for editing.