Curses
cursesのAPIの解説書はいくつかある。最も一般的な実装では、数千に及ぶ様々な端末の機能を示したデータベースを利用している。端末データベースではなく専用デバイスドライバを採用している実装としては PDCurses があるが、そのような例は少ない。ほとんどの実装ではterminfoを使っており、一部はtermcapを使っている。古い端末でもほとんどの場合動作可能であり、単純な点が長所である。ビットマップ画像や様々なフォントを必要としないアプリケーションでは、X Window System を使うよりも curses を使った実装の方が単純で高速である。
cursesを使用すると、プログラマは特定の端末装置を考慮せずに文字ベースのアプリケーションを書くことができる。cursesライブラリは、実行時に使用している端末装置を判別して適切に制御コードを送ることができる。cursesでは、実画面を1つ以上のウィンドウをマップしたものとしてモデル化する。各ウィンドウは文字の行列であり、プログラマは必要なウィンドウを実際に表示させたいように内容を設定して、cursesに対して画面の更新を指示する。cursesは内容の更新状況を調べ、実際に画面上で書き換える必要があるところだけを書き換えるような制御文字列を生成する。つまり、プログラマは画面にどう表示したいのかを文字行列で示し、cursesがそれを実際に表示する作業を受け持つ。