テキストユーザインタフェース

テキストユーザインタフェース（英語: text user interface, TUI）とは、グラフィカルユーザインタフェース (GUI) が考案された後に名づけられたレトロニムであり、テキストベースのユーザインタフェースを区別して呼ぶための名称である。TUIはCUIとは異なり、GUIのように画面全体を使い、出力も一行ずつとは限らない。しかし、GUIとも異なり、一般的なテキスト端末で表示できる記号や文字だけで画面を構成する。
ANSI互換端末でのTUI.
ANSI規格 ANSI X3.64 は、エスケープシーケンスの標準を定義したもので、端末上でTUIを生成するのに使う。これをANSIエスケープコードという。ただし、全ての端末がこの規格に準拠しているわけではなく、非互換だが機能的には等価なエスケープシーケンスをサポートした端末が多数存在する。
MS-DOSおよびMicrosoft WindowsでのTUI.
IBM PC やその互換機では、BIOSとMS-DOSシステムコールが画面に文字を出力する手段を提供しており、ANSI.SYSドライバでANSIエスケープシーケンスを処理できる。しかし、スクリーンバッファに直接データを書き込んだほうが高速で、しかもプログラムが単純化され、バグも作りこみにくくなるということが知られるようになった。このようなプログラミング技法の変化によって、MS-DOS 上で多数のTUIプログラムが生み出されるようになった。
多くの場合背景は青で、文字は白か黄色で表示していたが、色をカスタマイズできるようになっていたものも多い。その後、GUIに大きな影響を受け、プルダウンメニューやダイアログボックスが追加されていった。マウス入力にも対応するようになり（EGAやVGAアダプタは文字の形状をソフトウェアで変更可能であったため、グラフィックの解像度で識別可能だった）、さらに高機能化していった。
MS-DOS上でTUIを実現していた有名なソフトウェアとしては、初期の Microsoft Word、MS-DOS Shell、WordPerfect、Norton Commander、Borland Turbo C（conioライブラリを含む）、Lotus 1-2-3 などがある。これらの一部は1990年代初めに Microsoft Windows 3.x が登場してからも生き延びた。例えば、Microsoft C 6.0 コンパイラは Microsoft Windows 用のGUIプログラムを書くことができたが、それ自体のインタフェースはTUIだった。
初期の Windows には MS-DOS ソフトウェアを表示するためのコンソールが含まれていた。後のバージョンでは、コマンド行インタフェースやTUIのプログラムのためにWin32コンソールが追加された。コンソールは通常ウィンドウモードで起動されるが、全画面テキストモードに切り替えることもできる（Alt+Enter）。
Unix系システムでのTUI.
Unix系オペレーティングシステムでは、TUI構築に端末制御ライブラリである curses か、ほぼ互換な ncurses を使うことが多い。
BSDで開発された curses により、TUIのための移植性が高く安定したAPIが生まれた。様々な端末で同じAPIでTUIを実現できるため、画面全体を使ったTUIプログラムが多数開発されるようになった。例えば、vi などのテキストエディタ、pine や Mutt などの電子メールクライアント、SMIT などのシステム管理ツール、lynx などのウェブブラウザである。w3mや初期の pine や vi では curses は使っておらず、より低機能な termcap ライブラリを使い、curses 相当の機能はアプリケーション内部で実現している。
Linuxが広く使われるようになると、MS-DOSユーザーがUnix系プラットフォームに移行するようになり、MS-DOS に影響されたTUIが作られるようになった。例えば、MS-DOS上の通信プログラム Telix をベースとしたUnix系向けの minicom がある。また、移植されたものもあり、例えば TwinというTUIベースのデスクトップ環境がある。