nicegui
Create web-based user interfaces with Python. The nice way.
Decision gist · record as of 2026-08-14
Yes. NiceGUI is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive MIT license. It's well-suited if you need a Python-native web UI without frontend complexity. The 24 runtime dependencies are standard async/web libraries (FastAPI, Uvicorn, Starlette, python-socketio). Start with it for dashboards, internal tools, and prototypes; verify performance and deployment strategy for production use.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; runs a local web server on port 8080 by default.
- Low friction: pure Python wheel with no compiled dependencies.
- Active maintenance—released 2 days ago with 16119 GitHub stars.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute NiceGUI freely provided you include the license notice.
last release 2026-08-12 (2 days) · last repo commit 2026-08-12 · 16,119 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,306,533 downloads/mo, #4,079 on PyPI
Alternatives
Verify before relying
pip install nicegui
from nicegui import ui
ui.label('Hello NiceGUI!')
ui.button('BUTTON', on_click=lambda: ui.notify('button was pressed'))
ui.run()- Whether the 24 runtime dependencies introduce any transitive security concerns beyond the 0 known vulnerabilities in NiceGUI itself.
- Performance characteristics under load (e.g., concurrent users, update frequency limits).
- Whether implicit code reload on file change is suitable for production deployments.
What it is and what it does
NiceGUI is a Python-first web UI framework that lets you write browser-based interfaces entirely in Python without touching HTML or JavaScript. You define UI elements (buttons, sliders, tables, 3D scenes, charts) as Python objects, bind them to data, and attach event handlers—the framework handles rendering in the browser and WebSocket communication. It runs on FastAPI with Uvicorn, so it's a full web server you can start with a single Python script.
The framework is designed for rapid prototyping of dashboards, micro web apps, robotics interfaces, and development tools. It supports implicit code reload during development, per-user persistence, shared and individual pages, and runs in Jupyter notebooks. All UI logic stays in Python; the backend-first architecture means you don't manage frontend state separately.
Use it for
- Build a dashboard to monitor real-time sensor data or system metrics with live-updating charts and gauges.
- Create a configuration UI for tuning machine learning models or motor controllers without writing web code.
- Prototype a robotics control interface with virtual joysticks and live video overlays.
- Develop a smart-home automation panel with buttons, toggles, and status displays.
- Write a data-entry or file-upload tool for internal use without deploying a separate frontend.
- Build a testing or debugging interface for interactive algorithm exploration in Jupyter.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
NiceGUI is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive MIT license. It's well-suited if you need a Python-native web UI without frontend complexity. The 24 runtime dependencies are standard async/web libraries (FastAPI, Uvicorn, Starlette, python-socketio). Start with it for dashboards, internal tools, and prototypes; verify performance and deployment strategy for production use.
Install
nicegui on PyPI
Before you install
Low friction: pure Python wheel with no compiled dependencies. Active maintenance—released 2 days ago with 16119 GitHub stars. Supports Python 3.10 through 3.14.
Requires Python 3.10 or later; runs a local web server on port 8080 by default.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute NiceGUI freely provided you include the license notice.
Quickstart
pip install nicegui
from nicegui import ui
ui.label('Hello NiceGUI!')
ui.button('BUTTON', on_click=lambda: ui.notify('button was pressed'))
ui.run()
Verify before relying
- Whether the 24 runtime dependencies introduce any transitive security concerns beyond the 0 known vulnerabilities in NiceGUI itself.
- Performance characteristics under load (e.g., concurrent users, update frequency limits).
- Whether implicit code reload on file change is suitable for production deployments.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4,>=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 24 packagesPygmentsaiofilesaiohttpcertifidocutilsfastapih11httpxidnaifaddritsdangerousjinja2markdown2orjsonpydantic-corepython-dotenvpython-engineiopython-multipartpython-socketiostarlettetinycss2typing-extensionsuvicornwatchfiles |
| Maintenance | Actively maintained 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,306,533 / month, #4,079 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: AsyncIOFramework :: FastAPIIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Internet :: WWW/HTTP :: Dynamic ContentTopic :: Software Development :: Libraries :: Application FrameworksTopic :: Software Development :: User InterfacesTopic :: Software Development :: Widget SetsTyping :: Typed |
Evidence: nicegui-3.16.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “python web ui framework”
- niceguiNiceGUI is a Python framework for building browser-based user…
- reflex-components-coreProvides a collection of UI components for building web interfaces…
- fastuiFastUI lets you build responsive web application UIs by writing…
Give your agent the search over MCP, or paste the wish link into any chat.
More Application Frameworks packages
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Textual is a Python framework for building cross-platform user interfaces that run in the terminal or web browser using a modern, component-based API.
Install it if you're developing CLI tools, dashboards, or interactive terminal applications.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Build and connect to Model Context Protocol servers that expose tools, resources, and prompts to LLM applications over stdio, HTTP, or SSE transports.
Install it if you need to build or connect to servers.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
See also easygui · dpgui · imgui-bundle · python-fasthtml · quip · pywebview · dearpygui · imgui · fastui