PyWry wraps PyTauri to let a single Python codebase target Jupyter widgets, FastAPI browser deployments, and native desktop windows without Electron.
Key Takeaways
Uses native OS webviews via PyTauri instead of bundling Chromium, cutting the Electron weight while keeping standard HTML/CSS/JS.
One codebase covers three targets: Jupyter notebooks via anywidget, browser via FastAPI WebSockets, and standalone desktop executables.
UI components (toolbars, modals, toasts, inputs) are declared as Pydantic models and placed into 7 fixed layout positions.
Two-way Python-JavaScript event bridge ships with built-in support for AgGrid, Plotly, and TradingView.
Enterprise features included: OAuth2 auth, Redis-backed RBAC, hot reloading, and 60+ CSS theming variables.
Hacker News Comment Review
The core binary is a 30.8 MB vendored ext_mod.cpython shared object from the pytauri project, meaning PyWry is essentially a Python-friendly wrapper around PyTauri rather than an independent rendering engine.
Commenters questioned the framing: “rendering engine” carries 3D graphics connotations, and the actual product is closer to a web-based desktop UI toolkit deployed via Tauri.
The integration was called Rube-Goldberg-like, with skepticism about real-world adoption given the opinionated stack; Flet was raised as a comparable run-everywhere Python UI alternative with a simpler mental model.
Notable Comments
@simonw: posted a working uv run --with pywry one-liner, confirming zero-install tryout is possible.
@simonw: dug into the wheel and identified the 30.8 MB pytauri_wheel/ext_mod binary as the heavy-lifting component.