
In
computing, text-based user interfaces (TUI) (alternately terminal user interfaces, to reflect a dependence upon the properties of
computer terminals and not just text), is a
retronym describing a type of
user interface (UI) common as an early form of
human–computer interaction, before the advent of modern conventional
graphical user interfaces (GUIs). Like GUIs, they may use the entire
screen area and accept
mouse
A mouse ( : mice) is a small rodent. Characteristically, mice are known to have a pointed snout, small rounded ears, a body-length scaly tail, and a high breeding rate. The best known mouse species is the common house mouse (''Mus musculus' ...
and other inputs. They may also use color and often structure the display using special graphical
character
Character or Characters may refer to:
Arts, entertainment, and media Literature
* ''Character'' (novel), a 1936 Dutch novel by Ferdinand Bordewijk
* ''Characters'' (Theophrastus), a classical Greek set of character sketches attributed to The ...
s such as ┌ and ╣, referred to in
Unicode as the "box drawing" set. The modern context of use is usually a
terminal emulator.
Types of text terminals
From
text application's point of view, a text screen (and communications with it) can belong to one of three types (here ordered in order of decreasing accessibility):
# A genuine
text mode display, controlled by a
video adapter or the central processor itself. This is a normal condition for a locally running application on various types of
personal computers and
mobile devices. If not deterred by the
operating system, a smart program may exploit the full power of a hardware text mode.
# A text mode
emulator. Examples are
xterm for
X Window System and
win32 console (in a window mode) for
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
. This usually supports programs which expect a real text mode display, but may run considerably slower. Certain functions of an advanced text mode, such as an own
font
In metal typesetting, a font is a particular size, weight and style of a typeface. Each font is a matched set of type, with a piece (a "sort") for each glyph. A typeface consists of a range of such fonts that shared an overall design.
In mod ...
uploading, almost certainly become unavailable.
# A remote
text terminal. The communication capabilities usually become reduced to a
serial line or its emulation, possibly with few
ioctl()s as an
out-of-band channel in such cases as
Telnet and
Secure Shell. This is the worst case, because software restrictions hinder the use of capabilities of a remote display device.
Under
Linux and other
Unix-like systems, a program easily
accommodates to any of the three cases because the same interface (namely,
standard streams) controls the display and keyboard. See
below
Below may refer to:
*Earth
*Ground (disambiguation)
*Soil
*Floor
*Bottom (disambiguation)
Bottom may refer to:
Anatomy and sex
* Bottom (BDSM), the partner in a BDSM who takes the passive, receiving, or obedient role, to that of the top or ...
for comparison to Windows.
Many
TUI programming libraries are available to help developers build
TUI applications.
On ANSI-compatible terminals
American National Standards Institute
The American National Standards Institute (ANSI ) is a private non-profit organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States. The organi ...
(ANSI) standard
ANSI X3.64 defines a standard set of
escape sequences that can be used to drive terminals to create TUIs (see
ANSI escape code). Escape sequences may be supported for all three cases mentioned in the above section, allowing arbitrary
cursor movements and color changes.
However, not all terminals follow this standard, and many non-compatible but functionally equivalent sequences exist.
Under DOS and Microsoft Windows

On
IBM Personal Computers and
compatibles, the Basic Input Output System (
BIOS
In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the ...
) and
DOS system calls provide a way to write text on the screen, and the
ANSI.SYS driver could process standard ANSI escape sequences. However, programmers soon learned that writing data directly to the
screen buffer was far faster and simpler to program, and less error-prone; see
VGA-compatible text mode for details. This change in programming methods resulted in many DOS TUI programs. The
Windows console environment is notorious for its emulation of certain EGA/VGA text mode features, particularly random access to the text buffer, even if the application runs in a window. On the other hand, programs running under Windows (both native and DOS applications) have much less control of the display and keyboard than Linux and DOS programs can have, because of aforementioned Windows console layer.
Most often those programs used a blue background for the main screen, with white or yellow characters, although commonly they had also user color customization. They often used
box-drawing characters in IBM's
code page 437
Code page 437 (CCSID 437) is the character set of the original IBM PC (personal computer). It is also known as CP437, OEM-US, OEM 437, PC-8, or DOS Latin US. The set includes all printable ASCII characters as well as some accented letters (diacri ...
. Later, the interface became deeply influenced by
graphical user interfaces (GUI), adding
pull-down menus, overlapping
windows,
dialog boxes and
GUI widgets operated by
mnemonics or
keyboard shortcuts. Soon
mouse
A mouse ( : mice) is a small rodent. Characteristically, mice are known to have a pointed snout, small rounded ears, a body-length scaly tail, and a high breeding rate. The best known mouse species is the common house mouse (''Mus musculus' ...
input was added – either at text resolution as a simple colored box or at graphical resolution thanks to the ability of the
Enhanced Graphics Adapter (EGA) and
Video Graphics Array (VGA) display adapters to
redefine the text character shapes by software – providing additional functions.
Some notable programs of this kind were
Microsoft Word,
DOS Shell,
WordPerfect,
Norton Commander,
Turbo Vision
Turbo Vision is a character-mode text user interface framework included with Borland Pascal, Turbo Pascal, and Borland, Borland C++ circa 1990. It was used by Borland itself to write the integrated development environments (IDE) for these prog ...
based
Borland
Borland Software Corporation was a computer technology company founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn. Its main business was the development and sale of software development and software deployment product ...
Turbo Pascal and
Turbo C (the latter included the
conio library),
Lotus 1-2-3 and many others. Some of these interfaces survived even during the
Microsoft Windows 3.1x period in the early 1990s. For example, the
Microsoft C 6.0 compiler, used to write true GUI programs under
16-bit
16-bit microcomputers are microcomputers that use 16-bit microprocessors.
A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two mos ...
Windows, still has its own TUI.
Since its start,
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
includes a console to display DOS software. Later versions added the
Windows console as a native interface for
command-line interface
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
and TUI programs. The console usually opens in window mode, but it can be switched to full, true text mode screen and vice versa by pressing the
Alt and
Enter
Enter or ENTER may refer to:
* Enter key, on computer keyboards
* Enter, Netherlands, a village
* ''Enter'' (magazine), an American technology magazine for children 1983–1985
* ''Enter'' (Finnish magazine), a Finnish computer magazine
* Enter ...
keys together. Full-screen mode is not available in Windows Vista and later, but may be used with some workarounds.
Windows Terminal is a
multi-tabbed terminal emulator that
Microsoft has developed for
Windows 10 and later as a replacement for
Windows Console.
The
Windows Subsystem for Linux which was added to
Windows by
Microsoft in 2019, supports running
Linux text-based apps on Windows, within
Windows console,
Windows Terminal, and other Windows-based terminals.
Under Unix-like systems

In
Unix-like operating systems, TUIs are often constructed using the terminal control
library ''
curses'', or ''
ncurses'' (a mostly compatible library), or
the alternative ''
S-Lang
The S-Lang programming library is a software library for Unix, Windows, VMS, OS/2, and Mac OS X. It provides routines for embedding an interpreter for the S-Lang scripting language, and components to facilitate the creation of text-based applic ...
'' library.
The advent of the ''curses'' library with
Berkeley Unix
The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berke ...
created a portable and stable API for which to write TUIs. The ability to talk to various
text terminal types using the same
interfaces
Interface or interfacing may refer to:
Academic journals
* Interface (journal), ''Interface'' (journal), by the Electrochemical Society
* ''Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Lin ...
led to more widespread use of "visual" Unix programs, which occupied the entire terminal screen instead of using a simple line interface. This can be seen in
text editors such as
vi,
mail clients such as
pine or
mutt
A mutt is a mongrel (a dog of unknown ancestry).
Mutt may also refer to:
People
* Mutt, a derogatory term for mixed-race people
Nickname
* Larry Black (sprinter) (1951-2006), American sprinter
* Mutt Carey (1886–1948), New Orleans jazz trumpe ...
, system management tools such as
SMIT,
SAM
Sam, SAM or variants may refer to:
Places
* Sam, Benin
* Sam, Boulkiemdé, Burkina Faso
* Sam, Bourzanga, Burkina Faso
* Sam, Kongoussi, Burkina Faso
* Sam, Iran
* Sam, Teton County, Idaho, United States, a populated place
People and fictional ...
,
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
's
Sysinstall
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ope ...
and
web browsers such as
lynx
A lynx is a type of wild cat.
Lynx may also refer to:
Astronomy
* Lynx (constellation)
* Lynx (Chinese astronomy)
* Lynx X-ray Observatory, a NASA-funded mission concept for a next-generation X-ray space observatory
Places Canada
* Lynx, Ontar ...
. Some applications, such as
w3m, and older versions of
pine and
vi use the less-able
termcap library, performing many of the functions associated with
curses within the application. Custom TUI applications based on ''widgets'' can be easily developed using the
dialog program (based on
ncurses), or the
Whiptail program (based on
S-Lang
The S-Lang programming library is a software library for Unix, Windows, VMS, OS/2, and Mac OS X. It provides routines for embedding an interpreter for the S-Lang scripting language, and components to facilitate the creation of text-based applic ...
).
In addition, the rise in popularity of
Linux brought many former DOS users to a Unix-like platform, which has fostered a DOS influence in many TUIs. The program
minicom, for example, is modeled after the popular DOS program
Telix
Telix is a telecommunications program originally written for DOS by Colin Sampaleanu and released in 1986.
On October 10, 1988 in the release note for Telix 3.10, Sampaleanu announced the creation of 'Exis Inc.'; name used to develop the software ...
. Some other TUI programs, such as the
Twin desktop, were
ported over.
Most Unix-like operating systems (Linux, FreeBSD, etc.) support
virtual consoles, typically accessed through a Ctrl-Alt-F key combination. For example, under Linux up to 64 consoles may be accessed (12 via function keys), each displaying in full-screen text mode.
The
free software program
GNU Screen provides for managing multiple sessions inside a single TUI, and so can be thought of as being like a
window manager for text-mode and command-line interfaces.
Tmux can also do this.
The proprietary
macOS text editor BBEdit includes a ''shell worksheet'' function that works as a full-screen shell window. The
free
Free may refer to:
Concept
* Freedom, having the ability to do something, without having to obey anyone/anything
* Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism
* Emancipate, to procur ...
Emacs
Emacs , originally named EMACS (an acronym for "Editor MACroS"), is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, s ...
text editor can run a shell inside of one of its buffers to provide similar functionality. There are several shell implementations in Emacs, but only
ansi-term
is suitable for running TUI programs. The other common shell modes,
shell
and
eshell
only emulate command lines and TUI programs will complain "Terminal is not fully functional" or display a garbled interface. The
free
Free may refer to:
Concept
* Freedom, having the ability to do something, without having to obey anyone/anything
* Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism
* Emancipate, to procur ...
Vim
Vim means enthusiasm and vigor. It may also refer to:
* Vim (cleaning product)
* Vim Comedy Company, a movie studio
* Vim Records
* Vimentin, a protein
* "Vim", a song by Machine Head on the album ''Through the Ashes of Empires''
* Vim (text ed ...
and
Neovim text editors have terminal windows (simulating
xterm). The feature is intended for running jobs, parallel builds, or tests, but can also be used (with window splits and tab pages) as a lightweight terminal multiplexer.
OpenVMS
VAX/VMS (later known as
OpenVMS
OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Ope ...
) had a similar facility to ''curses'' known as the Screen Management facility or SMG. This could be invoked from the command line or called from programs using the SMG$ library.
Oberon

Another kind of TUI is the primary interface of the
Oberon operating system
The Oberon System is a modular, single-user, single-process, multitasking operating system written in the programming language Oberon. It was originally developed in the late 1980s at ETH Zurich. The Oberon System has an unconventional visual tex ...
, first released in 1988 and still maintained. Unlike most other text-based user interfaces, Oberon does not use a text-mode console or terminal, but requires a large bit-mapped display, on which text is the primary target for mouse clicks. Commands in the format
Module.Procedure ''parameters'' ~
can be activated with a middle-click, like
hyperlinks. Text displayed anywhere on the screen can be edited, and if formatted with the required command syntax, can be middle-clicked and executed. Any text file containing suitably-formatted commands can be used as a so-called tool text, thus serving as a user-configurable menu. Even the output of a previous command can be edited and used as a new command. This approach is radically different from both conventional dialogue-oriented console menus or
command line interface
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
s.
Since it does not use graphical
widgets, only plain text, but offers comparable functionality to a
GUI with a
tiling window manager, it is referred to as a Text User Interface or TUI. For a short introduction, see the 2nd paragraph on page four of the first published ''Report on the Oberon System''.
Oberon's
UI influenced the design of the
Acme text editor and email client for the
Plan 9 from Bell Labs operating system.
In embedded systems

Modern
embedded systems are capable of displaying TUI on a monitor like personal computers. This functionality is usually implemented using specialized integrated circuits, modules, or using
FPGA
A field-programmable gate array (FPGA) is an integrated circuit designed to be configured by a customer or a designer after manufacturinghence the term '' field-programmable''. The FPGA configuration is generally specified using a hardware de ...
.
Video circuits or modules are usually controlled using
VT100-compatible command set over
UART, FPGA designs usually allow direct video memory access.
Other uses
* The
full screen editor of the
Commodore 64
The Commodore 64, also known as the C64, is an 8-bit home computer introduced in January 1982 by Commodore International (first shown at the Consumer Electronics Show, January 7–10, 1982, in Las Vegas). It has been listed in the Guinness ...
8-bit computers was advanced in its market segment for its time. Users could move the cursor over the entire screen area, entering and editing
BASIC
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
program lines, as well as
direct mode commands. All Commodore
8-bit
In computer architecture, 8-bit Integer (computer science), integers or other Data (computing), data units are those that are 8 bits wide (1 octet (computing), octet). Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) arc ...
computers used the
PETSCII character set, which included character glyphs suitable for making a TUI.
* Apple's
Macintosh Programmer's Workshop programming environment included Commando, a TUI shell. It was the inspiration for BBEdit's shell worksheet.
* Later
Apple II
The Apple II (stylized as ) is an 8-bit home computer and one of the world's first highly successful mass-produced microcomputer products. It was designed primarily by Steve Wozniak; Jerry Manock developed the design of Apple II's foam-m ...
models included
MouseText, a set of graphical glyphs used for making a TUI.
* The
Corvus Concept computer of 1982 used a
function key-based text interface on a full-page pivoting display.
See also
*
Command-line interface
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
*
Console application
*
Natural language user interface
*
Text-based game, a game using a TUI
Examples of programming libraries
*
curses (programming library)
*
ncurses
*
CDK
*
Newt, a widget-based toolkit
*
S-Lang
The S-Lang programming library is a software library for Unix, Windows, VMS, OS/2, and Mac OS X. It provides routines for embedding an interpreter for the S-Lang scripting language, and components to facilitate the creation of text-based applic ...
*
Turbo Vision
Turbo Vision is a character-mode text user interface framework included with Borland Pascal, Turbo Pascal, and Borland, Borland C++ circa 1990. It was used by Borland itself to write the integrated development environments (IDE) for these prog ...
*
Early versions of Visual Basic
References
{{Operating system
User interfaces