TL;DR

文字を表示する画面に出力し、そこで操作するユーザインタフェース。テキストユーザインタフェース、またはターミナルユーザインタフェースの略である。

なぜ必要か

ターミナルの中で、GUI に近い操作感を得られる。Wikipedia によると、TUI は画面全体を使い、色やマウス入力、罫線文字によるレイアウトも扱える。行ごとに入力と出力をやり取りする CLI とは違い、TUI は画面全体を占有し、利用者は画面の中を移動して操作する。

仕組み

プログラムは普通、curses などの API を通じて画面にアクセスする。カーソルの移動や色の変更には、ANSI X3.64 で定められたエスケープシーケンスを使う。Unix 系の OS では、curses、ncurses、S-Lang などのライブラリで作られることが多い。現在はターミナルエミュレータの中で動かすのが一般的である。

例

Wikipedia では、Vim、メールクライアントの mutt、ファイルマネージャの Midnight Commander、Web ブラウザの lynx や w3m などが挙げられている。ほかに、Rust で TUI を作る Ratatui、TUI のデータベース管理ツール Lazysql、ターミナル上の Web ブラウザ browsh がある。

関連

出典