Published April 7, 2026 | Version v3.10.0
Software Open

NiceGUI: Web-based user interfaces with Python. The nice way.

Description

Security

  • ⚠️ Prevent filename sanitization bypass via ui.upload on Windows (GHSA-w8wv-vfpc-hw2w by @offset, @evnchn, @falkoschindler)

New features and enhancements

  • Add nested dictionary binding support for deeply nested data structures (#2978, #5738 by @Aues6uen11Z, @evnchn, @falkoschindler)
  • Add ui.status_code() to set HTTP status codes from page builders (#5810 by @evnchn, @falkoschindler)
  • Add on_resize callback to ui.xterm to communicate terminal size to the PTY (#5847, #5858 by @jacopofar, @evnchn, @falkoschindler)
  • Unify awaitable handling across lifecycle hooks and tasks (#5878, #5879 by @AlePiccin, @falkoschindler, @evnchn)
  • Upgrade Docker image from Python 3.12 to 3.14 (#5900 by @falkoschindler, @evnchn, @rodja)
  • Allow ui.tab to find ui.tabs ancestor through intermediate containers (#5902 by @falkoschindler, @evnchn)
  • Warn when native mode runs on a browser engine without ES module support (#5907, #5909 by @drkspace, @evnchn, @iwr-redmond, @falkoschindler)
  • Split helpers.py into a package with focused submodules (#5916 by @falkoschindler, @evnchn)

Bugfixes

  • Fix client.ip always reporting "127.0.0.1" behind reverse proxies and On Air (#4786, #5906, #5920 by @ffilotto, @evnchn, @falkoschindler, @stephanpalmer)
  • Fix ValidationElement.error being ignored when no validation is set (#5895, #5903 by @atollk, @falkoschindler, @evnchn)
  • Fix built-in elements breaking when starting with tailwind=False (#5868, #5904 by @platinops, @evnchn, @falkoschindler)
  • Fix initialized() adding event listeners on every call (#5898 by @falkoschindler, @evnchn)
  • Fix sad face visibility on dark mode error pages (#5899 by @falkoschindler, @evnchn)
  • Fix refreshing sub pages from within nested parent elements (#5912, #5914 by @ZeroPoint095, @falkoschindler, @evnchn)
  • Fix Cmd/Ctrl-click on sub-page links not opening new tab (#5928 by @falkoschindler, @evnchn)
  • Fix ui.timer callback tasks leaking when client disconnects mid-execution (#5930, #5931 by @NiklasNeugebauer, @falkoschindler, @evnchn)

Documentation

  • Redesign nicegui.io website (#5910, #5911, #5913, #5923 by @falkoschindler, @ma-le-design, @rodja, @evnchn)
  • Fix truncated multi-line parameter descriptions in reference docs (#5808, #5905 by @evnchn, @falkoschindler)
  • Add keyboard navigation to website search dialog (#5919 by @falkoschindler, @evnchn)
  • Add Technological Foundations documentation page (#5835 by @evnchn, @falkoschindler)
  • Surface documentation index for AI tooling and discoverability (#5834 by @evnchn, @falkoschindler, @rodja, @iwr-redmond)

Infrastructure

  • Update .gitignore for Claude Code and Playwright MCP local files (#5893 by @rodja, @evnchn, @falkoschindler)
  • Add PR template instruction to AGENTS.md (#5894 by @rodja, @evnchn)
  • Improve PR template checklist for clarity (#5896 by @falkoschindler, @evnchn)
  • Auto-format Markdown files via pre-commit hook (#5897 by @falkoschindler, @evnchn)

Special thanks to our top sponsors Lechler GmbH and TestMu AI

and all our other sponsors and contributors for supporting this project!

🙏 Want to support this project? Check out our GitHub Sponsors page to help us keep building amazing features!

Notes

If you use this software, please cite it as below.

Files

zauberzeug/nicegui-v3.10.0.zip

Files (23.0 MB)

Name Size Download all
md5:2d2af713a995f215f5f0ed11c747e48c
23.0 MB Preview Download

Additional details

Related works