Skip to main content

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.

PyPI Python CI Licencia: MIT

📖 Documentación · ⬇️ Descargar Pyzed Design · 🧩 Biblioteca de componentes · 📰 Novedades

Pyzed Design con un formulario de inicio de sesión abierto

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 pyzed tarda unos 35 ms.
  • Sencillo. Arquitectura Elm: estado, update y view. Un botón puede llamar directamente a un método (on_press=self.guardar), y update acepta 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 con pyzed.game.
  • IA: un panel de agentes dentro de Pyzed Design (Claude, OpenAI, Gemini, Copilot, modelos locales…), pyzed.agents para 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
HUD de un juego hecho con Pyzed Panel de control con efecto cristal
Menú principal con shaders Neon Invaders
Menú principal synthwave Juego 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)
Contador

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
Ventana de bienvenida de Pyzed Design Vista Shader con un grafo de nodos
  • 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

Galería de 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.agents para 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)

Source distribution for pyzed-ui 1.5.0
File Size Uploaded Provenance
pyzed_ui-1.5.0.tar.gz 83.9 MB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for pyzed-ui 1.5.0
File
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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Security 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.

Select from 8 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page