imgui
Cython-based Python bindings for dear imgui
What it is and what it does
imgui is a Python wrapper around the dear imgui C++ library, a lightweight immediate-mode GUI toolkit designed for interactive applications, games, and tools. It provides bindings to imgui's core widgets and rendering pipeline, allowing developers to build responsive, frame-based UIs without the overhead of traditional retained-mode GUI frameworks. The package ships as pre-compiled wheels for Windows, macOS, and Linux across multiple Python versions (3.6–3.11), eliminating compilation in most cases.
The library is intended for applications that need fast, iterative UI rendering—particularly games, visualization tools, and real-time editors. It requires a rendering backend (pygame, GLFW3, SDL2, Cocos2d, or pyglet) to display output. The project supports the majority of DearImGui 1.82 functionality, though some low-level APIs and complex widgets remain unmapped. With no runtime dependencies and permissive BSD licensing, it integrates easily into existing projects.
Use it for:
- Building debug overlays and in-game menus for games or interactive applications.
- Creating lightweight data visualization and monitoring dashboards with real-time updates.
- Rapid prototyping of tool UIs for graphics, audio, or scientific applications.
- Implementing immediate-mode UI for 3D editors or simulation software.
- Adding configuration and parameter-tuning interfaces to command-line or headless tools.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Python bindings for the dear imgui C++ library, providing an immediate-mode graphical user interface toolkit for building lightweight, interactive GUIs.
Yes, if you need a lightweight, immediate-mode GUI for games, tools, or real-time applications and are willing to pair it with a rendering backend. The pre-built wheels make installation straightforward on common platforms. However, the aging maintenance status (last release 2023-04-19) means you should verify that the feature set and bug fixes meet your needs before committing to a production project. No known security vulnerabilities.
Install
imgui on PyPI
pip
pip install imguiuv
uv add imguipoetry
poetry add imguiInstalling imgui
Before you install
Medium install friction due to compiled wheels; pre-built binaries available for major platforms and Python versions (3.6–3.11), but compilation from source may be required in niche environments. Last release was in April 2023; repository remains active but maintenance is aging.
License in practice
BSD license is permissive, allowing commercial and private use with minimal restrictions; no copyleft obligations.
Quickstart
pip install imgui
import imgui
import imgui.core
# In your render loop:
imgui.new_frame()
if imgui.begin_window("Example"):
imgui.text("Hello, ImGui!")
imgui.end()
imgui.end_frame()
Requires a rendering backend integration (pygame, GLFW3, SDL2, Cocos2d, or pyglet) to display windows; install with extras like `pip install imgui[pygame]` for a specific backend.
Verify before relying
- Whether the majority of core DearImGui 1.82 widgets mentioned in the description are fully functional and production-ready.
- Current state of missing low-level API elements and complex widgets (e.g., plots) and whether they are actively being added.
- Compatibility and testing status with PyPy implementations beyond the stated support since release 2.0.
Package facts
| License | BSD (permissive) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | aging — 1,213 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 110,264/month — #12,476 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: imgui-2.0.0-cp310-cp310-macosx_10_9_x86_64.whl; imgui-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; imgui-2.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl; imgui-2.0.0-cp310-cp310-musllinux_1_1_i686.whl; imgui-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl; imgui-2.0.0-cp310-cp310-win32.whl; imgui-2.0.0-cp310-cp310-win_amd64.whl; imgui-2.0.0-cp311-cp311-macosx_10_9_x86_64.whl; imgui-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; imgui-2.0.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl; imgui-2.0.0-cp311-cp311-musllinux_1_1_i686.whl; imgui-2.0.0-cp311-cp311-musllinux_1_1_x86_64.whl; imgui-2.0.0-cp311-cp311-win32.whl; imgui-2.0.0-cp311-cp311-win_amd64.whl; imgui-2.0.0-cp36-cp36m-macosx_10_9_x86_64.whl; imgui-2.0.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; imgui-2.0.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl; imgui-2.0.0-cp36-cp36m-musllinux_1_1_i686.whl; imgui-2.0.0-cp36-cp36m-musllinux_1_1_x86_64.whl; imgui-2.0.0-cp36-cp36m-win32.whl
Tags
More Games/Entertainment packages
A pure-Python chess library providing move…
copyleft · top 5,000 on PyPI
word2numberConverts written-out number words (like "twenty…
permissive · top 5,000 on PyPI
modernglModernGL is a Python wrapper over OpenGL Core…
permissive · top 15,000 on PyPI
glcontextProvides portable OpenGL context creation…
permissive · top 15,000 on PyPI
pymunkPymunk is a 2D rigid body physics simulation…
permissive · top 15,000 on PyPI
tuipetA terminal-based virtual pet game in the…
permissive · top 15,000 on PyPI
imgui-bundleDear ImGui Bundle provides Python bindings to a…
permissive · top 15,000 on PyPI
dearpyguidearpygui is a GPU-accelerated GUI framework…
permissive · top 15,000 on PyPI
PyGObjectPyGObject provides Python bindings for…
copyleft · top 15,000 on PyPI
niceguiNiceGUI is a Python framework for building…
permissive · top 5,000 on PyPI
pygletpyglet is a cross-platform windowing and…
unclear · top 5,000 on PyPI
ida-settingsProvides a Python API for IDA Pro plugins to…
unclear · top 15,000 on PyPI
easyguiEasyGUI provides simple, non-event-driven GUI…
permissive · top 5,000 on PyPI
Box2DBox2D is a Python binding to the Box2D C++…
permissive · top 15,000 on PyPI
PyQt5PyQt5 provides Python bindings for the Qt v5…
copyleft · top 5,000 on PyPI
ManimPangoManimPango is a C binding for Pango using…
permissive · top 15,000 on PyPI