Tauri v2+ Plugin Reference
Contents
- General Installation Pattern
- File System
- Dialog
- Shell
- HTTP
- Store
- Clipboard Manager
- Notification
- Global Shortcut
- Updater
- Deep Link
- Opener
- Process
Important: Installing a plugin is not enough. Every plugin's permissions must be explicitly granted in a capability file under src-tauri/capabilities/. Without this, plugin calls will fail silently with permission errors.
Last verified: 2026-04-02. Check the official plugin changelogs when install flow or permission names change.
General Installation Pattern
For most official plugins, the preferred installation method is using the Tauri CLI:
cargo tauri add <plugin-name>This command automatically:
- Adds the Rust crate to
src-tauri/Cargo.toml. - Adds the JS/TS package to
package.json(if applicable). - Registers the plugin in
src-tauri/src/lib.rs(often requiring manual verification).
1. File System (tauri-plugin-fs)
Access the local file system.
Install:
cargo tauri add fsRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_fs::init())JS Package: @tauri-apps/plugin-fs
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["fs:default"]
}Common permissions:
fs:allow-read-file: Read file contents.fs:allow-write-file: Write/create files.fs:allow-read-dir: List directory contents.fs:allow-exists: Check if path exists.
Scopes:
Path access is restricted by scopes. Common variables: $APPDATA, $HOME, $DOCUMENTS, $DOWNLOADS.
Cross-reference: See capabilities-reference.md for scope examples.
2. Dialog (tauri-plugin-dialog)
Native system dialogs for file picking and messages.
Install:
cargo tauri add dialogRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_dialog::init())JS Package: @tauri-apps/plugin-dialog
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["dialog:default"]
}Common permissions:
dialog:allow-open: Open file/directory picker.dialog:allow-save: Save file picker.dialog:allow-message: Show message box.dialog:allow-ask: Show ask dialog (Yes/No).
3. Shell (tauri-plugin-shell)
Spawn child processes or open URLs.
Install:
cargo tauri add shellRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_shell::init())JS Package: @tauri-apps/plugin-shell
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["shell:default"]
}Common permissions:
shell:allow-open: Open URLs in default browser.shell:allow-execute: Execute arbitrary programs (requires heavy scoping).
Scoping:
allow-execute requires defining specific programs and allowed arguments in the capability file.
Cross-reference: See capabilities-reference.md for shell scope examples.
4. HTTP (tauri-plugin-http)
Perform HTTP requests from the Rust backend (bypassing CORS).
Install:
cargo tauri add httpRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_http::init())JS Package: @tauri-apps/plugin-http
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["http:default"]
}Common permissions:
http:default: Basic request/response capabilities.
Scoping: Access can be restricted to specific domains or URL patterns. Cross-reference: See capabilities-reference.md for URL scope examples.
5. Store (tauri-plugin-store)
Simple key-value persistence.
Install:
cargo tauri add storeRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_store::Builder::default().build())JS Package: @tauri-apps/plugin-store
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["store:default"]
}Common permissions:
store:allow-get: Retrieve values.store:allow-set: Save values.store:allow-load: Load store from disk.
6. Clipboard (tauri-plugin-clipboard-manager)
Read and write to the system clipboard.
Install:
cargo tauri add clipboard-managerRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_clipboard_manager::init())JS Package: @tauri-apps/plugin-clipboard-manager
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["clipboard-manager:default"]
}Common permissions:
clipboard-manager:allow-read: Read clipboard content.clipboard-manager:allow-write: Write to clipboard.
7. Notification (tauri-plugin-notification)
Send native desktop notifications.
Install:
cargo tauri add notificationRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_notification::init())JS Package: @tauri-apps/plugin-notification
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["notification:default"]
}Common permissions:
notification:allow-send: Trigger notifications.notification:allow-request-permission: Check/ask for user permission.
8. Global Shortcut (tauri-plugin-global-shortcut)
Register system-wide keyboard shortcuts.
Install:
cargo tauri add global-shortcutRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_global_shortcut::Builder::new().build())JS Package: @tauri-apps/plugin-global-shortcut
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["global-shortcut:default"]
}Common permissions:
global-shortcut:allow-register: Register a new shortcut.global-shortcut:allow-is-registered: Check if a shortcut is active.
Note: Desktop only.
9. Updater (tauri-plugin-updater)
Automated application updates.
Install:
cargo tauri add updaterRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_updater::Builder::new().build())JS Package: @tauri-apps/plugin-updater
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["updater:default"]
}Common permissions:
updater:allow-check: Check for updates.updater:allow-download-and-install: Execute update.
Note: Requires code signing and an update server/static JSON. Cross-reference: See updater-distribution-reference.md for signing requirements.
10. Deep Link (tauri-plugin-deep-link)
Register and handle custom URL schemes (e.g., myapp://).
Install:
cargo tauri add deep-linkRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_deep_link::init())JS Package: @tauri-apps/plugin-deep-link
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["deep-link:default"]
}Common permissions:
deep-link:allow-get-current-url: Retrieve the URL that launched the app.
11. Opener (tauri-plugin-opener)
Open files or URLs using the system's default applications. Replaces shell:open for many v2 use cases.
Install:
cargo tauri add openerRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_opener::init())JS Package: @tauri-apps/plugin-opener
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["opener:default"]
}Common permissions:
opener:allow-open-url: Open a website URL.opener:allow-open-path: Open a local file path with its associated app.
12. Process (tauri-plugin-process)
Control the application process (restart, exit).
Install:
cargo tauri add processRust registration (in src-tauri/src/lib.rs):
.plugin(tauri_plugin_process::init())JS Package: @tauri-apps/plugin-process
Capability permissions (add to src-tauri/capabilities/*.json):
{
"permissions": ["process:default"]
}Common permissions:
process:allow-restart: Restart the app.process:allow-exit: Exit the app programmatically.
See also: Capabilities Reference for the security model | Updater/Distribution for the updater plugin deployment | Advanced Runtime for tray, sidecar, and deep-link plugins