The Co-Pilot That Follows You Away From the Desk.
How we built a native iOS app using CallKit that receives interrupt requests from autonomous coding sessions and routes voice responses through GPT-4o Realtime — so long-running agent runs never stall at a permission gate again.

The Problem
Long-running Claude Code sessions hit permission gates constantly — moments where the agent needs a human decision before it can continue. If you're away from your desk, the session just waits. Walk away for 20 minutes and come back to an agent that hasn't moved.
The obvious fix — a mobile notification — doesn't work when the app is backgrounded on iOS. WebRTC audio I/O is blocked outside CallKit on backgrounded iOS apps. Every standard approach failed before the underlying constraint was identified.
What We Built
We built a native iOS app using CallKit — the same framework that handles phone calls — that receives interrupt requests from local MCP tools via Supabase Realtime. When the agent hits a gate, the phone rings like a call, plays a custom chime, and routes the voice response through GPT-4o Realtime.
A shared-secret resolve endpoint handles the response and sends it back to the agent. PushKit provides a fallback for reliability. The result is an ambient co-pilot pattern: the agent runs, you go about your day, and the phone rings only when your judgment is actually needed.
“Autonomous coding sessions stall at the worst moment — when you're on a walk and the agent needs a yes or no. This removes that friction entirely.”
The System Architecture
Native iOS app using CallKit for audio session management. Supabase Realtime for interrupt signal delivery from local MCP tools. GPT-4o Realtime for voice response processing. PushKit for reliable background delivery. Shared-secret resolve endpoint to authenticate and route responses back to the agent session.
The Results
Overnight and untethered agent runs that finish reliably. Permission gates that used to stall sessions for hours now resolve in seconds from earbuds — while walking, working out, or doing yard work.
The pattern has broader implications: any long-running autonomous process that needs human-in-the-loop checkpoints can use the same architecture.