Imguinz
Dear Imgui (CImGui), ImPlot (CImPlot), ImPlot3D(CImPlot3D) and many additional libraries with Zig
Install / Use
/learn @dinau/ImguinzREADME
- ImGuinZ
- Zig fetch
- Prerequisites
- Build and run
- Available libraries list at this moment
- Examples screenshots
- ImGui-Toggle / CImGui-Toggle
- ImGui-Knobs / CImGui-Knobs
- ImSpinner / CImSpinner
- Raylib example
- Raylib + ImGui + rlImGui
- ImPlot3D / CImPlot3D
- ImGuiFileDialog / CImGuiFileDialog
- ImGuiColorTextEdit / cimCTE
- ImNodes / CImNodes
- ImGuizmo / CImGuizmo
- imgui_markdown / cimgui_markdown
- Image load
- Showing CJK multi byte fonts and input UTF-8 text
- Icon font viewer
- Image load / save
- glfw_opengl3_implot
- ImPlot Demo written in Zig lang.
- Show / Hide console window
- SDL libraries
ImGuinZ
This project aims to simply and easily build Dear ImGui (CImGui) / ImPlot (CImPlot), Raylib, rlImGui and many other libaries and examples in Zig with less external dependencies.
-
ImGui / CImGui version 1.92.6 dock (2026/02)
-
OS: Windows11 and Linux
-
Frontends and Backends
| | GLFW | SDL3 | Win32 | | --- | :----: | :----: | :----: | OpenGL3<br>backend | YES | YES | - | SDLGPU3<br>backend | - | YES | - | DirectX 11<br>backend | - | - | YES
-
Features
- Included Font Awesome Icon fonts.

- Included GLFW 3.4.0 static library (for Windows)
- Included SDL3.4.x libraries (for Windows)
- Included STB libraries (only stb_image) for Load / Save images
- Available ImPlot (CImPlot) / ImPlot3D with
ImDrawIdx="unsigned int" - Enabled Input method (IME) flag with
IMGUI_ENABLE_WIN32_DEFAULT_IME_FUNCTIONS
- Included Font Awesome Icon fonts.
Zig fetch
-
Zig fetch
imguinzmkdir myapp cd myapp zig init zig fetch --save git+https://github.com/dinau/imguinz -
Add dependencies to
build.zigconst imguinz = b.dependency("imguinz", .{}); const dependencies = .{ "appimgui", // Simple app framework "imspinner", // ImSpinner "imknobs", // ImKnobs "imtoggle", // ImToggle // "another_lib", }; inline for (dependencies) |dep_name| { const dep = imguinz.builder.dependency(dep_name, .{ .target = target, .optimize = optimize, }); exe.root_module.addImport(dep_name, dep.module(dep_name)); } exe.subsystem = .Windows; // Hide console windowYou can set
dependencies(additional libraries), see imguinz/build.zig.zon"appimgui" <- Simple app framework for GLFW and OpenGL backend "imspinner" <- ImSpinner "imguizmo" <- ImGuizmo "imknobs" <- ImKnobs "imnodes" <- ImNodes "implot" <- ImPlot "implot3d" <- ImPlot3D "imtoggle" <- ImToggle "rlimgui" <- rlImgui ... snip ... -
Edit src/main.zig
const app = @import("appimgui"); const ig = app.ig; const spinner = @import("imspinner"); const knobs = @import("imknobs"); const tgl = @import("imtoggle"); // ImToggle // gui_main() pub fn gui_main(window: *app.Window) void { var col: f32 = 1.0; var fspd: bool = false; var speed: f32 = 2.0; var spn_col: spinner.ImColor = .{ .Value = .{ .x = col, .y = 1.0, .z = 1.0, .w = 1.0 } }; while (!window.shouldClose()) { // main loop window.pollEvents(); window.frame(); // Start ImGui frame ig.igShowDemoWindow(null); // Show demo window // ig.igSetNextWindowSize(.{ .x = 0.0, .y = 0.0 }, 0); // Fit window size depending on the size of the widgets _ = ig.igBegin("imguinz", null, 0); // Show Spinner window spinner.SpinnerAtomEx("atom", 16, 2, spn_col, speed, 3); ig.igSameLine(0.0, -1.0); _ = tgl.Toggle("Speed", &fspd, .{ .x = 0.0, .y = 0.0 }); if (fspd) speed = 6.0 else speed = 2.0; if (knobs.IgKnobFloat("Color", &col, -1.0, 1.0, 0.1, "%.1f", knobs.IgKnobVariant_Stepped, 0, 0, 10, -1, -1)) { spn_col.Value.x = col; } ig.igEnd(); window.render(); // render } // end while loop } pub fn main() !void { var window = try app.Window.createImGui(1024, 900, "ImGui window in Zig"); defer window.destroyImGui(); _ = app.setTheme(.dark); // Theme: dark, classic, light, microsoft gui_main(&window); // GUI main proc } -
Build and run
pwd myapp zig build run
[^except_raylib]: Except Raylib examples
Prerequisites
-
Zig compiler version confirmed
- Windows: zig-x86_64-windows-0.15.2.zip
- Linux: zig-x86_64-linux-0.15.2.tar.xz
- Devel version: zig-016.0-dev.2960 (2026/03/19)[^except_raylib]
-
WindowsOS
-
Windows11
-
MSys2/MinGW basic commands (make, rm, cp, strip ...)
pacman -S make
-
-
Linux OS (Ubuntu / Debian families)
sudo apt install lib{opengl-dev,gl1-mesa-dev,glfw3,glfw3-dev,xcursor-dev,xinerama-dev,xi-dev} git make
Build and run
git clone https://github.com/dinau/imguinz
cd imguinz/examples/glfw_opengl3 # cd one of examples
make run # or zig build --release=fast run
Available libraries list at this moment
Library name / C lang. wrapper
- [x] ImGui / CImGui (2024/11)
- [x] ImPlot / CImPlot (2025)
- [x] ImPlot3d / CImPlot3d (2025/07)
- [x] ImNodes / CImNodes (2025/06)
- [x] ImGuizmo / CImGuizmo (2025/07)
- [x] ImGui-Knobs / CImGui-Knobs (2025/05)
- [x] ImGuiFileDialog / CImGuiFileDialog (2025/07)
- [x] ImGui_Toggle / CimGui_Toggle (2025/05)
- [x] ImSpinner / CImSpinner (2025/05)
- [x] ImGuiColorTextEdit / cimCTE (2025/07)
- [ ] ImGui_Markdown (2025/09) WIP
Additional examples
Examples screenshots
ImGui-Toggle / CImGui-Toggle

ImGui-Knobs / CImGui-Knobs
ImGui-Knobs / [CImGui-Knobs](https://github.com/dinau/cimgui-knob
Related Skills
node-connect
339.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
