curses — the library for building text-based user interfaces — was written by Ken Arnold at Berkeley in 1980 to make the roguelike game rogue portable across terminals. It works by tracking what’s on screen, computing the minimal sequence of terminal escape codes needed to update it, and emitting those codes as efficiently as possible — because in 1980, terminal bandwidth was precious. ncurses, its modern descendant, underpins htop, vim, mutt, tmux, and essentially every terminal application with a full-screen interface written in the last forty years. Under the hood it is still negotiating with terminfo databases, still sending VT100 sequences inherited from 1978 DEC hardware, still doing arithmetic to avoid redrawing characters that haven’t changed. The abstraction is seamless enough that most developers using it have no idea their UI library traces directly back to a dungeon crawler from 1980.
Home The Curses Library: Terminal UIs Powered by Ancient VT100 Incantations






















