Terminal Magic With Notcurses

Writing a command line program that needs a little more pizzaz? Ncurses just not colorful or high res enough? Or maybe you want to bring the demo scene to the command line. Notcurses has your back. The demo is great, and looks like it can push out enough detail to pull off silliness like pushing an SNES game’s output straight to the console. What might be the most impressive element of the library is that while it can blit high res graphics through a terminal emulator with graphical support, it will also work on the basic Linux console, with no graphical system installed, by using some very old tricks. I know what you’re wondering: That’s all well and good, but can it run Doom? Yep. Come back after the break for a demo.

[Nick Black], the author of the project, started it back in 2019, and boasts a handful of contributors, and boasts support for C, C++, Python, and Rust. It looks like a promising project. It works over SSH, and even has mouse support. Not only that, the aesthetic really tickles our love for the demoscene, particuarly since it borrows some of those techniques as a fallback pixel drawing mode. If you get inspired and build a demo using notcurses, make sure to let us know!

10 thoughts on “Terminal Magic With Notcurses

  1. I’d like to see a cousin project that works over serial on a STM32 with full readline support.

    I mean yeah yeah as an individual I can port things that do about the same thing or there’s some library that hasn’t been updated since 2017 here and there, but generally with microcontrollers its really easy to roll an ultra simple CLI or menu system over a serial port but the full unix CLI experience would be nice.

    The “good” news is I’m so old that systems like that would have had to support 750+ hardware terminals when I was a teen but now a days you can ignore everything but VT102 and call it good enough.

  2. should really be called: Not-Your-Great-Grandfather’s-Text-Terminal-Curses-Library (NYGGTTCL – A.K.A. Notcurses)

    the author is clearly a mad genius

    this vid here does a better job of providing some tech background on what this library is all about:

    notcurses FOSDEM 2021 lightning talk
    Jan 27, 2021

    So one of my we’ve-finally-arrived-at-Nirvana fantasies is to see all Linux/BSD/Unixy text-mode terminals everywhere have good support for inline images. There is spotty support for the old DEC Sixel terminal image protocol. But the kitty terminal has devised an updated inline text-mode image display protocol that is much superior (and very easy to use) and this notcurses library implements support for both the ancient DEC Sixel protocol and the new Kitty image protocol.

    The unixy text mode terminal world now should just all get behind this kitty image protocol.

    One obvious way to do that is to start using notcurses instead of the ancient ncurses library. And the notcurses library is modular – it can do multi-media like video playback, etc., but if your program doesn’t need multi-media support you can link it to the slimmer notcurses-core library. So effectively everyone can get what they want out of notcurses. This is truly text mode for the 21st century.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.