A C++ WebView UI Library. Nui enables you to build C++ user interfaces using a browser window tied to a main process.
Website: https://nuicpp.org
Documentation: https://nuicpp.github.io/nui-documentation/ AI Skill, which also is a pretty good TLDR: Skill
How to get going with nui is explained here in detail: Installation
A template to get going can be found here: Template
Tested on:
- Ubuntu (using clang20 and libc++)
- Windows (using clang20 and current msys libstdc++)
- MacOS 13: (using clang16)
Not automatically tested but should work:
- Windows with Visual Studio, vcpkg and clang_cl
- Arch Linux
- MacOS 14+
- Other Linux Distributions with new enough packages for C++20
Not supported:
- Mobile Platforms
- BSD Systems
nui-sftp is a terminal emulator, file explorer and ssh & sftp client built using nui. It is my nui dogfooding project. It is a good example of a non-trivial application built with nui, and is available here: https://github.com/5cript/nui-sftp
(WARNING: I experience serious performance problems caused by these components when 100+ components are used, because each and every single component calls getComputedStyle on creation causing forced reflows.)

To use them, see this repo: https://github.com/NuiCpp/ui5
More found on https://nuicpp.org
Pull Requests are welcome, please format your changes and additions with clang-format (Ideally version 22+).
For you AI Vibe Coders out there, I have created a claud skill file which also douples as a TLDR documentation. It is available here: Skill
Nui uses the following dependencies:
- emscripten - Custom LICENSE
- A nui maintained fork of webview/webview https://github.com/webview/webview - MIT LICENSE
- boost under BSL License
- fmt https://github.com/fmtlib/fmt - Custom MIT-like LICENSE
- gtest https://github.com/google/googletest - BSD 3-Clause LICENSE
- 5cript/interval-tree https://github.com/5cript/interval-tree - CC0-1.0 LICENSE
- nlohmann/json https://github.com/nlohmann/json - MIT LICENSE
- portable-file-dialogs https://github.com/samhocevar/portable-file-dialogs - WTFPL LICENSE
- 5cript/roar https://github.com/5cript/roar - BSL-1.0 LICENSE
- Nui/traits https://github.com/NuiCpp/traits - CC0-1.0 LICENSE
- nemtrif/utfcpp https://github.com/nemtrif/utfcpp - BSL-1.0 license


