Skip to content

Frequently asked questions

Short answers to the questions people ask most about Pyzed. Each one links to the page that explains it in full.

Pyzed is an open-source Python framework for building native desktop applications. Your Python code describes the interface; Iced, a GUI toolkit written in Rust, lays it out and draws it with the GPU (or a software renderer when there is none). It ships more than 90 components inspired by the Zed editor (tabs, file tree, command palette, code editor, terminal, tables, charts, dialogs, a workspace with docks) and Pyzed Design, a drag-and-drop visual designer. See the introduction.

Section titled “Is Pyzed related to the ZED camera’s pyzed package?”

No. Pyzed (pip install pyzed-ui, import pyzed as pz) is a Python GUI framework for desktop apps, and its name comes from the Zed editor that inspired its components. The pyzed module of the Stereolabs ZED SDK (pyzed.sl) is an unrelated library for ZED stereo cameras. Both use the pyzed import name, so they cannot be installed in the same environment.

Run pip install pyzed-ui or uv add pyzed-ui, then import pyzed as pz. The package is called pyzed-ui on PyPI but is imported as pyzed. It needs Python 3.10 or newer, and the prebuilt wheels for Windows, macOS and Linux include the Rust engine, so there is nothing to compile. See Installation.

Yes. Pyzed and Pyzed Design are free and released under the MIT license, so you can use them in commercial and closed-source applications. The code is on GitHub.

Windows (x64 and ARM), macOS (Intel and Apple Silicon) and Linux (x86_64 and ARM, glibc 2.28 or newer, and musl for Alpine). On Alpine the audio engine renders offline only, without sound devices. Mobile and the web are not targets yet. See Stability and known limitations.

tkinter ships with Python and is fine for small utilities, but its widgets look dated, styling is limited and complex layouts take a lot of code. Pyzed draws a modern, themeable interface with the GPU, comes with high-level components such as a code editor, tables, trees, a command palette and notifications, has a visual designer, and uses a declarative view()/state model instead of mutating widgets by hand. tkinter needs no extra install; Pyzed needs pip install pyzed-ui.

Kivy is aimed at touch and mobile apps and uses its own KV language. Pyzed is aimed at desktop apps (dense, keyboard-driven interfaces like editors, dashboards and tools), is written in plain Python with no extra language, and renders through Rust and Iced. If you need Android or iOS, Kivy is the better fit today.

How is Pyzed different from PyQt and PySide?

Section titled “How is Pyzed different from PyQt and PySide?”

Qt is a large, mature C++ toolkit with native-looking widgets and a huge API. Pyzed is much smaller and simpler: you describe the interface from your state with plain Python functions, styles work like CSS, and components look modern out of the box. Pyzed is MIT licensed, while PyQt is GPL or commercial and PySide is LGPL. Qt still has more widgets, accessibility support and years of production use.

Flet builds the interface with Flutter and talks to it from Python, and can also target the web and mobile. Pyzed runs the interface in the same process through a Rust extension, with no separate client, and focuses on desktop apps with an IDE-like look, a visual designer and a code editor component.

Layout, text shaping, syntax highlighting and drawing all happen in Rust, and the widget tree your view() returns is made of cheap immutable Rust objects. The GIL is released while the event loop runs, so your Python threads keep working. For large data, virtual lists and tables show hundreds of thousands of rows and @pz.memo skips rebuilding parts of the view that did not change. See Performance and How it works.

Yes. Pyzed Design lets you draw windows and reusable components by drag and drop, edit their properties and styles, write event handlers in a Python editor with completion and diagnostics, and run them with F5. Forms are saved as a readable .pzform file plus a plain Python file. Download it for Windows, macOS or Linux.

Can I make interfaces with effects and animations?

Section titled “Can I make interfaces with effects and animations?”

Yes. Any widget can be animated with presets, keyframes and transitions, and controls can have rotation, blur, glow, bloom, glass and opacity effects, with light, dark and custom themes. See Animation and effects and Themes.

Yes. pyzed mcp (install pyzed-ui[mcp]) is an MCP server that gives agents such as Cursor, VS Code or Zed the exact signature of every component, these docs, best practices, code checks and screenshots of the result. These docs are also published for language models at llms.txt and llms-full.txt, and Pyzed Design has a built-in Agent panel.

Yes. pyzed.agents talks to Anthropic, OpenAI, Gemini, OpenRouter, Ollama and OpenAI-compatible servers, lets the model call your Python functions as tools, streams its answer into the interface and keeps API keys in the system keychain.

pyzed build packages a project as a standalone app (a folder or a single file) for Windows, macOS or Linux that runs on machines without Python. It uses PyInstaller underneath; build each platform on that platform or in a CI matrix. See Packaging.

Yes. app.screenshot(path) renders the current state off-screen with the software renderer, with no display or GPU, so it works in CI. Your state and handlers are plain Python and are tested like any other code. See Testing.

Not yet. Pyzed respects the system’s reduce-motion setting and supports keyboard shortcuts, but screen reader support depends on Iced and is still missing. See Accessibility.

No. You only write Python: classes, functions and lambdas. Rust is only needed if you build Pyzed itself from source or contribute a new native widget.