> ## 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

# Ejecuta y configura la shell

Inicia la shell de desarrollo de Tauri y conéctala a tu app web.

## Guía paso a paso para principiantes

Requisitos previos: lea las dos guías para principiantes que aparecen a continuación y finalice la configuración local del escritorio, incluidos Rust y los requisitos previos del sistema operativo. El bloque de código inicia tanto la aplicación web como Tauri en el monorepo; en un pago solo de escritorio, use su comando filtrado solo después de iniciar un backend web accesible por separado. Tauri carga ese backend.

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 `apps/desktop/src-tauri/src/lib.rs`; Pídale a su agente que cambie solo el comportamiento de la ventana/bandeja/tecla de acceso rápido con nombre y mantenga la interfaz de usuario del producto en la aplicación web.

2. Ejecute el shell y pruebe cerca de la bandeja, Salir y `CmdOrCtrl+Shift+Space`; prueba `supastack:///settings/appearance?preview=1#main`.

3. Debería centrarse en la ventana existente y preservar la ruta/consulta/fragmento. Si abre la página incorrecta, compare el origen configurado y la ruta exacta.

Para obtener código personalizado, comience con el `prompts/README.md` proporcionado y copie el mensaje más cercano: `prompts/new-app-screen.md` para una pantalla de aplicación o `prompts/new-landing-page.md` para una página pública. Para trabajos de servidor, base de datos o proveedor, asigne a su agente de codificación la tarea de esta guía y pídale que lea `AGENTS.md`, `.ai/PROJECT_CONTEXT.md` y los espejos `.ai/` correspondientes; inspeccionar los archivos fuente exactos nombrados aquí; enumerar archivos y verificaciones antes de editarlos; preservar la propiedad del espacio de trabajo y los secretos exclusivos del servidor; y mostrarte la diferencia. Dígale el comportamiento que desea, los campos de entrada y salida, los roles permitidos, los éxitos y errores esperados y la cuenta, proveedor o dispositivo de prueba. Utilice valores de muestra; Nunca pegues un verdadero secreto.

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

[Conceptos básicos de terminales](https://supastack.dev/es/docs/web/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/web/agents.md)

```
# Monorepo: start the web app and desktop shell together
corepack pnpm dev:desktop

# Desktop-only checkout: start Tauri after a web backend is already reachable
corepack pnpm --filter @supastack/desktop dev
```


## Mantén el comportamiento del shell en Rust

`src-tauri/src/lib.rs` crea la ventana webview principal de 1200×800. Al cerrar, se oculta en la bandeja; Salir termina la aplicación. Los menús nativos ofrecen Inicio/Atrás/Adelante/Recargar, zoom/pantalla completa y acciones de ventana. La restauración del estado conserva tamaño/posición.


## Gestiona los enlaces y la invocación

El shell acepta rutas `supastack://` y las resuelve con el origen HTTP(S) exacto configurado para la aplicación. Por ejemplo, `supastack:///settings/appearance?preview=1#main` se convierte en `/workspace/settings?tab=billing#plans`; `supastack:///auth/callback?code=...` se asigna a `/auth/callback?code=...`. Se conservan las consultas y los fragmentos.

Los enlaces de inicio se aplican antes de mostrar la primera ventana. Los enlaces recibidos durante la ejecución en macOS usan `on_open_url` de Tauri; los argumentos de una segunda instancia en Windows y Linux pasan por el callback de instancia única con la función `deep-link` habilitada. Los enlaces válidos enfocan y navegan la ventana existente.

Solo permanecen dentro del shell los enlaces HTTP(S) sin credenciales cuyo esquema, host y puerto efectivo coincidan exactamente con la configuración. Los enlaces HTTP(S) sin credenciales, `mailto:` y `tel:` pueden abrirse externamente; se rechazan los enlaces mal formados, las credenciales, los esquemas no admitidos, los puertos en enlaces personalizados y los intentos de atravesar rutas. La URL de backend configurada también rechaza credenciales y utiliza el siguiente origen válido o predeterminado.

```
SUPASTACK_APP_URL=https://your-app.example
SUPASTACK_DESKTOP_HOTKEY=CmdOrCtrl+Shift+Space

supastack:///settings/appearance?preview=1#main
# Opens https://your-app.example/workspace/settings?tab=billing#plans
```


## Verifica el comportamiento específico de cada plataforma

La superposición sin conexión inyectada ofrece Reintentar, se oculta al volver a estar en línea y recarga la aplicación web. Prueba el foco, los atajos, el zoom de menú, la bandeja y la invocación de enlaces profundos en cada sistema operativo de destino; las comprobaciones unitarias de URL por sí solas no demuestran esas interacciones nativas.

[Aceptación de escritorio](https://supastack.dev/es/docs/desktop/release.md)


## Configuración y ajustes

Instale las dependencias del espacio de trabajo y la cadena de herramientas Rust más los requisitos previos por sistema operativo de Tauri (WebView2 se envía con Windows; macOS y Linux necesitan sus paquetes documentados). corepack pnpm --filter @supastack/desktop dev ejecuta tauri dev: construye el núcleo de Rust, muestra la interfaz de usuario del marcador de posición y carga la aplicación resuelta URL.

SUPASTACK_APP_URL se lee primero en tiempo de ejecución y, si no existe, usa el valor incluido durante la compilación. Solo se aceptan URL HTTP(S) sin credenciales; si no, se prueba el siguiente valor. SUPASTACK_DESKTOP_HOTKEY sustituye el atajo predeterminado CmdOrCtrl+Shift+Space. Un valor no válido vuelve al atajo predeterminado y no impide el inicio.

```
corepack pnpm --filter @supastack/desktop dev
corepack pnpm --filter @supastack/desktop typecheck

SUPASTACK_APP_URL=https://app.example.com \
SUPASTACK_DESKTOP_HOTKEY=CmdOrCtrl+Shift+Space \
corepack pnpm --filter @supastack/desktop dev
```


## Flujo de implementación

La ventana principal solo navega por el origen configurado exacto, incluido el protocolo y el puerto. Los enlaces HTTP(S) sin credenciales, mailto y tel pueden abrirse en el navegador del sistema; los protocolos no aprobados se cancelan.

Los enlaces supastack:// registrados trasladan su ruta, consulta y fragmento al origen configurado de la app. El inicio, los eventos del sistema al abrir una URL y las llamadas de una segunda instancia aplican la misma validación, de modo que un enlace profundo no puede redirigir la shell a otro host.

El icono de la bandeja y el atajo global muestran y enfocan la única ventana principal. Si el atajo no se registra, otra aplicación suele estar usando la combinación; elige otro SUPASTACK_DESKTOP_HOTKEY.


## Verificación y solución de problemas

Después de cambiar src-tauri, ejecuta cargo check y cargo test mediante los scripts del paquete. A continuación, verifica la navegación al origen exacto, la apertura de enlaces externos permitidos, una ruta supastack:// en el origen configurado de la app, la bandeja y el atajo, y la persistencia del inicio de sesión tras reiniciar.


Si quieres continuar la configuración, lee [Crear las cuentas de lanzamiento de escritorio](https://supastack.dev/es/docs/desktop/external-accounts.md).


## Siguiente

[Crear las cuentas de lanzamiento de escritorio](https://supastack.dev/es/docs/desktop/external-accounts.md)
