ncurses is a programming library providing an API, allowing the programmer to write text user interfaces in a terminal-independent manner. It also optimizes screen changes, in order to reduce the latency experienced when using remote shells.
Ncurses stands for 'new curses', and is a replacement for the discontinued 4.4 BSD classic curses. Most ncurses calls can be easily ported to the old curses; however, a few areas are problematic, such as handling terminal resizing. Other subtle differences in call semantics can make porting an ncurses application to commercial Unix somewhat difficult.
The project lead is Thomas Dickey.
Ncurses is a part of the GNU project. It is one of the few GNU files not distributed under the GNU GPL or LGPL; it is distributed under a license similar to the MIT License.