How to muse app appear in Input Monitoring permissions list (like Accessibility does automatically)?

My app needs both Accessibility and Input Monitoring permissions. Accessibility works as expected - calling AXIsProcesstrusted() automatically adds the app to System Settings > Privacy & Security > Accessibility, and the user just needs to toggle it on.

Input Monitoring doesn't behave the same way. I'm calling CGRequestListenEventAccess() and creating a CGEvent.tapCreate(.listenOnly), but the app doesn't reliably appear in the Input Monitoring list. The user opens the pane and sees nothing to enable.

What I've tried:

  1. CGRequestListenEventAccess() — shows the system prompt once per install, but doesn't always add the app to the list
  2. CGEvet.tapCreate(tsp: .cgSessionEventTap, place: .headInsertEventTap, options: listenOnly, ...) — returns nil before Accessibility is granted; after Accessibility is granted, the tap succeeds but the app still may not appear in the Input Monitoring list
  3. Calling both after Accessibility is confirmed, with a delay before opening the Settings pane

The flow:

  1. User grants Accessibility (app appears automatically via AXIsProcessTrusted())
  2. App creates a listen-only CGEventTap (succeeds)
  3. App opens x-apple.systempreferences:com.apple.preferences.security?Privacy_ListenEvent
  4. User sees the Input Monitoring pane but the app is not listed

Environment: macOS 15, signed and notarized app, correct bundle ID, Hardened Runtime with com.apple.security.device.audio-input-monitoring entitlement not set (not applicable).

Is there an API equivalent to AXIsProcessTrusted() that reliably registers an app in the Input Monitoring list? Or is there a specific entitlement, Info.plist key, or sequence of calls required on macOS 14+/15 to ensure the app appears?

How to muse app appear in Input Monitoring permissions list (like Accessibility does automatically)?
 
 
Q