A means of communication between a program and its user, based solely on textual input and output. Commands are input with the help of a keyboard or similar device and are interpreted and executed by the program. Results are output as text or graphics to the terminal. Command line interfaces usually provide greater flexibility than graphical user interfaces, at the cost of being harder for the novice to use. Consequently, some hackers look down on GUIs as designed For The Rest Of Them.