A console application or command-line program is a computer program (applications or utilities) designed to be used via a text-only user interface, such as a text terminal, the command-line interface of some operating systems (Unix, DOS,[1] etc.) or the text-based interface included with most graphical user interface (GUI) operating systems, such as the Windows Console in Microsoft Windows,[2] the Terminal in macOS, and xterm in Unix.
A user typically interacts with a console application using only a keyboard and display screen, as opposed to GUI applications, which normally require the use of a mouse or other pointing device. Many console applications such as command line interpreters are command line tools, but numerous text-based user interface (TUI) programs also exist.
As the speed and ease-of-use of GUIs applications have improved over time, the use of console applications has greatly diminished, but not disappeared. Some users simply prefer console based applications, while some organizations still rely on existing console applications to handle key data processing tasks.
The ability to create console applications is kept as a feature of modern programming environments such as Visual Studio and the .NET Framework on Microsoft Windows.[3] It simplifies the learning process of a new programming language by removing the complexity of a graphical user interface (see an example in the C# article).
For data processing tasks and computer administration, these programming environments represent the next level of operating system or data processing control after scripting. If an application is only going to be run by the original programmer and/or a few colleagues, there may be no need for a pretty graphical user interface, leaving the application leaner, faster and easier to maintain.
See main article: Text User Interface.
Multiple libraries are available to assist with the development of Text User Interfaces.
On Unix systems, such libraries are ncurses and curses.
On Microsoft Windows, conio.h is an example of such library.
Console-based applications include Alpine (an e-mail client), cmus (an audio player), Irssi (an IRC client), Lynx (a web browser), Midnight Commander (a file manager), Music on Console (an audio player), Mutt (an e-mail client), nano (a text editor), ne (a text editor), newsbeuter (an RSS reader), and ranger (a file manager).