--- id: nicegui version: "3.16.0" license: MIT license_treatment: permissive maintenance: active --- # nicegui — Create web-based user interfaces with Python. The nice way. License: permissive · Maintenance: active · Downloads: 1.3M/mo ## 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 above — 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 pip install nicegui uv add nicegui 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_current - Install friction: low - Maintenance: active - Downloads: 1.3M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags python web ui framework, browser-based gui builder, python dashboard framework, fastapi ui library, interactive web interface python, python gui without html, real-time data binding ui, web-ui-framework, dashboard-builder, fastapi-based [View on SkillFed](https://skillfed.io/packages/nicegui) · [View on PyPI](https://pypi.org/project/nicegui/)