Repolode
zauberzeug

zauberzeug/nicegui

A Python framework for building browser-based web UIs and small apps without writing HTML, CSS or JavaScript.

Open-source alternative to:Streamlit

Stars
16,306
Forks
964
Open issues
53
Last commit
14 hours ago

What is it?

NiceGUI lets you build web user interfaces entirely in Python. You declare elements such as buttons, inputs, tables, charts, Markdown blocks and 3D scenes, and the framework renders them in the browser and forwards user events back to your Python functions.

It suits micro web apps, dashboards, robotics and smart home control panels, and interactive tuning of machine learning or hardware parameters. The project runs as a local web server or in native mode inside a desktop window, and it also works in Jupyter notebooks. Code changes trigger an automatic page reload during development.

The backend is built on FastAPI with a Vue and Quasar frontend, and communicates over a WebSocket connection. It is distributed on PyPI, conda-forge and Docker Hub.

Key features

  • 01Standard elements such as buttons, inputs, sliders, file uploads and dialogs
  • 02Charts, 3D scenes, virtual joysticks, image annotation and tree views
  • 03Timers and data binding for refreshing live values
  • 04Per-user and global persistence, plus custom routes
  • 05Runs as a web server or as a native desktop window
  • 06Includes a pytest-based testing framework

Use cases

  • Building an internal dashboard or monitoring panel in pure Python
  • Creating a control UI for robots, motors or smart home devices
  • Tuning machine learning models or parameters interactively in a browser
  • Wrapping a Python script in a quick web tool for teammates

Quick start

  1. 1

    Install NiceGUI with pip

    python3 -m pip install nicegui
  2. 2

    Create main.py with a label and button, then run it

    python3 main.py
  3. 3

    Open http://localhost:8080/ in your browser

Topics

FAQ

What is nicegui?
A Python framework for building browser-based web UIs and small apps without writing HTML, CSS or JavaScript. NiceGUI lets you build web user interfaces entirely in Python. You declare elements such as buttons, inputs, tables, charts, Markdown blocks and 3D scenes, and the framework renders them in the browser and forwards user events back to your Python functions.
Is nicegui free to use? What license does it have?
nicegui is open source under the MIT license. Check the license terms before using it in commercial products.
Is nicegui still maintained?
Actively maintained. The last commit to nicegui was on Oct 20, 2026.
What can I use nicegui for?
Building an internal dashboard or monitoring panel in pure Python Creating a control UI for robots, motors or smart home devices Tuning machine learning models or parameters interactively in a browser Wrapping a Python script in a quick web tool for teammates
How do I install nicegui?
Install NiceGUI with pip: python3 -m pip install nicegui Create main.py with a label and button, then run it: python3 main.py Open http://localhost:8080/ in your browser
Where can I get nicegui?
The source code and installation instructions are on GitHub: https://github.com/zauberzeug/nicegui

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects