Pyzed
Interfaces de escritorio modernas y rápidas en Python, dibujadas por Iced (Rust). Componentes inspirados en el editor Zed, un diseñador visual al estilo de Godot y Unreal, shaders por nodos, animaciones, juegos y agentes de IA integrados.
📖 Documentación · ⬇️ Descargar Pyzed Design · 🧩 Biblioteca de componentes · 📰 Novedades
Qué es Pyzed
- Rendimiento nativo. Python describe la interfaz; el layout, el texto y el dibujado los hace Iced 0.14 en
Rust (wgpu en la GPU, tiny-skia por CPU como respaldo).
import pyzedtarda unos 35 ms. - Sencillo. Arquitectura Elm: estado,
updateyview. Un botón puede llamar directamente a un método (on_press=self.guardar), yupdateacepta corrutinas, generadores y streams. - Más de 90 componentes listos para usar: botones, formularios, tablas virtuales de cientos de miles de filas, árbol de archivos, pestañas, paleta de comandos, editor de código, terminal, marco de ventana propio, gráficos… Todos siguen el tema actual.
- Pyzed Design, un diseñador visual que se instala como una app: dibuja formularios y componentes, escribe su código con autocompletado y diagnósticos, crea shaders por nodos y ejecútalo todo con F5.
- Efectos y animaciones: anima cualquier propiedad, transiciones entre ventanas, glow, bloom, blur, cristal y
shaders WGSL con
pz.shader. - Juegos: bucle de juego (
pz.frames), teclas mantenidas, sprites y partículas conpyzed.game. - IA: un panel de agentes dentro de Pyzed Design (Claude, OpenAI, Gemini, Copilot, modelos locales…),
pyzed.agentspara tus apps y un servidor MCP para que cualquier agente construya apps con Pyzed. - Temas de Zed: One, Ayu y Gruvbox incluidos, cualquier tema de Zed, temas generados y modo claro/oscuro del sistema.
- Multiplataforma: Linux, macOS y Windows (x86-64 y ARM). Fuentes IBM Plex y unos 2000 iconos Lucide incluidos.
- Capturas sin ventana:
app.screenshot("ui.png")renderiza sin GPU ni pantalla, ideal para tests y docs.
| Showcase: HUD de juego | Panel de cristal |
|---|---|
| Menú principal con shaders | Neon Invaders |
Instalación
Necesitas Python 3.10 o superior. Hay wheels para Linux (glibc y musl), macOS y Windows, así que no hace falta Rust.
uv add pyzed-ui # en un proyecto de uv
pip install pyzed-ui # dentro de un entorno virtual activado
python3 -m pip install pyzed-ui # con el Python del sistema (en Windows: py -m pip install pyzed-ui)
Extras opcionales: pyzed-ui[mcp] (servidor MCP) y pyzed-ui[agents] (agentes de IA en tus apps).
Pyzed Design se instala aparte como app, con instaladores para Windows y macOS y un script para Linux, y se actualiza solo: ver Descargar Pyzed Design.
Inicio rápido
import pyzed as pz
from pyzed import ui
class Counter(pz.App):
title = "Counter"
size = (360, 220)
def __init__(self):
self.count = 0
def update(self, message): # los mensajes pueden ser cualquier valor de Python
if message == "increment":
self.count += 1
elif message == "decrement":
self.count -= 1
def view(self):
return pz.center(
pz.column([
ui.heading(str(self.count)),
pz.row([
ui.button("1", "decrement", icon="minus"),
ui.button("1", "increment", icon="plus", variant="solid"),
# ...o un callable, que se llama directamente
ui.icon_button("rotate-ccw", lambda: setattr(self, "count", 0), tooltip="Reset"),
], spacing=8),
], spacing=16, align="center"),
bg=self.theme.editor,
)
pz.run(Counter)
Sigue con el inicio rápido y los tutoriales básicos, intermedios y avanzados.
Un proyecto completo
pyzed new mi-app # proyecto de uv: UI en ui/, backend en src/, ruff, ty y git
cd mi-app
uv run pyzed design # abre Pyzed Design en el proyecto
uv run pyzed dev main.py # hot reload: la ventana se actualiza al guardar y conserva el estado
uv run pyzed build # ejecutable para esta plataforma
Más en Crear un proyecto y Distribuir.
Pyzed Design
Un diseñador visual hecho con Pyzed, con la interfaz de Zed: arrastra componentes a una grilla con anclajes, edita sus propiedades y estilos, haz doble clic para escribir el código de cada evento y pulsa F5 para ejecutarlo.
| Pantalla de bienvenida con proyectos de ejemplo | Shaders por nodos, como en Godot |
|---|---|
- Vistas de formulario, componente, shader y código, con pestañas que se pueden sacar a su propia ventana.
- Editor de código de nivel Zed: autocompletado con ty, diagnósticos con ruff, varios cursores, buscar y reemplazar, plegado, minimapa, atajos configurables e IME.
- Proyecto: árbol de archivos con el menú de Zed, búsqueda de archivos, dependencias con uv y terminal.
- Componentes propios con propiedades tipadas, herencia, data binding y validación.
- Agente de IA integrado que lee el proyecto, crea formularios y apps completas y controla el editor a través del MCP de Pyzed.
- Se actualiza solo, como Zed, con una pestaña de novedades.
Manual completo en Diseñador y Shading.
Componentes
Cada componente tiene su página con todas sus variantes, ejemplos y API en la biblioteca. También hay bloques listos para copiar: pantallas de inicio de sesión, ajustes, paneles…
Cualquier widget tiene los eventos habituales de un editor gráfico (click, double_click, drag, key_down,
resize…), y los componentes propios son clases con props anotados, estado y eventos:
class Rating(pz.Component):
value: int = 0
events = {"change": "Se eligió una estrella"}
def render(self):
return pz.row([pz.text("★" if i <= self.value else "☆").on(click=lambda i=i: self.emit("change", i))
for i in range(1, 6)])
IA
-
Panel de agentes en Pyzed Design: inicia sesión en Claude por navegador o con tu suscripción, o usa OpenAI, Gemini, GitHub Copilot, Vertex AI, OpenRouter, Ollama y más. Adjunta imágenes, conecta servidores MCP externos o agentes ACP (Gemini CLI, Codex…).
-
Servidor MCP (
pyzed mcp): Claude, Cursor, VS Code y otros agentes consultan la API exacta, generan y comprueban apps y ven una captura del resultado.claude mcp add pyzed -- uvx --from "pyzed-ui[mcp]" pyzed mcp
-
pyzed.agentspara añadir un agente con herramientas a tus propias apps.
Ver IA.
Integraciones
Tutoriales y demos ejecutables con FastAPI, SQLAlchemy, SQLModel, Django, httpx y Pydantic:
dónde corre cada cosa (hilo de la UI, loop de asyncio, hilos de trabajo) y cómo mostrar errores de validación en
los formularios. El código está en examples/integrations.
¿Por qué Pyzed?
Comparativas con tkinter, Qt, Kivy, Flet, Dear PyGui y Toga, con
benchmarks medidos y reproducibles de arranque, memoria,
actualización y tamaño instalado (benchmarks/).
Ejemplos
| Carpeta o archivo | Qué muestra |
|---|---|
examples/counter.py, todo.py |
Lo mínimo: estado, mensajes, formularios y listas. |
examples/gallery.py |
Todos los componentes, interactivos, con selector de tema. |
examples/zed_editor.py |
Un editor de código completo sobre una carpeta real. |
examples/showcase/ |
HUD de juego, menú principal, inventario, panel de cristal y galería de shaders. |
examples/games/ |
Snake, Breakout y Neon Invaders. |
examples/integrations/ |
FastAPI, SQLAlchemy, SQLModel, Django, httpx, Pydantic y aiosqlite. |
examples/effects.py, animations.py |
Efectos visuales y animaciones. |
examples/window_frame.py |
Marco de ventana propio con menús y botones de cada plataforma. |
examples/ai_chat.py |
Un chat con un agente de IA. |
examples/designer/ |
Un formulario de Pyzed Design (.pzform + .py). |
examples/tutorial/, hot_reload/ |
Tutorial paso a paso y hot reload. |
Todos se ejecutan con python examples/<archivo>.py (o uv run). Más en
Ejemplos.
Cómo funciona
Python Rust (pyzed._core, PyO3) Iced 0.14
App.view() ──► árbol de Widget ──► render.rs: Widget → iced::Element ──► layout + wgpu/tiny-skia
App.update() ◄── mensajes ◄────── app.rs: Message, Command → Task ◄──── eventos (ratón, teclado)
Los widgets son objetos inmutables de Rust, así que construir la vista desde Python es barato. El estado interno de cada editor vive en Rust y el GIL se libera mientras corre el bucle de eventos. Más en Arquitectura.
Desarrollar Pyzed
git clone https://github.com/albakore/pyzed && cd pyzed
uv sync # compila el núcleo de Rust (1.88 o superior) e instala pyzed editable
uv run pytest tests
uv run python examples/gallery.py
Ver CONTRIBUTING.md. Pyzed sigue versionado semántico desde la 1.0; la política y las limitaciones conocidas están en Estabilidad.
Licencia
MIT. Las fuentes incluidas son IBM Plex (SIL Open Font License) y Lucide (ISC); sus licencias están en
assets/fonts. Los temas One, Ayu y Gruvbox vienen del repositorio de Zed (MIT); ver
python/pyzed/zed_themes/LICENSE.
Metadata
Release files for pyzed-ui 1.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| pyzed_ui-1.5.0.tar.gz | 83.9 MB | With provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pyzed_ui-1.5.0-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| pyzed_ui-1.5.0-cp310-abi3-musllinux_1_2_x86_64.whl | CPython 3.10 | abi3 | Linux musl 1.2+ x86-64 | Details |
| pyzed_ui-1.5.0-cp310-abi3-musllinux_1_2_aarch64.whl | CPython 3.10 | abi3 | Linux musl 1.2+ ARM64 | Details |
| pyzed_ui-1.5.0-cp310-abi3-manylinux_2_28_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| pyzed_ui-1.5.0-cp310-abi3-manylinux_2_28_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| pyzed_ui-1.5.0-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| pyzed_ui-1.5.0-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 175.6 MB
Release files / pyzed_ui-1.5.0.tar.gz
| Download URL | pyzed_ui-1.5.0.tar.gz |
|---|---|
| Size | 83.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6b2ab7c9346dfdb68b6a678ef295f304b595e25eedc1b578973211e6832f66ae
|
|
BLAKE2b-256 checksum How to use checksums |
1b83647bd730f3ce082fe8a5b3fbce9778885057c3aa532f0805eee2e317771a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / pyzed_ui-1.5.0-cp310-abi3-win_amd64.whl
| Download URL | pyzed_ui-1.5.0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 12.0 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
73d074bc92a3121bddcaeeabb6b413d986a6ad31d4ff4378f1c7ee17e80c6c46
|
|
BLAKE2b-256 checksum How to use checksums |
5fb5d006bc7bcde8ffcdcb984c1ffd5eb373f342b6124fc96494fe3da960eda0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / pyzed_ui-1.5.0-cp310-abi3-musllinux_1_2_x86_64.whl
| Download URL | pyzed_ui-1.5.0-cp310-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 14.8 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
9f450e98ac6e8a8b5a0f9b52c3c5622795dd68f69b09952e160c50d1fe3d97e8
|
|
BLAKE2b-256 checksum How to use checksums |
2dacbec9463cf93140839a160f8deefdab5d6ec817e7482f8cb1f25d6d4b6102
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / pyzed_ui-1.5.0-cp310-abi3-musllinux_1_2_aarch64.whl
| Download URL | pyzed_ui-1.5.0-cp310-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 14.2 MB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
8aa2515b7a7a1cd33cdf11cb72f6ebc3bdf7afb7b38cde4b27899f1314f8152c
|
|
BLAKE2b-256 checksum How to use checksums |
17b6a3306c4e8d1594ec9969d691c38f9e8f6648ba44e56e2c4d89009243f5b4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / pyzed_ui-1.5.0-cp310-abi3-manylinux_2_28_x86_64.whl
| Download URL | pyzed_ui-1.5.0-cp310-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 14.5 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
0babc9a28f82505dc94a11a3b8ac98fc4d6cf5ab1d668c5712cd8bf097057c41
|
|
BLAKE2b-256 checksum How to use checksums |
4f76cbb22560652c7bdaa278983792997a0117a7c292c18ad85e081855872a89
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / pyzed_ui-1.5.0-cp310-abi3-manylinux_2_28_aarch64.whl
| Download URL | pyzed_ui-1.5.0-cp310-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 14.0 MB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
5bbf524c3dc4abd35eec517c83b6b8945c342c6b8fa82e2267624f733ec5e59a
|
|
BLAKE2b-256 checksum How to use checksums |
5b669fb7835bd319dc518e1448b2f34bf7d9eb16ad643448c28776fcfe192b22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / pyzed_ui-1.5.0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | pyzed_ui-1.5.0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 11.0 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
44e25a50cc808e5cfc0e13aaa5c7ef3faa168678c840a8e01ccc7661df065025
|
|
BLAKE2b-256 checksum How to use checksums |
ae76300877e0848086d34a2ab5a445472f53738a120cbb59652eeebd97617d3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / pyzed_ui-1.5.0-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | pyzed_ui-1.5.0-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 11.3 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
097a245cd0edfc8844c7330fae81c84f334665abdff12697d395f8cae1a39ade
|
|
BLAKE2b-256 checksum How to use checksums |
3edaa8c486dfdb6a23463943affae13e78ec8300a0b52e19989215a9c38413cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logSecurity for pyzed-ui 1.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 8 files in this release have been uploaded with provenance metadata.
Attestation for pyzed_ui-1.5.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.