Notcurses is a library for building complex terminal user interfaces and character graphics on modern terminal emulators.
The tool addresses the limitations of NCURSES by abandoning the X/Open Curses API in favor of a design that assumes modern terminal capabilities and steps down gracefully when necessary. It enables vivid colors, multimedia rendering, Unicode support, and threading from the ground up. Rather than requiring developers to manually unlock advanced features, Notcurses makes them available by default while maintaining compatibility across platforms through the Terminfo library that ships with NCURSES.
Notcurses suits developers building interactive applications for workstations, phones, laptops, and tablets where modern terminal emulators are available. It is not a drop-in replacement for NCURSES and should not be used on systems requiring strict X/Open Curses compatibility or running older industrial and retail terminals. The library prioritizes performance and visual richness over backward compatibility with legacy hardware. Thread safety has been a design consideration from the beginning, making it suitable for parallel programs. The API uses prefixed identifiers to avoid namespace collisions and employs static inline header-only code where reasonable to facilitate compiler optimizations and reduce loader time. Multimedia functionality can be disabled at build time to reduce dependencies.
Development activity shows consistent engagement with the codebase through regular updates and maintenance. The project maintains comprehensive documentation including man pages, Doxygen output, and a freely available guidebook. Example programs are provided in dedicated directories covering both C and C++ implementations, with a demo application showcasing most functionality. The tool is packaged across multiple distributions and supported on Linux, FreeBSD, Windows, and macOS.