dankamongmen/notcurses
Freeblingful character graphics/TUI library. definitely not curses.
About dankamongmen/notcurses
Notcurses is a library for building complex terminal user interfaces (TUIs) and character graphics on modern terminal emulators. It supports vivid colors, multimedia (images, video, fonts, sprites), threads, and Unicode to the maximum degree possible. Unlike NCURSES, it assumes modern terminal capabilities and steps down when necessary, enabling visual features that are impossible in traditional curses libraries. Key design priorities include thread safety, native Unicode with Extended Grapheme Clusters, 24-bit color with automatic quantization, and portable bitmapped graphics via Sixel, Kitty, and the Linux framebuffer. It also offers unambiguous keyboard protocols and can be built without multimedia for a lighter dependency footprint. Notcurses is not a drop-in replacement for NCURSES but leverages the Terminfo library for portability.
Key Features
Pros & Cons
- Enables visual features impossible in NCURSES (images, video, transparent regions, sprites)
- High performance, described as 'fast as shit'
- Thread safety designed from the beginning
- Full Unicode support with Extended Grapheme Clusters
- Flexible build options; can disable multimedia for lighter dependencies
- Automatic adaptation to terminal capabilities (steps down when needed)
- Not a drop-in replacement for NCURSES; requires significant code changes to port from curses
- May not work correctly on older or very minimal terminal hardware
- Multimedia functionality introduces a larger set of dependencies
- Documentation examples are currently limited (mostly in src/poc/ and src/pocpp/)