ncurses (de l'anglais « New curses », littéralement « Nouvelles malédictions ») est une bibliothèque libre fournissant une API pour le développement d'interfaces utilisateur à menu déroulant, en utilisant les caractères et couleurs d'un mode semi-graphique. Non seulement ce type d'interface utilisateur se conçoit de manière indépendante du terminal, mais il accélère le rafraîchissement d'écran, diminuant par là le temps de latence que subissent d'ordinaire les utilisateurs de shells à distance.
Beaucoup de langages de programmation intègrent aujourd'hui un lien vers cette bibliothèque : Python, Ruby, PHP, JavaScript, Perl, Ada et Gambas.
La première bibliothèque semi-graphique, curses, a été programmée vers 1980 à l'université de Berkeley pour le portage du jeu Rogue sous Unix BSD. Elle utilisait la bibliothèque termcap, elle-même développée pour l'éditeur ligne vi.
Devant l'accueil fait à BSD curses, les Laboratoires Bell ont décidé de l'inclure dans la version 2 de Unix System V, avec quelques améliorations et en utilisant terminfo, base de données d'accès plus rapide, au lieu de termcap ; toutefois, étant donné la politique restrictive d'AT&T sur la protection des droits, cette version améliorée de curses eut moins de succès que la première. Vers 1982, Pavel Curtis se mit à en développer un clone libre, pcurses, qui fut maintenu par plusieurs utilisateurs jusqu'en 1986.
Ncurses est une simulation libre de l'implémentation classique 4.4BSD de curses, dont l'évolution est maintenant arrêtée. La norme XSI Curses proposée par X/Open s'inspire explicitement de la version System V de curses.
Ncurses optimise les modifications de l'affichage, afin de réduire la latence perceptible lors de l'utilisation de shells à travers un réseau.
Ncurses fait partie du projet GNU. Elle fait partie des rares fichiers GNU qui ne sont pas distribués sous la licence GNU GPL ou GNU LGPL. Elle est distribuée sous une licence similaire à la licence X11.
Le responsable du développement de Ncurses est Thomas Dickey.
Curses, ancêtre de Ncurses.