MacOS Permissions
Permissions are not needed on WindowsWindows does not require you to request any additional permissions. Any permission requests made on Windows will immediately succeed, and the permission will enter the
grantedstate.
MacOS places restrictions on desktop applications that will prevent you from recording meetings out of the box. You must request access permissions from the end user before you'll be able to record their meetings.
Quickstart
You can request permissions using the RecallAiSdk.requestPermission SDK method. To record meetings, you'll need at least the accessibility, microphone, and either the screen-capture or system-audio permission. You can request system-audio if you don't need video of the meeting. Otherwise, request screen-capture.
const RecallAiSdk = require('@recallai/desktop-sdk');
RecallAiSdk.init({
apiUrl: "https://us-west-2.recall.ai",
restartOnError: true
});
RecallAiSdk.requestPermission("accessibility")
RecallAiSdk.requestPermission("microphone")
RecallAiSdk.requestPermission("screen-capture")Requesting a permission will cause a popup to appear on your user's computer, prompting them to either open their system settings or deny the permission request.

When in development, the name of your application will be the application that's running your Electron process (e.g. VS Code, Cursor, iTerm)
A permission will always be in one of three states: not_requested, granted, or denied. If the user denies your request for a particular permission, you will not be able to request permission again. Instead, you will need to show a message in your application's UI directing the user to go to their system settings and enable the permission manually.

Example UI directing the user to open System Settings after they've denied a permission.
Justify why you need permissions to the userA user is more likely to grant your app the required permissions if they know why you need them. We recommend presenting an explanation of the reason you need a permission in your application's UI before you request it. See the permissions table for justifications of each individual permission.
Once you've requested permissions, you'll also need to understand whether the user approved or denied your request. To do this, you can add an event listener for the permission-status event:
RecallAiSdk.addEventListener('permission-status', (evt: PermissionStatusEvent) => {
const { permission, status } = evt
console.log(`Permission: ${permission}, Status: ${status}`)
})After all permissions have been granted, you're ready to start recording meetings for your users on MacOS.
Available permissions
Below is a table of all the permissions that you can request on MacOS, along with the reasons that they are required:
| Permission | Required | Purpose |
|---|---|---|
accessibility | Yes | We use the Accessibility permission to automatically detect meetings and figure out who is speaking during a meeting. |
microphone | Yes | We use the Microphone permission to record your audio during meetings. |
screen-capture | Required to capture both audio and video. If you only need audio, request system-audio. | We use the Screen Capture permission to record the audio of participants other than yourself, and the video of all participants in your meetings. |
system-audio | Required to capture only audio. If you need both audio and video, request screen-capture. | We use the System Audio permission to capture the audio of participants other than yourself in your meetings. |
full-disk-access | No | We use the Full Disk Access permission to extract the meeting URL from Teams meetings. |
Updated about 5 hours ago