Ajouter une commande Tauri

VérifiéSûr

Checklist complète pour ajouter, renommer ou modifier une commande Tauri, incluant Rust, TypeScript, tests et capacités.

Spar Skills Guide Bot
DeveloppementIntermédiaire
23/07/2026
Claude CodeCursorCodex
#tauri#ipc#rust#typescript#bindings

Recommandé pour

Synthèse automatique

Guide pas à pas pour ajouter, renommer ou modifier une commande Tauri côté src-tauri, en gardant le noyau Rust et l'interface React typés de bout en bout.

Points forts

  • Liste de contrôle ordonnée couvrant module de domaine, signature, enregistrement, bindings, wrapper TS, tests et capacités
  • Rappelle les pièges réels de Tauri : second invoke_handler ignoré, erreurs en String qui perdent le discriminant, events au lieu de Channel<T> pour le streaming
  • Impose une séparation claire entre commande fine et logique métier déplacée dans engine / db / jobs
  • Couvre la régénération des bindings specta et les tests des deux côtés, y compris mockIPC et clearMocks

Limites

  • Suppose une stack précise (specta, TanStack Query, justfile, structure commands/<domain>.rs) et s'applique mal à un projet Tauri organisé autrement
  • Ne détaille pas le contenu du code à écrire ni les variantes de signature, seulement la checklist
  • Dépend de commandes externes (just bindings, just check) dont le comportement n'est pas décrit
Quand l'utiliser

À utiliser dès qu'on touche à la surface IPC d'une application Tauri : nouvelle commande, renommage ou changement de signature.

Quand l'éviter

À éviter pour du travail frontend sans IPC, ou sur un projet Tauri sans specta ni conventions de dossiers similaires.

Analyse de sécurité

Sûr
Score qualité90/100

The skill is a documentation-only checklist for adding Tauri commands. It does not execute commands, handle secrets, modify system state, or instruct destructive/network exfiltration actions. References to `just check` and bindings generation are normal developer workflow steps without embedded payloads.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

New command end to end
Add a Tauri command that exports the current project to PDF, register it, regenerate the bindings, and wire it to a React button with a typed wrapper and a test.
Rename and change signature
Rename the `save_note` Tauri command to `update_note` and change it to take a note id plus the updated body, then update the bindings, TS wrapper, and tests.
Streaming progress
Add a Tauri command that runs a long import job and streams progress to the UI — use Channel<T> rather than events, and add Rust and TS tests.

name: add-tauri-command description: Use when adding, renaming, or changing the signature of a Tauri command in src-tauri — any new IPC surface between the Rust core and the React UI.

Add a Tauri command

End-to-end checklist. A command is not "done" until both sides are typed and tested.

Checklist (todo per item)

  1. Domain module. Add the command to src-tauri/src/commands/<domain>.rs (create the domain file if new — never a catch-all module). Name: snake_case verb phrase, one command per user-facing action.
  2. Signature. async fn if it does I/O; owned params; State<'_, AppState> for state; Channel<T> param if it streams. Returns Result<T, Error> (the app error enum — add a variant if no existing one fits; wrap engine errors via #[from]).
  3. Thin shell. Body = unwrap args → call engine / db/ repository / jobs layer → map errors. If you're writing SQL or business logic inside the command, stop and move it down a layer.
  4. Register. Add to the single generate_handler![...] list in lib.rs (and to tauri_specta::Builder command list). There is exactly one registration site.
  5. Regenerate bindings. Run the specta export (see justfile: just bindings) so src/lib/ipc/bindings.gen.ts updates. Never hand-edit that file.
  6. Typed wrapper. Expose it from src/lib/ipc/<domain>.ts re-exporting the generated function with any ergonomics (query-key helpers for TanStack Query). Feature code imports the wrapper, never the bindings file or raw invoke.
  7. Tests, both sides. Rust: unit test for the layer the command delegates to (the command itself stays thin enough not to need one); if the command has branching, test it with a test AppState. TS: if a hook/component consumes it, mock via mockIPC in the colocated test.
  8. Capabilities. If the command needs a plugin permission, add it to the relevant file in src-tauri/capabilities/ (per-concern files, minimum scope).
  9. Gate. just check.

Common mistakes

  • Registering in a second invoke_handler call — Tauri silently keeps only the last one.
  • Returning String errors — the frontend loses the kind discriminant.
  • Streaming via events instead of Channel<T> — events are broadcast and unordered per docs; channels are the streaming path.
  • Forgetting clearMocks() in the TS test — IPC mocks leak across tests.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/add-a-tauri-command-mrx3y02b/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/add-a-tauri-command-mrx3y02b' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/add-a-tauri-command-mrx3y02b/download' --output '.skill-downloads/add-a-tauri-command-mrx3y02b/SKILL.md.part' && mv '.skill-downloads/add-a-tauri-command-mrx3y02b/SKILL.md.part' '.skill-downloads/add-a-tauri-command-mrx3y02b/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/add-a-tauri-command-mrx3y02b/SKILL.md' && test -s '.skill-downloads/add-a-tauri-command-mrx3y02b/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/add-tauri-command' && cp -R '.skill-downloads/add-a-tauri-command-mrx3y02b' '.claude/skills/add-tauri-command'

Cursor
test -f '.skill-downloads/add-a-tauri-command-mrx3y02b/SKILL.md' && test -s '.skill-downloads/add-a-tauri-command-mrx3y02b/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/add-tauri-command' && cp -R '.skill-downloads/add-a-tauri-command-mrx3y02b' '.cursor/skills/add-tauri-command'

Codex
test -f '.skill-downloads/add-a-tauri-command-mrx3y02b/SKILL.md' && test -s '.skill-downloads/add-a-tauri-command-mrx3y02b/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/add-tauri-command' && cp -R '.skill-downloads/add-a-tauri-command-mrx3y02b' '.agents/skills/add-tauri-command'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/add-a-tauri-command-mrx3y02b'

openskills read 'add-a-tauri-command-mrx3y02b'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/add-a-tauri-command-mrx3y02b/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires