nano est un éditeur de texte pour les systèmes Unix et dérivés, basé sur la bibliothèque ncurses et publié sous licence GNU GPL. C’est un clone libre de Pico, l’éditeur de texte du logiciel de courrier électronique Pine. GNU nano s’efforce de reproduire les fonctionnalités et la simplicité de l’interface de Pico, mais sans conserver la dépendance forte envers Pine qu’impose Pico.
La première version de nano a été écrite par Chris Allegretta en 1999, et s’appelait TIP (acronyme récursif de TIP Isn't Pico, « TIP n’est pas Pico »). Son ambition était d’écrire un logiciel libre pour remplacer Pico, car ni Pico ni Pine n’étaient distribués sous une licence libre. Le nom a officiellement changé pour nano le , car le nom précédent entrait en conflit avec un autre programme Unix. Le nouveau nom provient du Système international d'unités, dans lequel nano signifie « 1 000 fois plus que pico », bien que le rétroacronyme Nano is ANOther editor (« Nano est un autre éditeur ») soit parfois utilisé. En février 2001, nano est officiellement devenu un programme du projet GNU.
Plus récemment, Nano s’est vu ajouter des fonctionnalités faisant défaut à Pico, telle que la coloration syntaxique, la recherche et le remplacement de texte avec des expressions rationnelles, le défilement ligne par ligne ou la possibilité d’éditer plusieurs tampons.
Chris Allegretta avait publiquement remis la maintenance de nano entre les mains de David Lawrence Ramsey le , mais demeurait le principal hacker du projet une décennie plus tard.
Le support de l’UTF-8, l’annulation et la redéfinition des touches sont intégrés dans nano à partir de la version 2.0.
Au lieu d’être contrôlé par la souris, nano, tout comme Pico, se contrôle avec les modificateurs, en particulier les touches Ctrl. Par exemple, Ctrl-O enregistre le fichier en cours d’édition et Ctrl-W ouvre le menu de recherche. Nano dispose d’une barre d’état de deux lignes au bas de l’écran, dans laquelle sont listées les raccourcis des commandes disponibles dans le contexte actuel.