| Crates.io | tauri-plugin-notification |
| lib.rs | tauri-plugin-notification |
| version | 2.3.1 |
| created_at | 2023-05-24 16:24:02.512921+00 |
| updated_at | 2025-08-21 13:08:03.234969+00 |
| description | Send desktop and mobile notifications on your Tauri application. |
| homepage | |
| repository | https://github.com/tauri-apps/plugins-workspace |
| max_upload_size | |
| id | 873413 |
| size | 400,388 |

Send message notifications (brief auto-expiring OS window element) to your user. Can also be used with the Notification Web API.
| Platform | Supported |
|---|---|
| Linux | ✓ |
| Windows | ✓ |
| macOS | ✓ |
| Android | ✓ |
| iOS | ✓ |
This plugin requires a Rust version of at least 1.77.2
There are three general methods of installation that we can recommend.
Install the Core plugin by adding the following to your Cargo.toml file:
src-tauri/Cargo.toml
[dependencies]
tauri-plugin-notification = "2.0.0"
# alternatively with Git:
tauri-plugin-notification = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" }
You can install the JavaScript Guest bindings using your preferred JavaScript package manager:
pnpm add @tauri-apps/plugin-notification
# or
npm add @tauri-apps/plugin-notification
# or
yarn add @tauri-apps/plugin-notification
First you need to register the core plugin with Tauri:
src-tauri/src/lib.rs
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_notification::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
Then you need to add the permissions to your capabilities file:
src-tauri/capabilities/main.json
{
...
"permissions": [
...
"notification:default"
],
...
}
Afterwards all the plugin's APIs are available through the JavaScript guest bindings:
import {
isPermissionGranted,
requestPermission,
sendNotification
} from '@tauri-apps/plugin-notification'
async function checkPermission() {
if (!(await isPermissionGranted())) {
return (await requestPermission()) === 'granted'
}
return true
}
export async function enqueueNotification(title, body) {
if (!(await checkPermission())) {
return
}
sendNotification({ title, body })
}
You can add sound to your notifications on all platforms (desktop and mobile):
import { sendNotification } from '@tauri-apps/plugin-notification'
import { platform } from '@tauri-apps/api/os'
// Basic notification with sound
sendNotification({
title: 'New Message',
body: 'You have a new message',
sound: 'notification.wav' // Path to sound file
})
// Platform-specific sounds
async function sendPlatformSpecificNotification() {
const platformName = platform()
let soundPath
if (platformName === 'darwin') {
// On macOS: use system sounds or sound files in the app bundle
soundPath = 'Ping' // macOS system sound
} else if (platformName === 'linux') {
// On Linux: use XDG theme sounds or file paths
soundPath = 'message-new-instant' // XDG theme sound
} else {
// On Windows: use file paths
soundPath = 'notification.wav'
}
sendNotification({
title: 'Platform-specific Notification',
body: 'This notification uses platform-specific sound',
sound: soundPath
})
}
PRs accepted. Please make sure to read the Contributing Guide before making a pull request.
|
|
For the complete list of sponsors please visit our website and Open Collective.
Code: (c) 2015 - Present - The Tauri Programme within The Commons Conservancy.
MIT or MIT/Apache 2.0 where applicable.