Token导航 LogoToken导航TokenDH.com
前端设计敏感数据github未标认证来源可访问clear审计异常

migrating-tauri-appsmigrating Tauri apps 命令行

Agent Skill

migrating-tauri-apps 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,296

周安装

54

GitHub Stars

18

下载量

432
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:migrating-tauri-apps(migrating Tauri apps 命令行)
来源仓库:https://github.com/dchuk/claude-code-tauri-skills
仓库路径:skills/migrating-tauri-apps
安装命令:
npx skills add https://github.com/dchuk/claude-code-tauri-skills --skill migrating-tauri-apps
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/dchuk/claude-code-tauri-skills --skill migrating-tauri-apps

简介

migrating-tauri-apps 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装并使用。
  • 安装前需确认权限范围和维护状态,注意是否触发联网、命令执行或文件读写操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Tauri Migration Guide

This skill covers migrating Tauri applications to v2 stable from either v1 or v2 beta.

Migration Paths

Source VersionTargetComplexity
Tauri v1.xv2 stableHigh - significant breaking changes
Tauri v2 betav2 stableLow - minor breaking changes

Automated Migration

Both migration paths support automated migration via the Tauri CLI:

# Install latest CLI first
npm install @tauri-apps/cli@latest

# Run migration
npm run tauri migrate
# or: yarn tauri migrate | pnpm tauri migrate | cargo tauri migrate

IMPORTANT: The migrate command automates most tasks but is NOT a complete substitute for manual review. Always verify changes after running.


V1 to V2 Migration

Configuration File Changes

BREAKING: Top-Level Structure Changes

Before (v1):

{
  "package": {
    "productName": "my-app",
    "version": "1.0.0"
  },
  "tauri": {
    "bundle": { ... },
    "allowlist": { ... }
  }
}

After (v2):

{
  "productName": "my-app",
  "version": "1.0.0",
  "mainBinaryName": "my-app",
  "identifier": "com.example.myapp",
  "app": { ... },
  "bundle": { ... }
}

Key Renames

v1 Pathv2 Path
package.productNameproductName (top-level)
package.versionversion (top-level)
tauriapp
tauri.bundlebundle (top-level)
tauri.bundle.identifieridentifier (top-level)
tauri.systemTrayapp.trayIcon
build.distDirfrontendDist
build.devPathdevUrl

BREAKING: New Required Field

Add mainBinaryName matching your productName - this is no longer automatic:

{
  "productName": "My App",
  "mainBinaryName": "My App"
}

Bundle Configuration Reorganization

Platform-specific bundle configs moved under their platform key:

Before:

{
  "tauri": {
    "bundle": {
      "dmg": { ... },
      "deb": { ... }
    }
  }
}

After:

{
  "bundle": {
    "macOS": {
      "dmg": { ... }
    },
    "linux": {
      "deb": { ... }
    }
  }
}

Updater Configuration

If using the app updater, add to bundle config:

{
  "bundle": {
    "createUpdaterArtifacts": "v1Compatible"
  }
}

Use "v1Compatible" for existing distributions to maintain backward compatibility.


BREAKING: Allowlist Replaced with Capabilities

The v1 allowlist system is completely replaced with a capability-based ACL system.

Creating Capabilities

Create JSON files in src-tauri/capabilities/:

src-tauri/capabilities/default.json:

{
  "identifier": "default",
  "description": "Default capabilities for the main window",
  "windows": ["main"],
  "permissions": [
    "core:default",
    "shell:allow-open",
    "dialog:allow-open",
    "fs:allow-read-text-file"
  ]
}

The tauri migrate command auto-generates capabilities from your v1 allowlist.


Cargo.toml Changes

Removed Features

These features no longer exist in v2:

  • reqwest-client
  • reqwest-native-tls-vendored
  • process-command-api
  • shell-open-api
  • windows7-compat
  • updater
  • system-tray

New Features

  • linux-protocol-body - Custom protocol request body parsing support

BREAKING: API Module Removal

The entire api module is removed. Functionality moved to plugins:

v1 APIv2 Replacement
tauri::api::dialogtauri-plugin-dialog
tauri::api::httptauri-plugin-http
tauri::api::processtauri-plugin-process
tauri::api::path functionstauri::Manager::path

BREAKING: Rust API Changes

Removed APIs

v1v2 Alternative
App::clipboard_managertauri-plugin-clipboard-manager
App::global_shortcut_managertauri-plugin-global-shortcut
App::get_cli_matchestauri-plugin-cli
tauri::updatertauri-plugin-updater

Renamed Types/Methods

v1v2
WindowWebviewWindow
Manager::get_windowManager::get_webview_window

Menu API Changes

Before:

use tauri::{Menu, CustomMenuItem};
let menu = Menu::new()
    .add_item(CustomMenuItem::new("quit", "Quit"));

After:

use tauri::menu::{MenuBuilder, MenuItemBuilder};
let menu = MenuBuilder::new(app)
    .item(&MenuItemBuilder::with_id("quit", "Quit").build(app)?)
    .build()?;

Tray API Changes

Before:

use tauri::SystemTray;
SystemTray::new().with_menu(menu);

After:

use tauri::tray::TrayIconBuilder;
TrayIconBuilder::new()
    .menu(&menu)
    .on_menu_event(|app, event| { ... })
    .on_tray_icon_event(|tray, event| { ... })
    .build(app)?;

BREAKING: JavaScript API Changes

Package Renames

v1v2
@tauri-apps/api/tauri@tauri-apps/api/core
@tauri-apps/api/window@tauri-apps/api/webviewWindow

Core API Reduction

The core @tauri-apps/api package now only includes:

  • core
  • path
  • event
  • webviewWindow

All other APIs require plugin packages.


BREAKING: Plugin Migration

All formerly built-in APIs are now separate plugins:

v1 Importv2 Plugin Package
@tauri-apps/api/cli@tauri-apps/plugin-cli
@tauri-apps/api/clipboard@tauri-apps/plugin-clipboard-manager
@tauri-apps/api/dialog@tauri-apps/plugin-dialog
@tauri-apps/api/fs@tauri-apps/plugin-fs
@tauri-apps/api/global-shortcut@tauri-apps/plugin-global-shortcut
@tauri-apps/api/http@tauri-apps/plugin-http
@tauri-apps/api/notification@tauri-apps/plugin-notification
@tauri-apps/api/os@tauri-apps/plugin-os
@tauri-apps/api/process@tauri-apps/plugin-process
@tauri-apps/api/shell@tauri-apps/plugin-shell
@tauri-apps/api/updater@tauri-apps/plugin-updater

Installing Plugins

# JavaScript
npm install @tauri-apps/plugin-fs

# Rust (add to Cargo.toml)
cargo add tauri-plugin-fs

Register plugins in your Rust code:

fn main() {
    tauri::Builder::default()
        .plugin(tauri_plugin_fs::init())
        .run(tauri::generate_context!())
        .expect("error running app");
}

BREAKING: File System Plugin Changes

Function renames in @tauri-apps/plugin-fs:

v1v2
createDirmkdir
readBinaryFilereadFile
writeBinaryFilewriteFile
removeDirremove
removeFileremove
renameFilerename
Dir enumBaseDirectory

BREAKING: Event System Changes

v1v2
emit()Broadcasts to ALL listeners (behavior change)
N/Aemit_to() - target specific event targets
listen_globallisten_any

BREAKING: Windows Origin URL

Production Windows apps now serve from http://tauri.localhost instead of https://.

Impact: IndexedDB and cookies will reset unless you preserve the old behavior:

{
  "app": {
    "windows": [{
      "useHttpsScheme": true
    }]
  }
}

BREAKING: Environment Variables

v1v2
TAURI_PRIVATE_KEYTAURI_SIGNING_PRIVATE_KEY
TAURI_KEY_PASSWORDTAURI_SIGNING_PRIVATE_KEY_PASSWORD
TAURI_DEV_SERVER_PORTTAURI_CLI_PORT
Platform variablesNow prefixed TAURI_ENV_

Mobile Support Setup

To target mobile alongside desktop:

1. Update Cargo.toml:

[lib]
name = "app_lib"
crate-type = ["staticlib", "cdylib", "rlib"]

2. Rename src/main.rs to src/lib.rs:

#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
    tauri::Builder::default()
        .run(tauri::generate_context!())
        .expect("error running app");
}

3. Create new src/main.rs:

fn main() {
    app_lib::run();
}

V2 Beta to V2 Stable Migration

BREAKING: Core Permission Prefix

All core permissions now require the "core:" prefix:

Before (beta):

{
  "permissions": [
    "path:default",
    "event:default",
    "window:default"
  ]
}

After (stable):

{
  "permissions": [
    "core:path:default",
    "core:event:default",
    "core:window:default"
  ]
}

Simplified alternative: Use "core:default" to include all default core permissions:

{
  "permissions": ["core:default"]
}

BREAKING: Mobile Dev Server Configuration

The mobile development server no longer exposes across networks. Traffic tunnels directly from local machine to devices.

Before (beta):

const mobile = !!/android|ios/.exec(process.env.TAURI_ENV_PLATFORM);
export default {
  server: {
    host: mobile ? '0.0.0.0' : false
  }
};

After (stable):

const host = process.env.TAURI_DEV_HOST;
export default {
  server: {
    host: host || false
  }
};

Remove dependency on the internal-ip NPM package if previously used.

iOS Device Development: Requires additional steps. Use:

tauri ios dev --force-ip-prompt

Select the device's TUN address when prompted.


Migration Checklist

V1 to V2

  • Run npm run tauri migrate
  • Verify config structure changes (package -> top-level)
  • Add mainBinaryName field
  • Update bundle config structure
  • Replace allowlist with capabilities
  • Install required plugins
  • Update Rust imports (Window -> WebviewWindow)
  • Update JS imports (@tauri-apps/api/tauri -> core)
  • Update FS function names if using fs plugin
  • Update environment variable names
  • Test event system behavior
  • Verify Windows origin URL handling (IndexedDB/cookies)
  • Update menu/tray code if used
  • Remove deprecated Cargo features

V2 Beta to V2 Stable

  • Run npm run tauri migrate
  • Add core: prefix to permission identifiers (or use core:default)
  • Update mobile dev server configuration
  • Remove internal-ip package dependency if present
  • Test iOS device development with --force-ip-prompt

Common Issues

IssueSolution
Permission denied errorsCheck src-tauri/capabilities/ files for required permissions
IndexedDB/localStorage lost (Windows)Set useHttpsScheme: true in window config
Plugin not foundAdd to Cargo.toml, register with .plugin(), install npm package
Mobile build failsVerify [lib] section in Cargo.toml and src/lib.rs with mobile entry point

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Antigravity

25.92%
按下载量换算112

Claude Code

22.05%
按下载量换算95

windsurf

18.73%
按下载量换算81

Gemini CLI

13.8%
按下载量换算60

OpenCode

7.96%
按下载量换算34

Codex

2.97%
按下载量换算13

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。

来源信息

继续浏览同类 Skills