> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Construye tu primera funcionalidad

Un recorrido de extremo a extremo desde un cambio nativo del shell hasta una ventana verificada.

## Guía paso a paso para principiantes

Requisitos previos: lea las dos guías para principiantes a continuación, termine la configuración local de Desktop y abra este repositorio en su raíz en su editor. El shell lee SUPASTACK_APP_URL como configuración de terminal cuando inicia, no desde un archivo .env guardado.

Términos breves: un espacio de trabajo son los usuarios, datos y configuraciones separados de un equipo. El servidor es el backend confiable; Mantenga las claves del proveedor fuera del código del navegador y del teléfono. Una migración es un cambio de base de datos versionada que crea o actualiza tablas. Un modelo de IA es el motor que responde; el catálogo de modelos es la lista del servidor de ID de modelos disponibles y precios. Un proveedor es un servicio externo, como inteligencia artificial, correo electrónico o servicio de facturación. Un derecho es una concesión que permite que un espacio de trabajo utilice una función. Un webhook es un mensaje que un servicio envía al URL de otro servicio.

1. Abra `.agents/skills/add-a-desktop-capability/SKILL.md` —o pida a su agente de codificación que lo siga— y haga un pequeño cambio nativo, por ejemplo una nueva entrada del menú Ver o un atajo de invocación diferente.

2. Ejecute `cargo check`, inicie el shell y ejercite el cambio en la ventana abierta.

3. Repita en cada sistema operativo que planee distribuir: el comportamiento de bandeja, atajo y menú difiere por plataforma.

Para código personalizado, nombre el comportamiento, el menú o atajo que afecta y qué debería suceder en cada SO. Dé a su agente de codificación esta tarea y pídale que lea `AGENTS.md`, `.ai/PROJECT_CONTEXT.md` y los espejos `.ai/` de los archivos que tocará; que enumere archivos y verificaciones antes de editar; y que le muestre el diff. Use valores de ejemplo; nunca pegue un secreto real.

[Antes de comenzar](https://supastack.dev/es/docs/desktop/before-you-start.md)

[Conceptos básicos de terminales](https://supastack.dev/es/docs/desktop/terminal-basics.md)

[Configuración local de escritorio](https://supastack.dev/es/docs/desktop/ship-in-5-minutes.md)

[Mensajes del agente y memoria del proyecto](https://supastack.dev/es/docs/desktop/agents.md)


## Decidir primero si es nativo o producto

Todo lo que un usuario experimenta como UI de producto —pantallas, datos, configuración— pertenece a la aplicación web y llega a la ventana automáticamente. Solo el comportamiento a nivel de SO pertenece a Rust: ventanas, bandeja, menús, atajos globales, inicio al iniciar sesión y comprobaciones de actualización.

```
apps/desktop/src-tauri/src/lib.rs
apps/desktop/src-tauri/tauri.conf.json
apps/desktop/src-tauri/capabilities/default.json
```


## Mantener ajustada la sandbox de la webview

La webview solo puede llamar a lo que `capabilities/default.json` enumera. Un cambio que necesita un nuevo plugin agrega el crate en `Cargo.toml`, lo registra en `lib.rs` y otorga el permiso mínimo en capabilities, nunca un comodín.

El estado persistente del shell —posición de la ventana, zoom, canal de actualización, preferencias de ventana— vive en el directorio de datos de la aplicación a través de los sidecars incluidos, no en archivos que usted gestiona a mano.


## Verificar en cada SO de destino

Ejecute cargo test, luego una ventana real en Windows, macOS y Linux: restauración del estado de la ventana, cierre a bandeja, enfoque de instancia única y el atajo de invocación con su cambio activo. Un SO que pasa no prueba los otros dos.

[Menús nativos y preferencias de ventana](https://supastack.dev/es/docs/desktop/menus.md)

[Lista de verificación de pruebas de Desktop](https://supastack.dev/es/docs/desktop/testing.md)


## Siguiente

[Construye con un agente de código](https://supastack.dev/es/docs/desktop/agents.md)
