Unclear It is not clear whether released Claude Code programs carry the embedded description, so the stable helper path may or may not still be used.
On macOS, background sessions (Claude Code work that keeps running without an open terminal window) start through a stable copy of the program inside the ClaudeCode.app helper app. Beside that copy sits an Info.plist file, a small description macOS reads to identify the app when it asks you for permissions. That file used to be written from fixed text built into Claude Code. That text named the app com.anthropic.claude-code, kept it out of the Dock, and explained why it wants the microphone, control of other apps (Apple Events) and the local network.
Claude Code now reads that description out of its own program file, where it can be stored in a dedicated section, and writes it to Info.plist. If the program file has no such section, the stable copy is not used at all, and background sessions start from the installed program's own location instead.
This setup only runs on macOS, and only when Claude Code is installed under a claude/versions folder. You can turn it off by setting either of these environment variables:
CLAUDE_PTY_HOST_NO_STABLE_PATHset to1CLAUDE_CODE_DISABLE_BG_STABLE_PATHset to any value
The stable copy gives macOS a consistent identity in permission prompts. When the description is missing from the program file, background sessions lose that identity without any warning. They run from the raw program path instead, and macOS may then treat them differently when deciding about permissions.
It is not clear whether released Claude Code programs carry the embedded description, so the stable helper path may or may not still be…
process.execPath on Build an MCP client