Copyright © 1996-2019,2020 by Thomas E. Dickey

NCURSES – New Curses


See the ncurses release announcement or the FAQ



Ncurses has an involved history:

Ncurses is the work of dozens of people. Some are listed in the credits.

My Involvement

My involvement with ncurses dates back to the 1.8.1 release. I was looking for an avenue to make a SystemV-based curses support resizable windows (e.g., in an xterm). This is easily achievable with BSD-curses, but not with the distributed versions of SystemV curses. Ncurses 1.8.1 was too immature (dumped core, was not portable, etc).

I revisited it in mid-1994, after an initial pass of making ded auto-configured. Ncurses 1.8.5 was advertised as 100% SVr4 compatible. I designed a minimal interface for resizeterm, proposing it to Zeyd, who promised it would be in 1.8.6 (it wasn't). Coming back to 1.8.7, I found that the color support was broken (specifically for add, which I had colorized using PDCurses with MS-DOS). Since the package is useless to me unless it implements faithfully the SVr4 interface, I approached Eric in early 1995 with my growing list of problems. For more information, see the discussion of the ncurses license.

Since then, I've corrected the implementation of color, terminal modes, implemented resizing, as well as the configuration scripts, and resolved numerous reliability and portability issues.

There is further work to do: the screen optimization has not been rigorously tested, there are interesting problems to work out with internationalization, etc.


Here are links to the changelog for ncurses:

Subsets of the Distribution

Starting with release 5.8, the source includes scripts which automate the process of building tarballs of useful subsets. These are

The tack program is commonly distributed with ncurses, though it is not part of ncurses.


Download ncurses

Download tack

Terminal Database

The current terminfo/termcap sources are available via http. They require tic/infocmp from ncurses 6.2 or later, since they use a feature which was broken in previous releases.

Here are links to a browsable version of the terminfo database:

and here are the database files (see Is ncurses terminfo compatible with my system? in the FAQ):

You may also find the discussion of tctest useful.

XTerm has its own terminfo file and termcap files, which are not part of ncurses (see What $TERM should I use?). I adapt parts of xterm's terminfo file for ncurses, and use infocmp (in a script) to check for mismatches. Some packagers simply append xterm's file to the ncurses terminal database, which creates more problems than it solves.

MinGW Port

Beginning with ncurses 5.8, ncurses has been ported to Win32 console using MinGW. I have built it both on Windows7 as well as via cross-compiling from FreeBSD, Fedora and Debian. From the latter, I make occasional builds which you may find useful:

Other Resources

Stable releases are mentioned on

Development versions are announced on the mailing list. Here are pointers to repositories built from the development patches (as well as selected releases):