Professional Tauri desktop (and mobile) apps: Rust core, invoke/commands, capabilities/permissions, webview integration, bundling, and cross-platform edge cases. Use this skill when the user works on Tauri (`src-tauri`, `#[tauri::command]`, `invoke`, `tauri.conf`, plugins, updater, sidecars), Rust–frontend boundaries, or packaging Tauri for Windows/macOS/Linux. Use **with** **`react-pro`** (or Vue/Svelte) for SPA patterns in the webview, **`security-pro`** for capability/CSP/shell hardening, **`testing-pro`** for CI and E2E. This skill (`tauri-pro`) owns **Tauri + Rust integration**; front-end framework skills own **component UI** details. Triggers: "Tauri", "tauri", "src-tauri", "tauri.conf", "invoke", "tauri::command", "WebView", "WebView2", "Rust desktop", "Tauri plugin", "Tauri updater".
Use official Tauri documentation for your major version (1 vs 2 — capabilities and config differ); this skill encodes command boundaries, permission hygiene, and shipping desktop bundles. Confirm Tauri major, Rust toolchain, and front-end stack (Vite + React/Vue/Svelte).
Webview UI component patterns: skill react-pro when using React.
| Skill | When to combine with tauri-pro |
|---|---|
react-pro | React (or solid) in webview — hooks, state, a11y |
security-pro | Threat modeling, CSP, path/shell abuse cases |
testing-pro| Rust tests, web E2E against built app, CI matrices |
electron-pro — Node/Chromium desktop stack; use when the project is Electron, not Tauri.
invoke contracts; error handling to the UI.Tauri, invoke, src-tauri, tauri.conf, command, capability, plugin, …references/ when you need depth; defer pure React questions to react-pro.#[tauri::command] handlers; invoke from JS/TS; serialize errors safely.Details: references/rust-core-and-commands.md
Details: references/tips-and-tricks.md
Details: references/edge-cases.md
tauri.conf snippet, or front-end invoke — not generic SPA-only advice unless delegated.references/ — Rust/commands, tips, edge cases.| Topic | File |
|---|---|
| Rust core & commands | references/rust-core-and-commands.md |
| Tips and patterns | references/tips-and-tricks.md |
| Edge cases | references/edge-cases.md |
Input: Front end calls invoke('run_script', userPath) and Rust uses std::process::Command with shell true.
Expected output: Forbid shell interpolation on user paths; use fixed programs + args list; narrow capability to specific use case; cite security-pro for command injection pattern.
react-pro when that is the whole question.