SuperAPI AI 工具集

tauri-app-shell

编程与开发

查看项目

更新于 10-16 07:53

技能介绍

用途

tauri-app-shell 用于在 Tauri v2 应用中安全地执行系统命令和打开外部 URL。它基于 Tauri v2 的 shell 插件,帮助开发者完成从插件安装、注册到权限配置和前端调用的完整流程。当用户提到从 Tauri 应用执行系统命令、shell 插件权限与命令白名单、通过 shell 打开外部 URL(作为 opener 插件的替代方案)等需求时,应使用该技能。触发短语包括 "shell"、"execute command"、"spawn process"、"allow-execute"、"system command"。

主要能力

  • 安装 shell 插件:cargo add tauri-plugin-shell
  • 在 Tauri builder 中注册插件:
tauri::Builder::default()
    .plugin(tauri_plugin_shell::init())
  • 在 src-tauri/capabilities/default.json 中配置严格白名单:
{
  "permissions": [
    {
      "identifier": "shell:allow-execute",
      "allow": [{ "name": "git", "cmd": "git", "args": ["status"] }]
    },
    "shell:allow-open"
  ]
}
  • 从前端执行命令并处理输出:
import { Command } from '@tauri-apps/plugin-shell';
const output = await Command.create('git', ['status']).execute();
console.log('stdout:', output.stdout);
  • 提供安全优先的配置方式(该插件属于高风险插件)

使用方式

  1. 安装 shell 插件:cargo add tauri-plugin-shell
  2. 在 Tauri builder 中注册插件:.plugin(tauri_plugin_shell::init())
  3. 在 src-tauri/capabilities/default.json 中配置严格白名单,使用 shell:allow-execute 指定允许的命令与参数,使用 shell:allow-open 允许打开外部 URL
  4. 在前端通过 @tauri-apps/plugin-shell 的 Command.create 创建并执行命令,读取 output.stdout 等输出

关键安全要求:必须应用严格白名单——shell 插件风险很高,绝不允许任意命令执行。当需要动态输入时,应对参数使用正则约束,并校验所有用户提供的参数。

适用场景

  • 从 Tauri 应用执行系统命令
  • 配置 shell 插件权限与命令白名单
  • 通过 shell 打开外部 URL(作为 opener 插件的替代方案)
  • 需要 spawn 子进程或运行系统命令的 Tauri v2 应用

限制

  • 该插件属于高风险插件,必须使用严格白名单,不能允许任意命令执行
  • 动态输入需使用正则约束并校验所有用户提供的参数
  • 参考资料:https://v2.tauri.app/plugin/shell/