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

# Présentation du bureau

Un shell webview Tauri autour de la même application web — une présence, pas un second produit.

## Parcours pas à pas pour débuter

Conditions préalables : lisez les deux guides pour débutants ci-dessous et terminez la configuration locale du bureau, y compris les conditions préalables de Rust et du système d'exploitation. Le bloc de code démarre à la fois l'application Web et Tauri dans le monorepo ; dans une extraction sur ordinateur uniquement, utilisez sa commande filtrée uniquement après avoir démarré séparément un backend Web accessible. Tauri charge ce backend.

Termes rapides : un espace de travail est constitué des utilisateurs, des données et des paramètres distincts d'une équipe. Le serveur est le backend de confiance ; gardez les clés du fournisseur hors du code du navigateur et du téléphone. Une migration est une modification de base de données versionnée qui crée ou met à jour des tables. Un modèle d'IA est le moteur qui répond ; le catalogue de modèles est la liste du serveur des identifiants de modèles et des prix disponibles. Un fournisseur est un service externe tel qu'un service d'IA, de messagerie ou de facturation. Un droit est une subvention qui permet à un espace de travail d'utiliser une fonctionnalité. Un webhook est un message qu'un service envoie au URL d'un autre service.

1. Suivez la configuration locale du bureau, puis ouvrez l'application dans la fenêtre Tauri et connectez-vous au même compte Web que vous utilisez dans un navigateur.

2. Visitez une page d'espace de travail, masquez/affichez la fenêtre de la barre d'état et essayez le raccourci d'invocation.

3. L'écran doit correspondre à l'application Web car Tauri charge le backend configuré. S'il est vide, confirmez que `SUPASTACK_APP_URL` pointe vers une application Web en cours d'exécution accessible.

Pour le code personnalisé, commencez par le `prompts/README.md` fourni et copiez l'invite la plus proche : `prompts/new-app-screen.md` pour un écran d'application ou `prompts/new-landing-page.md` pour une page publique. Pour le travail sur un serveur, une base de données ou un fournisseur, confiez à votre agent de codage la tâche de ce guide et demandez-lui de lire les miroirs `AGENTS.md`, `.ai/PROJECT_CONTEXT.md` et `.ai/` correspondants ; inspectez les fichiers sources exacts nommés ici ; lister les fichiers et les vérifications avant de les modifier ; préserver la propriété de l'espace de travail et les secrets du serveur ; et je vous montre la différence. Indiquez-lui le comportement souhaité, les champs d'entrée et de sortie, les rôles autorisés, les succès et erreurs attendus, ainsi que le compte, le fournisseur ou l'appareil de test. Utilisez des exemples de valeurs ; ne collez jamais un vrai secret.

[Avant de commencer](https://supastack.dev/fr/docs/web/before-you-start.md)

[Bases du terminal](https://supastack.dev/fr/docs/web/terminal-basics.md)

[Configuration locale du bureau](https://supastack.dev/fr/docs/desktop/ship-in-5-minutes.md)

[Invites de l'agent et mémoire du projet](https://supastack.dev/fr/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
```


## Une seule interface produit, un shell natif

`apps/desktop` est une webview Tauri autour de votre application web. Il partage avec le web l’interface produit, l’authentification et le chat ; le comportement natif de fenêtre et de zone de notification se trouve dans `src-tauri/src/lib.rs`. Il a besoin d’un backend web accessible et n’embarque pas d’interface produit indépendante.


## Utiliser les fonctions du shell natif

Le shell fournit un menu de zone de notification, la fermeture vers la zone, la focalisation de l’instance unique, un raccourci global d’affichage, des menus natifs de navigation et d’affichage, l’ouverture des liens externes dans le navigateur système, l’appel du shell par lien profond `supastack://`, la mémorisation de l’état de fenêtre et une couche hors ligne avec action Réessayer.

`SUPASTACK_APP_URL` choisit le backend : valeur d’exécution valide, puis valeur de compilation, puis localhost. `SUPASTACK_DESKTOP_HOTKEY` remplace `CmdOrCtrl+Shift+Space`. Les builds de publication signés injectent `SUPASTACK_UPDATER_ENDPOINT` et `SUPASTACK_UPDATER_PUBKEY` ; lorsque le chemin du point de terminaison contient `{{channel}}`, le menu de l’application active **Beta Updates** (`stable` ou `beta`, remplaçable à l’exécution via `SUPASTACK_UPDATE_CHANNEL`).


## Choisir le parcours bureau

Pour le développement local, lancez le web et le bureau ensemble, puis compilez et vérifiez la cible native avec ses prérequis de plateforme. La signature de store, les installateurs et le comportement physique du bureau exigent une acceptation séparée.

[Configurer le bureau Tauri en 5 minutes](https://supastack.dev/fr/docs/desktop/ship-in-5-minutes.md)

[Comportement de la fenêtre, de la barre d'état et des raccourcis clavier](https://supastack.dev/fr/docs/desktop/run.md)

[Builds de bureau et distribution](https://supastack.dev/fr/docs/desktop/release.md)


## Un shell webview, pas une deuxième application

apps/desktop est un shell Tauri 2.x. Le cœur Rust dans src-tauri gère la fenêtre, la barre d'état système et le raccourci global, tandis qu'une webview charge l'application web. Interface, authentification, billing et AI viennent du même codebase Next.js — la surface desktop ajoute une présence, pas un produit parallèle.

Le shell embarque une page placeholder dans apps/desktop/ui qui s'affiche pendant le chargement de l'application web — un démarrage à froid ne rend jamais une fenêtre vide.


## Pointer le shell vers un déploiement

La cible de la fenêtre se résout dans l'ordre : la variable d'environnement SUPASTACK_APP_URL à l'exécution, puis la valeur de SUPASTACK_APP_URL fixée à la compilation, puis http://localhost:3000. Seules les URL http et https sont acceptées — les valeurs vides ou non web basculent sur le candidat suivant.

Pour le développement, cela signifie que la coque se fixe à tout ce que corepack pnpm dev sert. Pour la production, définissez la variable au moment de la construction pour qu'elle soit intégrée à votre application Web déployée.


## Garder les secrets côté serveur

Le shell ne transporte aucun identifiant de provider. La webview dialogue avec la même surface d'API authentifiée qu'un navigateur — clés de providers, secrets de session et configuration de billing restent sur le serveur.

L'identifiant de bundle com.supastack.desktop et l'ensemble de capabilities par défaut (core:default) maintiennent la webview en sandbox ; n'élargissez les permissions dans src-tauri/capabilities que lorsqu'une fonctionnalité native l'exige.


Pour poursuivre la configuration, consultez [Lancer et configurer l’enveloppe](https://supastack.dev/fr/docs/desktop/run.md).


## Suivant

[Lancer l’application de bureau en 5 minutes](https://supastack.dev/fr/docs/desktop/ship-in-5-minutes.md)
