#716·ClawX

[Bug]: macOS permission onboarding is weak for local integrations (Peekaboo / Reminders)

Author: kirajeCreated Mar 30, 2026Updated Mar 30, 2026

Summary

On macOS, some integrations fail with a permission error but do not provide a reliable in-app permission request flow or recovery path. I hit this with both Peekaboo and Reminders.

This makes the first-run experience confusing: the feature appears broken, but the real issue is missing system permissions.

Affected areas

  • Peekaboo UI automation
  • Reminders integration

Peekaboo repro

Environment

  • macOS
  • ClawX desktop app
  • Peekaboo installed and available in PATH

Steps to reproduce

  1. Use ClawX / OpenClaw to test Peekaboo automation.
  2. Run a minimal command such as:
    bash
    peekaboo permissions
    peekaboo see --annotate --path /tmp/peekaboo-test/see.png
  3. Observe the result when Screen Recording / Accessibility has not been granted yet.

Actual result

  • peekaboo permissions reports:
    • Screen Recording: Not Granted
    • Accessibility: Not Granted
  • peekaboo see ... fails immediately with:
    • Screen recording permission is required. Please grant it in System Settings > Privacy & Security > Screen Recording.
  • There is no clear ClawX-guided recovery flow, and the system did not surface a helpful approval prompt in this path.

Expected result

  • ClawX should clearly detect missing permission state and guide the user before the command fails.
  • Ideally, ClawX should provide a dedicated permission-recovery UX:
    • detect which permission is missing,
    • show why it is needed,
    • deep-link or guide to the exact macOS settings page,
    • ask the user to retry after granting access.

Reminders problem

I previously ran into a similar problem with Reminders permission flow on macOS.

Related issue: #609 ([Bug]: 无法申请macOS Reminders提醒事项权限)

The broader problem seems to be: when a local macOS capability depends on TCC permissions, ClawX does not consistently provide a robust, user-friendly permission onboarding / recovery flow.

Why this matters

For users, this feels like a feature failure rather than a permission setup issue. The app should make these permission blockers obvious and recoverable.

Suggested fix

  • Add a reusable macOS permission status layer for local capabilities.
  • Before invoking permission-dependent tools, preflight the required permissions.
  • Show a targeted UI explaining:
    • which permission is missing,
    • which feature needs it,
    • exact steps to enable it,
    • how to retry afterward.
  • If possible, centralize this for:
    • Accessibility
    • Screen Recording
    • Reminders
    • Calendar
    • Full Disk Access (where relevant)

Notes

This issue is intentionally broader than Peekaboo alone because the same UX gap appears to affect multiple macOS integrations.