
Tauri
- 22 installs
- 2 repo stars
- Updated July 29, 2026
- full-statck-skills/tauri-skills
Acts as the primary index and router for Tauri v2 development, pointing to specialized sub-skills for Rust backend, frontend, and plugins.
About
Serves as a token-efficient entry point that routes Tauri requests to specialized sub-skills with local examples and templates. A developer uses it to find the right Tauri v2 sub-skill for setup, plugins, or app configuration.
- Total-index router across Tauri v2 sub-skills
- Local examples and capability templates, offline-ready
Tauri by the numbers
- 22 all-time installs (skills.sh)
- Ranked #1,530 of 2,245 Frontend Development skills by installs in the Skillselion catalog
- Data as of Jul 30, 2026 (Skillselion catalog sync)
npx skills add https://github.com/full-statck-skills/tauri-skills --skill tauriAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 22 |
|---|---|
| repo stars | ★ 2 |
| Last updated | July 29, 2026 |
| Repository | full-statck-skills/tauri-skills ↗ |
What it does
Acts as the primary index and router for Tauri v2 development, pointing to specialized sub-skills for Rust backend, frontend, and plugins.
Files
When to use this skill
Use this skill as the primary entry point for any Tauri-related request. It serves as a "Total Index" (like nvm) that routes you to specific sub-skills.
Why?
- Token Efficiency: Each sub-skill contains local
examples/andtemplates/directories, providing detailed, offline-ready documentation without expensive network searches. - Tauri v2 Ready: All sub-skills are updated for Tauri v2.0+ (plugins, capabilities, permissions).
How to use this skill
1. Identify Intent: Determine if the user needs setup, specific plugin functionality (FS, Dialog, SQL), or core app configuration. 2. Route: Invoke the specific sub-skill listed below. 3. Explore: Inside the sub-skill, use examples/usage.md for step-by-step guides and templates/capabilities.json for permission configs.
Sub-skill Map
Planning & Architecture
tauri-app-planning: START HERE. Requirement analysis, plugin selection, architecture design, and Todo list generation. Includes orchestration patterns.
Core & Lifecycle
tauri-setup: Project initialization and environment setup.tauri-scaffold: Creating files and structures.tauri-app-develop: Development workflow (dev, build, debug).tauri-app-process: Process management and exit handling.tauri-app-updater: Auto-update configuration and API.tauri-mobile: Android and iOS specific development.
System Integration
tauri-app-shell: Spawn sidecars and run system commands.tauri-app-os-info: Get OS version, arch, and locale.tauri-app-clipboard: Read/write to system clipboard.tauri-app-dialog: Native file open/save dialogs and message boxes.tauri-app-notification: System notifications.tauri-app-global-shortcut: Register system-wide keyboard shortcuts.tauri-app-autostart: Launch app on system login.tauri-app-biometric: TouchID/FaceID authentication.tauri-app-opener: Open URLs/files in default apps.tauri-app-deep-linking: Handle custom protocol links (e.g.,myapp://).
Data & Networking
tauri-app-http-client: Rust-based HTTP client (CORS-free).tauri-app-websocket: WebSocket client.tauri-app-upload: File upload utility.tauri-app-sql: SQLite, MySQL, PostgreSQL database access.tauri-app-store: Simple persistent key-value store.tauri-app-stronghold: Secure secret management and encryption.tauri-app-file-system: Read/write files (sandboxed).
Window & UI
tauri-app-window-menu: Native application menus and context menus.tauri-app-system-tray: System tray icon and menu.tauri-app-window-state: Persist window size/position.tauri-app-positioner: Tray and window positioning.tauri-app-single-instance: Prevent multiple app instances.
Examples and Templates
Global Examples (General Architecture)
examples/start/: Introduction and Quick Start.examples/guide/: Architecture, Frontend/Backend patterns.
Sub-skill Examples (Specific Features) CRITICAL: Every sub-skill above has its own local assets.
skills/tauri-app-dialog/examples/usage.md: detailed Dialog plugin usage.skills/tauri-app-sql/examples/usage.md: detailed SQL plugin usage....and so on for all skills.
Keywords
Tauri, tauri v2, rust, desktop app, mobile app, plugins, capabilities, permissions, system tray, notifications, file system, database, sql, http, websocket, updater, sidecar, ipc, events, commands, window customization
References
- https://v2.tauri.app/llms.txt
国内适配
- 支持中文文档和中文注释
- 示例代码兼容国内开发环境
- 提供中文 FAQ 和常见问题解答
能力边界
✅ 适用场景
- 当你需要使用此技能对应的技术栈时
- 当项目需要遵循最佳实践时
- 当需要快速上手或深入理解核心概念时
⚠️ 需要注意
- 复杂业务逻辑需要结合具体场景调整
- 性能优化需要根据实际数据量评估
❌ 不适用场景
- 不相关的技术栈或框架
- 需要完全自定义的特殊场景
使用流程
Step 1: 环境准备
确保开发环境已安装必要的依赖和工具。
Step 2: 配置初始化
根据项目需求进行基础配置。
Step 3: 核心功能使用
按照示例代码实现核心功能。
Step 4: 测试验证
运行测试确保功能正常。
Step 5: 部署上线
完成开发后进行部署和监控。
Commands API
Scope
- Command definition
- Command registration
- Payload serialization
Notes
- Keep inputs minimal and validated
Config API
Scope
- Config schema
- build/app/tauri sections
- Environment overrides
Notes
- Align with schema version 2
Events API
Scope
- Emit events
- Listen for events
- Payload typing
Notes
- Use namespaced event names
Filesystem API
Scope
- Read/write files
- Directory operations
- Path utilities
Notes
- Respect permission scopes
Tauri API
Core
- App lifecycle
- Window management
- Event system
Notes
- Refer to official docs for signatures
Window API
Scope
- Window creation
- Window controls
- Window events
Notes
- Control requires window handle
Architecture
官方文档: https://v2.tauri.org.cn/start/
Overview
Tauri uses a dual process model with a web frontend and a Rust backend.
Components
- Frontend: Web UI, bundled by a frontend toolchain
- Backend: Rust core and commands
- Runtime: WebView + native shell
Flow
1. UI renders in WebView 2. Frontend calls backend commands 3. Backend returns results or emits events
Key Points
- Clear separation between UI and system operations
- Commands are the primary interaction channel
Backend
官方文档: https://v2.tauri.org.cn/start/
Structure
- src-tauri/tauri.conf.json
- src-tauri/src/main.rs
- src-tauri/Cargo.toml
Example: Backend Responsibilities
- Define commands for frontend calls
- Access system APIs and filesystem
- Emit events to the frontend
Key Points
- Rust backend is the system boundary
- Keep business logic in Rust where needed
Build
官方文档: https://v2.tauri.org.cn/start/
Usage
Build produces platform-specific bundles.
Example: Build Commands
npm run tauri buildRelease Checklist
- Frontend assets are built
- Version is updated
- Signing requirements are met
Key Points
- Build output differs per OS
- Use CI for reproducible builds
Commands
官方文档: https://v2.tauri.org.cn/start/
Usage
Commands are the primary way for the frontend to invoke backend logic.
Typical Steps
1. Define a command in the backend 2. Register it in the Tauri builder 3. Call it from the frontend
Key Points
- Keep command inputs small and validated
- Return serializable results
Configuration
官方文档: https://v2.tauri.org.cn/reference/config/
Usage
Tauri uses tauri.conf.json for core settings.
Example: Minimal Config
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "MyApp",
"version": "0.1.0",
"build": {
"frontendDist": "../dist",
"devUrl": "http://localhost:5173"
},
"app": {
"withGlobalTauri": false
},
"tauri": {
"windows": [
{
"title": "MyApp",
"width": 1024,
"height": 768
}
]
}
}Key Points
- Keep schema updated
- Separate devUrl and frontendDist
Events
官方文档: https://v2.tauri.org.cn/start/
Usage
Events are used for one-to-many communication and notifications.
Typical Steps
1. Emit an event from the backend 2. Listen on the frontend 3. Handle payloads consistently
Key Points
- Use events for broadcast-style updates
- Keep event names stable
File System
官方文档: https://v2.tauri.org.cn/start/
Usage
File access uses scoped permissions for safety.
Typical Steps
1. Configure scopes and permissions 2. Read and write through backend APIs 3. Validate user-provided paths
Key Points
- Use least-privilege scopes
- Prefer app data directories
Frontend
官方文档: https://v2.tauri.org.cn/start/
Goals
- Choose a frontend framework
- Connect dev server to Tauri
- Output a static build for production
Example: Dev Server Flow
1. Start your frontend dev server 2. Run npm run tauri dev 3. Tauri loads the dev server URL
Example: Production Build Flow
1. Build frontend assets 2. Run npm run tauri build 3. Tauri bundles native binaries with static assets
Key Points
- Any web framework works
- Dev uses live server URL
- Build uses static assets
Window
官方文档: https://v2.tauri.org.cn/start/
Usage
Windows define how the app displays and behaves on each platform.
Typical Steps
1. Configure windows in tauri.conf.json 2. Control windows at runtime 3. Handle window events
Key Points
- Keep window identifiers stable
- Configure size and position defaults
CLI Reference
官方文档: https://v2.tauri.org.cn/reference/cli/
Common Commands
- tauri init
- tauri dev
- tauri build
- tauri info
- tauri icon
Example: Init
cargo tauri initExample: Dev
cargo tauri devExample: Build
cargo tauri buildKey Points
- Use cargo for Rust-first workflows
- Use npm/yarn/pnpm for JS-first workflows
Config Reference
官方文档: https://v2.tauri.org.cn/reference/config/
Sections
- build
- app
- tauri
Example: Windows
{
"tauri": {
"windows": [
{ "label": "main", "title": "MyApp" }
]
}
}Key Points
- Validate config with schema
- Keep devUrl separate from production
Installation
官方文档: https://v2.tauri.org.cn/ ,https://v2.tauri.app
Prerequisites
- Node.js ≥ 16
- Rust(stable)
- 平台依赖(macOS、Linux、Windows、Android、iOS)
Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustc --version
cargo -VInstall Tauri CLI(多包管理器)
# npm
npm install -D @tauri-apps/cli
# yarn
yarn add -D @tauri-apps/cli
# pnpm
pnpm add -D @tauri-apps/cli
# bun
bun add -d @tauri-apps/cli
# cargo
cargo install tauri-cliCreate a Project(多环境)
# Bash / zsh / fish 可用的在线脚本
sh <(curl https://create.tauri.app/sh)
# npm / yarn / pnpm / bun
npm create tauri-app
yarn create tauri-app
pnpm create tauri-app
bun create tauri-app
# Cargo
cargo tauri initSystem Dependencies
macOS
xcode-select --installLinux(Ubuntu/Debian)
sudo apt update
sudo apt install libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-devWindows
- Microsoft Visual Studio C++ Build Tools
- WebView2 runtime
Key Points
- 先装 Rust,再装 CLI 与平台依赖
- 创建项目可选脚本与多包管理器
- 验证 Node/Rust/CLI 版本与工具链是否可用
Introduction
官方文档: https://v2.tauri.org.cn/ ,https://v2.tauri.app
Overview
Tauri 2.0 是一个跨平台应用框架:前端独立(可复用任意 Web 技术栈),后端采用 Rust,深度集成系统能力(可通过 Swift 与 Kotlin 在 iOS/Android 上扩展)。
Core Capabilities
- Frontend Independent:无需更换既有前端框架(Vue/React/Svelte/…)
- Cross Platform:单一代码库构建 Linux、macOS、Windows、Android、iOS
- Maximum Security:以安全为先,提供权限与隔离控制
- Minimal Size:依赖系统原生 Web 渲染,体积可低至约 600KB
- Native Integration:Rust 逻辑,高性能与更安全的系统访问
Architecture
- Frontend:Web UI(HTML/CSS/JS),由前端工具链构建与提供 Dev Server
- Backend:Rust 应用逻辑与系统 API 封装,通过命令(IPC)与事件进行交互
- Runtime:原生 WebView + 平台壳,负责窗口与系统集成
Use Cases
- 桌面与移动端跨平台应用(统一代码库)
- 对安全与体积敏感的客户端产品
- 需要原生系统集成(剪贴板、文件系统、通知、系统托盘、权限等)
Key Points
- 前端可选任何框架,后端使用 Rust
- Dev 与 Build 流程清晰:devUrl(开发)、frontendDist(生产)
- 强安全、体积小、性能好,覆盖桌面与移动平台
Prerequisites
官方文档: https://v2.tauri.org.cn/start/
Requirements
- Node.js v16+
- Rust (stable)
- Platform dependencies
macOS
xcode-select --installLinux (Ubuntu/Debian)
sudo apt update
sudo apt install libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-devWindows
- Microsoft Visual Studio C++ Build Tools
- WebView2 runtime
Verify
node -v
rustc --version
cargo -VKey Points
- Install platform dependencies before building
- Verify versions and toolchains
Quick Start
官方文档: https://v2.tauri.org.cn/start/
Instructions
This example provides a minimal workflow to create, run, and build a Tauri app.
Steps
1. Create a project 2. Run the dev build 3. Build a production bundle
Example: Create Project
npm create tauri-appExample: Run Dev
npm run tauri devExample: Build
npm run tauri buildKey Points
- Use the CLI to scaffold
- Dev build uses your frontend dev server
- Production build packages native binaries
Usage: tauri
This document provides at least 5 usage examples for the tauri skill.
Example 1: Initialize Tauri
// Example initialization for Tauri
import { init } from 'tauri-plugin-tauri';
await init();Example 2: Basic Usage of Tauri
// Basic operation
const result = await invoke('plugin:tauri|do_something');
console.log(result);Example 3: Configure Tauri Settings
// Update tauri.conf.json
{
"plugins": {
"tauri": {
"enabled": true
}
}
}Example 4: Handle Tauri Errors
try {
await performAction();
} catch (error) {
console.error('Tauri Error:', error);
}Example 5: Advanced Tauri Integration
// Combine with other Tauri APIs
import { emit } from '@tauri-apps/api/event';
emit('tauri-event', { status: 'active' }); Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Command Template
Backend
#[tauri::command]
fn greet(name: String) -> String {
format!("Hello, {}!", name)
}Frontend
import { invoke } from "@tauri-apps/api/tauri";
const msg = await invoke<string>("greet", { name: "world" });Configuration Template
Template
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "{product_name}",
"version": "{version}",
"build": {
"frontendDist": "{frontend_dist}",
"devUrl": "{dev_url}"
},
"app": {
"withGlobalTauri": false
},
"tauri": {
"windows": [
{
"label": "main",
"title": "{window_title}",
"width": {window_width},
"height": {window_height}
}
]
}
}Event Template
Backend Emit
app.emit_all("app:ready", "ok").ok();Frontend Listen
import { listen } from "@tauri-apps/api/event";
await listen<string>("app:ready", (event) => {
const payload = event.payload;
});Installation Template
Checklist
- Node.js version: {node_version}
- Rust version: {rust_version}
- Platform dependencies installed
- CLI installed
Commands
npm install -D @tauri-apps/cli
cargo install tauri-cliVerification
node -v
rustc --version
cargo tauri -VProject Setup Template
Inputs
- Project name: {project_name}
- Frontend framework: {frontend_framework}
- Dev server URL: {dev_server_url}
- Dist directory: {frontend_dist}
Commands
npm create tauri-appNotes
- Configure frontend build output
- Align dev server URL with tauri.conf.json
Window Template
Config
{
"tauri": {
"windows": [
{ "label": "main", "title": "{title}", "width": {width}, "height": {height} }
]
}
}Runtime Control
import { appWindow } from "@tauri-apps/api/window";
await appWindow.setFocus();
await appWindow.setAlwaysOnTop(true);