I can see you applied the workaround, but it still isn’t working. Try adding all Cursor domains to the whitelist, the list has expanded:
prepend-rules:
- 'DOMAIN-SUFFIX,cursor.sh,DIRECT' # api2, api3, api4, api5, repo42
- 'DOMAIN-SUFFIX,gcpp.cursor.sh,DIRECT' # us-only, us-eu, us-asia
- 'DOMAIN-SUFFIX,cursor-cdn.com,DIRECT' # CDN and extensions
- 'DOMAIN-SUFFIX,cursorapi.com,DIRECT' # marketplace
- 'DOMAIN-SUFFIX,downloads.cursor.com,DIRECT' # updates
- 'DOMAIN-SUFFIX,todesktop.com,DIRECT' # download.todesktop.com for updates
This should cover all endpoints, including the new api5.cursor.sh for Agent mode.
Important about HTTP/2: Some endpoints (api3, api4, repo42, gcpp.*) require HTTP/2. If your proxy doesn’t support HTTP/2 or buffers streaming, add this to Cursor settings.json:
{
"cursor.general.disableHttp2": true,
"http.proxyStrictSSL": false
}
Streaming check: Run this in your terminal:
echo -ne "\x0\x0\x0\x0\x11{\"payload\":\"foo\"}" | curl --http1.1 -No - -XPOST \
-H "Content-Type: application/connect+json" \
--data-binary @- https://api2.cursor.sh/aiserver.v1.HealthService/StreamSSE
Expected result: output should appear line by line over about 5 seconds. If all the text shows up at once at the end, your proxy is buffering streaming, so you’ll need to enable disableHttp2.
Share the result and we can dig in further.