[BUG] Claude Code desktop (macOS): resolves system PAC and injects a global HTTP_PROXY into child processes (loses per-domain routing)

Status Open
Reported on v2.1.148
Maintainer reply None cached
Activity 0 comments · opened Aug 11, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

With only a system PAC configured (no manual proxy, nothing in launchd/shell), the Claude Code desktop app injects HTTP_PROXY/HTTPS_PROXY, set to the PAC-resolved proxy address, into its own process and the tools it spawns. Because an env-var proxy is all-or-nothing, all child-process traffic (git, npm, telemetry) is routed to the proxy, not just the domains the PAC selects. Behind a selective/inspecting proxy this breaks non-selected traffic; developers are forced to NO_PROXY everything, bypassing the proxy entirely

What Should Happen?

Honor the PAC's per-domain decisions for child processes. Don't set a blanket HTTP_PROXY, or set a matching NO_PROXY so only PAC-selected domains use the proxy; at minimum make proxy propagation configurable

Error Messages/Logs

Steps to Reproduce

  • scutil --proxy → ProxyAutoConfigEnable = 1 (…/proxy.pac), HTTPEnable = 0, HTTPSEnable = 0
  • launchctl getenv HTTP_PROXY / HTTPS_PROXY → empty
  • plain-terminal env | grep -i proxy → empty
  • Inside the Claude Code desktop app, env | grep -i proxy → HTTP_PROXY/HTTPS_PROXY set to the PAC-resolved proxy

Claude Model

_No response_

Is this a regression?

No, this never worked

Last Working Version

_No response_

Claude Code Version

2.1.148

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

macOS 26.0, Claude for Mac 1.26832.0, Claude 2.1.148. (Related but distinct: #74913 - Claude Desktop hangs on PAC; this one over-proxies instead of hanging.)

View original on GitHub ↗