For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /fr/docs/desktop.md (or send Accept: text/markdown).
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
- Bases du terminal
- Configuration locale du bureau
- Invites de l'agent et mémoire du projet
# 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 devUne 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.
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.
