Skip to content

Latest commit

ย 

History

History
137 lines (94 loc) ยท 4.46 KB

File metadata and controls

137 lines (94 loc) ยท 4.46 KB

๐Ÿ” Full Disk Access Setup

โ† Back to README


Doraemon needs Full Disk Access permission to read native macOS notifications from apps like WhatsApp, Slack, Discord, and Messages.

Why is this needed?

macOS stores notifications in a protected SQLite database. To read notifications from native apps (not just web browsers), Doraemon needs permission to access this database.

Without Full Disk Access:

  • โœ… Web notifications work (via browser extension)
  • โŒ Native app notifications don't work

With Full Disk Access:

  • โœ… Web notifications work
  • โœ… Native app notifications work (WhatsApp, Slack, Discord, Messages, etc.)

Setup Instructions

For Development (npm run dev) โ€” Recommended

When running in development mode, grant Full Disk Access to your Terminal or IDE instead of Electron. The child process (Electron) will inherit the permission from its parent.

Option A: Grant to Terminal (recommended)

  1. Open System Settings โ†’ Privacy & Security โ†’ Full Disk Access
  2. Click the ๐Ÿ”’ lock icon and enter your password
  3. Click the + button
  4. Navigate to Applications โ†’ Utilities
  5. Select Terminal.app (or iTerm.app if you use iTerm)
  6. Make sure the checkbox is enabled โœ…
  7. Restart Terminal and run npm run dev

Option B: Grant to IDE

If you run npm run dev from your IDE's integrated terminal:

  1. Open System Settings โ†’ Privacy & Security โ†’ Full Disk Access
  2. Click + and add your IDE:
    • VS Code: /Applications/Visual Studio Code.app
    • Cursor: /Applications/Cursor.app
    • Kiro: /Applications/Kiro.app
  3. Make sure the checkbox is enabled โœ…
  4. Restart the IDE and run npm run dev

๐Ÿ’ก Why this works: macOS Full Disk Access is inherited by child processes. When Terminal/IDE has the permission, any app launched from it (including Electron) gets the same access.

For Production (Built App)

When running the built/packaged app, grant Full Disk Access directly to Doraemon.app:

  1. Open System Settings โ†’ Privacy & Security โ†’ Full Disk Access
  2. Click the ๐Ÿ”’ lock icon and enter your password
  3. Click the + button
  4. Navigate to Applications folder (or wherever you installed Doraemon)
  5. Select Doraemon.app and click Open
  6. Make sure the checkbox is enabled โœ…
  7. Restart Doraemon

โš ๏ธ Note: If you rebuild the app, you may need to remove and re-add it to Full Disk Access since the binary signature changes.


Verifying It Works

After granting permission:

  1. Restart Doraemon
  2. The setup screen should show Native Notifications: Enabled โœ…
  3. Send yourself a WhatsApp message from another device
  4. Doraemon should display a beautiful notification bubble!

Troubleshooting

"Permission needed" still showing

  • Make sure you added the correct app (Electron.app for dev, Doraemon.app for production)
  • Make sure the checkbox is enabled (not just added to the list)
  • Try removing and re-adding the app
  • Restart your Mac if changes don't take effect

Can't find Electron.app

Use Finder:

  1. Open Finder
  2. Press Cmd+Shift+G
  3. Paste the path to your project's node_modules/electron/dist/
  4. Drag Electron.app into the Full Disk Access list

Notifications still not working

Check the terminal output for:

[NotificationWatcher] Full Disk Access granted - watching native notifications

If you see this but notifications still don't appear:

  • The notification database might be empty (no recent notifications)
  • Try sending a test notification to yourself

Supported Apps

App Status
๐Ÿ’ฌ WhatsApp โœ… Supported
๐Ÿ’ฌ Messages โœ… Supported
๐Ÿ“ง Mail โœ… Supported
๐Ÿ’ฌ Teams โœ… Supported
๐Ÿ“ง Outlook โœ… Supported
๐Ÿ’ผ Slack โœ… Supported
๐ŸŽฎ Discord โœ… Supported
โœˆ๏ธ Telegram โœ… Supported
๐Ÿ“ž FaceTime โœ… Supported
๐Ÿ“ Reminders โœ… Supported
๐Ÿ“’ Notes โœ… Supported
๐Ÿ“… Calendar โœ… Supported

Privacy Note

Doraemon only reads notification metadata (app name, timestamp) from the macOS notification database. It does not read the actual notification content (message text, sender info) due to how macOS stores this data.

For full notification content, use the browser extension which can capture web notifications with their full text.


โ† Back to README