When to use this skill
ALWAYS use this skill when the user mentions:
- Executing system commands from a Tauri app
- Shell plugin permissions and command allowlists
- Opening external URLs via shell (alternative to opener plugin)
Trigger phrases include:
- "shell", "execute command", "spawn process", "allow-execute", "system command"
How to use this skill
- Install the shell plugin:
cargo add tauri-plugin-shell - Register the plugin in your Tauri builder:
tauri::Builder::default() .plugin(tauri_plugin_shell::init()) - Configure strict allowlists in
src-tauri/capabilities/default.json:{ "permissions": [ { "identifier": "shell:allow-execute", "allow": [{ "name": "git", "cmd": "git", "args": ["status"] }] }, "shell:allow-open" ] } - Execute commands from the frontend:
import { Command } from '@tauri-apps/plugin-shell'; const output = await Command.create('git', ['status']).execute(); console.log('stdout:', output.stdout); - CRITICAL: Apply strict allowlists -- the shell plugin is high-risk; never allow arbitrary command execution
- Use regex constraints on arguments when dynamic input is needed, and validate all user-provided args
Outputs
- Shell plugin setup with strict command allowlists
- Command execution pattern with output handling
- Security-first configuration (this is a high-risk plugin)
References
- https://v2.tauri.app/plugin/shell/
Keywords
tauri shell, execute command, spawn process, allow-execute, system command, security