Add a debug overlay with buttons and sliders to a game or graphics application in C
Build a lightweight settings panel inside a C or C++ tool without pulling in a large GUI framework
Embed a GUI in an embedded system or constrained environment where dependencies are a problem
Use Nuklear bindings for Python, Rust, or Go to add a UI without writing C directly
Requires wiring to a rendering backend such as OpenGL or SDL, Nuklear has no built-in display output.
Nuklear is a library for building graphical user interfaces in C applications. It gives you the building blocks for windows, buttons, sliders, text inputs, and other on-screen controls, which you can then connect to any graphics or rendering system of your choice. It does not assume anything about how you display things on screen or how your operating system handles input, so it works across a wide range of platforms and contexts. The library follows an approach called immediate-mode GUI, which means the interface is described and drawn fresh each frame in code rather than being set up as a persistent tree of objects. In practice this makes the code straightforward to read: you describe what should appear on screen in the same place where you handle the logic, without maintaining separate state for every widget. A notable design choice is that the entire library ships as a single C header file with no external dependencies. Adding it to a project means copying one file. You can also exclude parts you do not need, which keeps the compiled size small. The codebase is written in C89, the oldest widely-supported version of C, so it compiles on old compilers and embedded toolchains without modification. Memory usage is fully under the developer's control, and the library does not hold any hidden global state. Community contributors have created bindings for other programming languages including Python, Rust, Go, Java, Lua, D, and C#. These allow developers in those languages to use Nuklear without writing C directly. The project is available under either the MIT license or the public domain, giving developers broad freedom in how they incorporate it. It was inspired by the imgui library and credits several other open-source single-header libraries as influences.
← immediate-mode-ui on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.