skillfed

nicegui

Create web-based user interfaces with Python. The nice way.

nicegui v3.16.0 1.3M downloads/30d#4,079 on PyPI16,119
Permissive license MIT Active released

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

NiceGUI is a Python framework for building browser-based user interfaces with standard GUI elements, charts, 3D scenes, and real-time data binding, running on FastAPI and communicating via WebSocket.

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

pip

pip install nicegui

uv

uv add nicegui

poetry

poetry add nicegui

Installing nicegui

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.

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()

Requires Python 3.10 or later; runs a local web server on port 8080 by default.

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 — Pygments, aiofiles, aiohttp, certifi, docutils, fastapi, h11, httpx, idna, ifaddr, itsdangerous, jinja2, markdown2, orjson, pydantic-core, python-dotenv, python-engineio, python-multipart, python-socketio, starlette, tinycss2, typing-extensions, uvicorn, watchfiles
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)

Evidence: nicegui-3.16.0-py3-none-any.whl

Keywords: gui, ui, web, interface, live

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

Tags

python web ui frameworkbrowser-based gui builderpython dashboard frameworkfastapi ui libraryinteractive web interface pythonpython gui without htmlreal-time data binding ui
web-ui-frameworkdashboard-builderfastapi-based

More Application Frameworks packages