#screen-recording #tauri-plugin #macos-permissions #full-disk-access

sys tauri-plugin-macos-permissions

Support for checking and requesting macos system permissions

8 stable releases

2.2.0 Mar 20, 2025
2.1.1 Mar 2, 2025
2.1.0 Feb 28, 2025
2.0.4 Nov 23, 2024
1.0.0 Nov 18, 2024

#6 in Accessibility

Download history 159/week @ 2024-12-04 218/week @ 2024-12-11 178/week @ 2024-12-18 153/week @ 2024-12-25 147/week @ 2025-01-01 153/week @ 2025-01-08 122/week @ 2025-01-15 92/week @ 2025-01-22 94/week @ 2025-01-29 65/week @ 2025-02-05 187/week @ 2025-02-12 160/week @ 2025-02-19 492/week @ 2025-02-26 219/week @ 2025-03-05 350/week @ 2025-03-12 355/week @ 2025-03-19

1,455 downloads per month

MIT license

70KB
252 lines

tauri-plugin-macos-permissions

This plugin only works on tauri v2, if you need the v1 plugin, feel free to submit a PR!

Support for checking and requesting macos system permissions.

https://github.com/user-attachments/assets/acb63744-9773-420a-8a96-6a485c94f5d6

Install

cargo add tauri-plugin-macos-permissions

You can install the JavaScript Guest bindings using your preferred JavaScript package manager:

pnpm add tauri-plugin-macos-permissions-api

Usage

src-tauri/src/lib.rs

pub fn run() {
    tauri::Builder::default()
+       .plugin(tauri_plugin_macos_permissions::init())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

src-tauri/capabilities/default.json

{
    ...
    "permissions": [
        ...
+       "macos-permissions:default"
    ]
}

If you need to access the microphone or camera permissions, please update src-tauri/Info.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
     ...
+    <key>NSMicrophoneUsageDescription</key>
+    <string>Describe why your app needs to use microphone permission</string>
+    <key>NSCameraUsageDescription</key>
+    <string>Describe why your app needs to use camera permissions</string>
</dict>
</plist>

Afterwards all the plugin's APIs are available through the JavaScript guest bindings:

import { checkAccessibilityPermission } from "tauri-plugin-macos-permissions-api";

const authorized = await checkAccessibilityPermission();
console.log(authorized); // true

Methods

Method Description
checkAccessibilityPermission Check accessibility permission.
requestAccessibilityPermission Request accessibility permission.
checkFullDiskAccessPermission Check full disk access permission.
requestFullDiskAccessPermission Request full disk access permission.
checkScreenRecordingPermission Check screen recording permission.
requestScreenRecordingPermission Request screen recording permission.
checkMicrophonePermission Check microphone permission.
requestMicrophonePermission Request microphone permission.
checkCameraPermission Check camera permission.
requestCameraPermission Request camera permission.

Example

git clone https://github.com/ayangweb/tauri-plugin-macos-permissions.git
pnpm install

pnpm build

cd examples/tauri-app

pnpm install

pnpm tauri dev

Thanks

Who's Use It

  • EcoPaste - Open source cross-platform clipboard management tool.

  • Coco AI - Search, Connect, Collaborate, Your Personal AI Search and Assistant, all in one space.

Dependencies

~18–58MB
~872K SLoC