[FEATURE] Remote Control mobile push: send blocking pushes with iOS time-sensitive interruption level so they stand out from the notification stack

Status Open
Maintainer reply None cached
Activity 0 comments · opened Oct 10, 2026

Problem

When I run Claude Code away from my desk, Remote Control pushes to my iPhone are how I learn that a session needs me (a blocking question, a failed step, a decision). They arrive as ordinary notifications, so they get lost in the notification stack among everything else. A blocked session can sit idle until I happen to scroll past its push.

iOS has a level built for exactly this. Time-sensitive notifications are presented differently and get higher visibility than ordinary ones. I've enabled Settings → Notifications → Claude → Time Sensitive Notifications, but pushes still arrive as ordinary notifications. Tested with a PushNotification call that returned Mobile push requested: the push was delivered, but not as time sensitive.

As far as I can tell, that toggle only permits the app's time-sensitive notifications. Each notification still has to be sent as time sensitive.

What Apple requires

The APNs payload's aps dictionary has an interruption-level key with values passive, active, time-sensitive and critical (Generating a remote notification). Apple describes a time-sensitive notification as one the system "presents immediately, lights up the screen, can play a sound" (UNNotificationInterruptionLevel.timeSensitive).

Since iOS already shows the Claude app's Time Sensitive toggle, I'm guessing the app holds the time-sensitive entitlement. If so, the missing piece is the server setting interruption-level on the push.

Proposed solution

Any of these would work:

  1. An optional urgency parameter on PushNotification, e.g. urgency: "time-sensitive", which sends aps.interruption-level = "time-sensitive". The agent already decides when a push is warranted, and could mark only the ones that need the user.
  2. Automatic mapping for blocking events. Pushes for permission prompts, AskUserQuestion and other "action required" states are sent time sensitive, and routine ones stay active.
  3. A /config setting next to "Push when Claude decides" / "Push when actions required", choosing which categories (if any) are sent time sensitive.

Reserving the level for pushes that need action keeps it meaningful. If every push were time sensitive, nothing would stand out again. The user stays in control either way: iOS lets them turn off time-sensitive delivery for the app.

Related

  • #66526: per-category notification preferences (closed)
  • #93997: push even while the terminal is focused
  • #99792: iOS pushes arriving without sound or vibration

Environment

  • Claude Code in the VS Code extension on macOS, Remote Control connected
  • Claude iOS app, Time Sensitive Notifications enabled

View original on GitHub ↗