nick black



notcurses-demo - Show off some notcurses features


notcurses-demo [-h|–help] [-p path] [-d delaymult] [-l loglevel] [-f renderfile] [-J jsonfile] [-m margins] [-ikVc] demospec


notcurses-demo demonstrates the capabilities of the notcurses library. It can be run in any terminal emulator or console with a correct terminfo(5) database, but is at is best in a 24bpp TrueColor RGB environment. If notcurses-demo seems to generate garbage, something is likely configured in a way that is going to prevent notcurses from working.

The demonstrations include (see NOTES below):

At any time, press ‘q’ to quit. The demo is best run in at least an 80x45 terminal.


-p path: Look in the specified path for data files.

-d delaymult: Apply a non-negative rational multiplier to the standard delay of 1s.

-l loglevel: Log everything (log level 8) or nothing (log level 0) to stderr.

-f renderfile: Render each frame to renderfile in addition to the screen.

-J jsonfile: Emit JSON summary of run to jsonfile.

-m margins: Define rendering margins (see below).

-k: Inhibit use of the alternate screen. Necessary if you want the output left on your terminal after the program exits.

-c: Do not attempt to seed the PRNG. This is useful when benchmarking.

-i: Continue after a failing demo.

-h: Print a usage message, and exit with success.

-V: Print the program name and version, and exit with success.

demospec: Select which demos to run, and what order to run them in. The default is ixezcydthnbgmarwuvlsfjqo. See above for a list of demos.

Default margins are all 0, and thus the full screen will be rendered. Using -m, margins can be supplied. Provide a single number to set all four margins to the same value, or four comma-delimited values for the top, right, bottom, and left margins respectively. Negative margins are illegal.


Proper display requires:

The Debian version of notcurses leaves out certain multimedia considered non-free under the Debian Free Software Guidelines. As a result, the chunli, eagle, jungle, luigi, and view demos are unavailable through the Debian package. This applies to any distro which uses the DFSG source tarball, including Ubuntu and Fedora.

If notcurses is built without multimedia support, the chunli, eagle, outro, view, xray, and yield demos will be partially or wholly unavailable. If notcurses is built without libqrcodegen, the qrcode demo will be unavailable.

If notcurses-demo is run in a terminal lacking the can_change terminfo capability, jungle will be skipped.

The following keypresses are recognized (and are also available from the menu):

Benchmarking should be performed using -c to get a well-defined PRNG seed. JSON output via -J will probably be useful.


Certain demos (especially mojibake and allglyph) heavily exercise the font rendering stack. If your font or rendering engine draws glyphs with width different from that reported by the standard library’s wcwidth(3), Notcurses will have an incorrect notion of cursor placement, leading to undesirable behavior.



notcurses(3), ncurses(3NCURSES), wcwidth(3), terminfo(5)