# Pyzed

> Pyzed es un framework de frontend de código abierto para apps de escritorio nativas en Python: renderizado en la GPU con Rust e Iced, más de 90 componentes, diseñador visual de arrastrar y soltar, temas, shaders por nodos, empaquetado para Windows, macOS y Linux y un agente de IA integrado. Una alternativa moderna a tkinter, Kivy y PyQt.

Source: https://albakore.github.io/pyzed/es/

## Todo lo que abarca Pyzed

Pyzed es una biblioteca, un diseñador visual y un conjunto de herramientas alrededor. Ve directo a la parte que necesitas.

## Todo lo que necesitas para una app de escritorio

Del primer boceto al ejecutable que distribuyes: un diseñador visual, un sistema de componentes, un editor de
código que conoce tu proyecto y una biblioteca de interfaz moderna con temas y modo oscuro.

<div class="pz-clip-pair not-content">

</div>

## Dibuja tus ventanas y pulsa F5

Un editor de formularios al estilo de Visual Basic y Qt Designer, hecho con el propio Pyzed. Lo que dibujas es
lo que se ejecuta: sin pasos de generación de código ni sorpresas.

- Arrastra componentes desde la **caja de herramientas** y anídalos en paneles, filas flex y grids
- **Guías inteligentes**, ajuste a la cuadrícula, alinear, distribuir y anclajes como en WinForms
- Paneles de **Propiedades** y **Eventos**: doble clic en un evento para escribir su código
- Se guarda como un `.pzform` legible y un archivo Python normal; se ejecuta con `pyzed run`

## Componentes reutilizables, como las escenas de Godot

Diseña un componente una vez y colócalo en cualquier formulario o dentro de otros componentes. Cada uno es una
clase `pz.Component` normal, así que dibujarlo y escribirlo a mano es lo mismo.

- **Propiedades** con tipo, estado interno, métodos y **eventos** propios
- **Enlaces** que mantienen los controles hijos sincronizados con las propiedades
- **Herencia** y anidamiento, con layouts responsivos
- Aparece en la caja de herramientas con su etiqueta, icono y categoría

## Un editor de Python que conoce tu proyecto

Los manejadores de eventos se escriben dentro del diseñador, con los servidores de lenguaje **ty** y **ruff**
de Astral funcionando en el entorno de tu propio proyecto.

- **Autocompletado** con firmas y docstrings, importaciones automáticas y los controles de `form.`
- **Diagnósticos en línea** (error lens), lista de problemas y **code lens** con referencias
- Plegado de código, minimapa, cierre automático de paréntesis, estilos de cursor y tema propio
- **Formatea con ruff** al aplicar los cambios

## Proyectos reales, sin complicaciones

Cada app es un proyecto [uv](https://docs.astral.sh/uv/) normal con su propio `.venv`. Pyzed Design lo crea,
instala paquetes y ejecuta las herramientas, así que tus formularios pueden importar cualquier librería de PyPI.

- Añade, actualiza y quita **dependencias** desde la pestaña Proyecto
- Un clic para **lint**, **formato** y **comprobación de tipos** con ruff y ty
- Crea un repositorio git y mantén la interfaz junto al código de tu backend

## Un agente de IA que construye contigo

Describe una pantalla y el agente de Pyzed Design coloca los controles, escribe los manejadores, mira el
resultado y comprueba su código; cada cambio se puede deshacer. Tu propio agente de programación recibe el mismo
conocimiento por MCP.

- **Cualquier modelo**: Claude, GPT, Gemini, Copilot, OpenRouter, modelos locales con Ollama y agentes externos
- Adjunta **imágenes**, añade **servidores MCP** y guarda las claves en el **llavero del sistema**
- Un **servidor MCP** y **llms.txt** para que Cursor, VS Code o Zed escriban código Pyzed correcto
- **`pyzed.agents`** lleva el mismo bucle de agente a tus propias apps

## Más de 90 componentes listos para usar

Botones, campos de texto, pestañas, árbol de archivos, paleta de comandos, tablas, gráficos, toasts, diálogos,
un editor de código con resaltado, una terminal y un workspace completo con docks redimensionables. Todos
siguen el tema activo y se pueden personalizar uno a uno.

- Créalos desde código con `pyzed.ui` o colócalos desde la caja de herramientas del diseñador
- Fuentes IBM Plex y unos **2000 iconos Lucide** incluidos

## Pantallas completas, listas para copiar

Paneles de control, un inicio de sesión, ajustes, un chat, un tablero kanban, una tabla de datos, un reproductor
de música y más: pantallas completas y probadas hechas con la biblioteca de componentes. Copia una en tu proyecto y
cambia lo que necesites.

- Cada bloque tiene vista previa **oscura y clara** y su código completo
- Archivos pequeños y legibles: un buen punto de partida para ti o para tu agente de IA

## Claro, oscuro y tus propios temas

One, Ayu y Gruvbox comparten un mismo conjunto de tokens de color, en variantes clara y oscura. Sigue la apariencia del
sistema, cambia de tema en caliente, deriva el tuyo en una línea o importa un archivo de tema de Zed.

- 11 temas incluidos y un mismo conjunto de tokens para todos los componentes
- Temas y colores de acento por ventana

## Interfaces que brillan

Pyzed dibuja en la GPU, así que una app de Python puede parecer un videojuego moderno: **cristal** esmerilado
con desenfoque real del fondo, **bloom** que derrama luz desde las partes brillantes, transparencia, rotación y tus
propios **shaders** WGSL.

<p class="pz-center-link not-content"><a href="https://albakore.github.io/pyzed/es/showcase/">Ver todas las demos y cómo están hechas <span aria-hidden="true">→</span></a></p>

## De Snake a un shoot 'em up de neón

Todo lo que necesita un juego 2D ya está en Pyzed: un canvas en la GPU, un bucle que se ejecuta una vez por
fotograma, las teclas pulsadas en este momento, sprites y partículas, y toda la biblioteca de widgets para menús
y HUDs.

- Tres juegos completos explicados paso a paso: **Snake**, **Breakout** y **Neon Invaders**
- `pz.frames` para un bucle fluido a 60 fps, teclas mantenidas y ratón
- Bloom, brillo y cristal sobre la acción, escritos en Python normal

## Las librerías que ya usas

Pyzed es solo la interfaz: el resto de tu app es Python normal. Demos ejecutables muestran cómo poner un frontend
de escritorio nativo sobre el backend que ya conoces.

- Cliente de **FastAPI** con el servidor dentro del mismo proceso
- **SQLAlchemy** y **SQLModel**: 20.000 filas en una tabla virtual y formularios validados por tus modelos
- El ORM async de **Django**, **httpx** y **Pydantic**, **aiosqlite** y más

## Una GUI de Python para una nueva generación

tkinter, Kivy y PyQt hicieron posibles las apps de escritorio en Python. Pyzed hace que se vean y se sientan como
las herramientas que usas cada día, y es honesto sobre dónde los demás siguen ganando.

## Con todo incluido

Los detalles que convierten un prototipo en una app que da gusto usar.

pyzed dev</code> y <code>pyzed run --reload</code>.',
href: '/pyzed/es/reference/app/#run',
icon: 'rocket',
shot: 'hot-reload-after',
alt: 'Una app actualizada en caliente que conserva su contador de clics',
},
{
title: 'Paleta de comandos y atajos',
text: 'Comandos con atajos de teclado, búsqueda difusa y buscador de archivos, listos para tu app.',
href: '/pyzed/es/guides/keyboard/',
icon: 'magnifier',
shot: 'zed-command-palette',
alt: 'La paleta de comandos abierta sobre el editor',
wide: true,
},
{
title: 'Filas, columnas, grids y docks',
text: 'Layouts flex, grids al estilo CSS con pistas <code>fr</code>, scroll y un workspace con docks que se arrastran y redimensionan.',
href: '/pyzed/es/guides/layout/',
icon: 'seti:html',
shot: 'tutorials/layout',
alt: 'Un layout en grid con una cabecera que ocupa varias columnas y filas flex',
wide: true,
},
{
title: 'Async y varias ventanas',
text: 'Los callbacks <code>async</code> nunca congelan la interfaz; <code>pz.every</code> y <code>pz.listen</code> gestionan temporizadores y streams; cada <code>pz.Window</code> tiene su propio tema.',
href: '/pyzed/es/guides/windows/',
icon: 'random',
},
{
title: 'Idiomas',
text: 'Traduce con <code>pz.t</code> y cambia de idioma con la app en marcha, plurales incluidos.',
href: '/pyzed/es/guides/i18n/',
icon: 'translate',
},
{
title: 'Distribúyela: pyzed build',
text: 'Un comando empaqueta tu proyecto como app independiente para Windows, macOS o Linux, con Python dentro.',
href: '/pyzed/es/packaging/build/',
icon: 'download',
},
{
title: 'Multiplataforma',
text: 'Linux, macOS y Windows, renderizado con wgpu y tiny-skia como respaldo cuando no hay GPU.',
href: '/pyzed/es/getting-started/installation/',
icon: 'laptop',
},
{
title: 'Canvas y gráficos',
text: 'Dibuja formas, trazos y texto con transformaciones y eventos de ratón, o usa los gráficos ya hechos.',
href: '/pyzed/es/guides/canvas/',
icon: 'analytics',
},
{
title: 'Capturas sin ventana',
text: '<code>app.screenshot("ui.png")</code> renderiza fuera de pantalla para tests y documentación. Todas las imágenes de esta web se hacen así.',
href: '/pyzed/es/guides/testing/',
icon: 'approve-check-circle',
wide: true,
},
{
title: 'Arquitectura sencilla',
text: 'Estado, <code>update</code> y <code>view</code> sin ceremonia: un botón puede llamar directamente a <code>self.guardar</code>.',
href: '/pyzed/es/guides/how-it-works/',
icon: 'information',
},
]}
/>

## Una app en 20 líneas

¿Prefieres escribirlo todo a mano? Pyzed es una librería de Python normal. Esta es una app completa:

```python title="counter.py"
import pyzed as pz
from pyzed import ui

class Counter(pz.App):
    title = "Counter"
    size = (360, 220)

    def __init__(self):
        self.count = 0

    def add(self, step):
        self.count += step

    def view(self):
        return pz.center(pz.column([
            ui.heading(str(self.count)),
            pz.row([
                ui.button("1", lambda: self.add(-1), icon="minus"),
                ui.button("1", lambda: self.add(1), icon="plus", variant="solid"),
                ui.icon_button("rotate-ccw", lambda: setattr(self, "count", 0)),
            ], spacing=8),
        ], spacing=16, align="center"), bg=self.theme.editor)

pz.run(Counter)
```

## Explora la documentación

Elige por dónde empezar.

- [Inicio rápido](https://albakore.github.io/pyzed/es/getting-started/quickstart/): Instala Pyzed y crea tu primera ventana.
- [Biblioteca de componentes](https://albakore.github.io/pyzed/es/library/): Cada componente con su vista previa, qué hace y cómo usarlo.
- [Manual de Pyzed Design](https://albakore.github.io/pyzed/es/editor/): Cada panel del editor explicado, con trucos y atajos.
- [Bloques](https://albakore.github.io/pyzed/es/blocks/): Pantallas completas para copiar: panel de control, inicio de sesión, ajustes, chat, kanban…
- [Demos](https://albakore.github.io/pyzed/es/showcase/): Cristal, bloom, shaders e interfaces de videojuego, con su código.
- [Crear videojuegos](https://albakore.github.io/pyzed/es/games/): Snake, Breakout y Neon Invaders, paso a paso.
- [Integraciones](https://albakore.github.io/pyzed/es/integrations/overview/): FastAPI, SQLAlchemy, SQLModel, Django, httpx y Pydantic.
- [Pyzed para agentes de IA](https://albakore.github.io/pyzed/es/ai/): El agente del diseñador, el servidor MCP, llms.txt y pyzed.agents.
- [Por qué Pyzed](https://albakore.github.io/pyzed/es/why/): Cómo se compara Pyzed con tkinter, Kivy, PyQt y Flet, con benchmarks.
- [Tutorial: lista de tareas](https://albakore.github.io/pyzed/es/tutorials/basic/todo-app/): Estado, formularios, listas y atajos paso a paso.

**Empieza a construir hoy**

Libre y de código abierto. Descarga el diseñador como app independiente o instala la librería con pip.
