Cursor proxy settings
In Cursor's settings.json, set "http.proxy": "http://host:port" and "http.proxySupport": "override". If Agent or Chat still can't connect, turn on HTTP/1.1 with "cursor.general.disableHttp2": true (Cursor Settings > Network > HTTP Compatibility Mode), then fully quit and restart Cursor. Keep netdash out of these settings: it belongs on the code and the browser your agent runs.
- Updated
- Reading time
- 10 min
- Checked against
- 9 sources
This guide covers two different jobs. The first is Cursor's own network settings: what to set when Cursor has to reach its servers through a company proxy. The second is the proxy for the code and the browser that Cursor's agent writes and drives, which is where netdash fits. Cursor's settings change between releases, so the version numbers below come from Cursor's docs and staff answers on the Cursor forum, with the dates in the sources.
Quick answer: Cursor behind a proxy
Open your user settings with Preferences: Open User Settings (JSON) from the command palette and add the proxy your network requires:
{
"http.proxy": "http://proxy.example.com:8080",
"http.proxySupport": "override",
"cursor.general.disableHttp2": true
}http.proxyis the proxy address.overridemakes Cursor use that address instead of looking for a system proxy.cursor.general.disableHttp2sends Agent and Chat requests over HTTP/1.1, the path that goes throughhttp.proxy. In the settings UI it's Cursor Settings > Network > HTTP Compatibility Mode > HTTP/1.1. Cursor's support staff say Agent, Chat and Tab keep working on HTTP/1.1, with slightly higher latency.- Fully quit Cursor and start it again. Reload Window isn't enough.
Then open Cursor Settings > Network and click Run Diagnostics to check each connection.
Why Cursor ignores your proxy
Since version 3.9, Cursor sends its AI requests (API, Chat, Agent, Ping) through a separate HTTP/2 transport, according to Cursor staff on the forum. Node's HTTP/2 client can't go through a proxy agent, so those requests connect directly. Sign-in, the extension marketplace and downloads still use the editor's main network stack, which honors the proxy. That is why sign-in works while Agent fails with ConnectError: [unavailable].
Cursor 3.11.13 started honoring http.proxy and the HTTP_PROXY and HTTPS_PROXY variables for this traffic, but a proxy that the system picks up automatically, such as one from a PAC file or WPAD, is still ignored. If your company configures the proxy automatically, ask IT for the proxy host it points to and set it in http.proxy. A bug report filed on the forum on 2 October 2026 against Cursor 3.22.12 shows Agent requests still going direct while HTTP/2 is on and using the proxy once cursor.general.disableHttp2 is set, so keep that setting until Cursor's release notes say otherwise.
Cursor's network docs also describe an automatic fallback to HTTP/1.1 when a proxy breaks HTTP/2 streams. That fallback covers proxies that buffer streams, not a network that blocks direct connections, so set HTTP/1.1 yourself when Agent can't connect at all.
Settings UI and settings.json
| Setting | Settings UI | What it does |
|---|---|---|
http.proxy | Http: Proxy | The proxy URL, for example http://proxy.example.com:8080 |
http.proxySupport | Http: Proxy Support | override uses http.proxy instead of a detected system proxy |
cursor.general.disableHttp2 | Cursor Settings > Network > HTTP Compatibility Mode | Sends AI requests over HTTP/1.1, which goes through the proxy |
http.proxyStrictSSL | Http: Proxy Strict SSL | Certificate checks for proxied requests; see behind a company proxy before you change it |
Cursor is built on VS Code, so the http.* settings are the ones VS Code documents; cursor.general.disableHttp2 is Cursor's own. User settings apply to every project. Put the proxy there rather than in a project's .vscode/settings.json, which ends up in the repository.
HTTP_PROXY and HTTPS_PROXY
Cursor staff also suggest launching Cursor with HTTP_PROXY and HTTPS_PROXY set to the same address as an alternative to http.proxy. Cursor reads these variables from the environment it starts in. Started from a terminal where they're exported, it sees them; started from the Dock, the Start menu or a desktop shortcut, it may not. If the variables stop reaching Cursor after an update or when you launch it differently, set http.proxy with "http.proxySupport": "override" instead, which staff call the most reliable option.
export HTTPS_PROXY="http://proxy.example.com:8080"
export HTTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1"
cursor .Terminals inside Cursor and the commands its agent runs inherit the environment Cursor started with, so pip, npm and git use the same proxy. That is fine for a company proxy and the reason netdash shouldn't go here: see give your code a netdash proxy.
Behind a company proxy
What IT needs to allow, from Cursor's network docs:
- Domains:
*.cursor.sh,*.cursor-cdn.comand*.cursorapi.comover HTTPS, plus*.cursorvm.comand*.*.cursorvm.comif your team uses Cursor's hosted computers. Cursor recommends allowing these patterns rather than IP addresses, which change. Sign-in uses a few more hosts, which Cursor lists in its sign-in domain docs. - TLS inspection: Cursor recommends excluding its domains from SSL inspection and DLP. Inspection is one of the most common reasons Agent times out or stalls behind a company proxy.
- Streaming: if inspection stays on, the proxy must pass HTTP/2 bidirectional streaming or Server-Sent Events without buffering, and must not cut long-running connections.
To see whether a proxy rewrites Cursor's certificate, check the issuer. Cursor's docs say you should see Amazon RSA; your proxy vendor's name means SSL inspection is active.
curl -sv https://api2.cursor.sh -o /dev/null 2>&1 | grep -i -A1 "issuer:"If the proxy re-signs traffic with a company certificate, install that root certificate in your operating system's trust store; VS Code's docs describe this as the preferred fix, since the editor uses the system's certificates. Cursor staff mention "http.proxyStrictSSL": false for a proxy with a self-signed certificate, but it turns off certificate checks for proxied requests, so use it to confirm the cause and then ask IT for the certificate or an inspection exception.
VS Code's docs list Basic, Digest, NTLM and Negotiate (Kerberos) as the proxy authentication methods of the editor's network stack, with a sign-in prompt. Cursor's docs don't say which of these its AI requests support. If Agent fails only on a proxy that uses NTLM or Kerberos, ask IT to exempt Cursor's domains from authentication.
Cloud agents and their egress
Cloud agents run on Cursor's infrastructure, not on your machine, so your http.proxy and your network don't apply to them. Agents in the editor and the CLI run on your machine and inherit its network, firewall and proxy settings, and so do agents on self-hosted machines.
- Egress IPs: cloud agents connect from IP ranges Cursor publishes at
https://cursor.com/docs/ips.json. If an API or site you operate only accepts known addresses, you can allow-list these ranges. Cursor changes them from time to time and doesn't recommend IP allow-lists as the main security control, so monitor the file if you rely on it. - Network access modes: in the Cloud Agents dashboard you, a saved environment or a team admin can choose Allow all network access, Default + allowlist or Allowlist only. With an allowlist, add every host the agent's code has to reach, including your netdash gateway, for example
scale-us.netdash.io. - Environment variables: store proxy credentials as a Runtime Secret, for example
NETDASH_USERNAMEandNETDASH_PASSWORD. Runtime Secrets load as environment variables but are redacted from tool output, the chat transcript and commits. Secrets of type Environment Variable are visible to the agent.
Setting HTTP_PROXY or HTTPS_PROXY in a cloud agent's environment sends every tool in it that reads those variables through that proxy, package installs and git included. For a netdash proxy, read the credentials in the code that needs an exit country, as below.
Give your code a netdash proxy, not the editor
Cursor's own traffic, the model requests and the editor's updates, shouldn't go through netdash. It would count against your balance and add latency, and the model requests don't need an exit country. The traffic that needs a netdash exit IP is what your code sends to websites and the browser your agent drives.
| Traffic | Through netdash? | Where it's configured |
|---|---|---|
| Cursor to its servers (Agent, Chat, Tab, sign-in) | No | Leave it direct, or set your company proxy as above |
| Your scripts, scrapers and HTTP clients | Yes | In code, from NETDASH_USERNAME and NETDASH_PASSWORD |
| The browser your agent drives through Playwright MCP | Yes | In the Playwright MCP config file (browser.launchOptions.proxy) |
| Package installs, git, downloads | No | Nothing to do, as long as no netdash URL is in the proxy variables |
For an HTTP client, pass the proxy to the client itself: Python, Node.js and the Go guide show it per library. For a task that spans several requests, a sticky session keeps one exit IP: add -session-{SID}-ttl-{MIN} to the username, with a new session ID per task.
For the browser, Cursor reads MCP servers from .cursor/mcp.json in the project or ~/.cursor/mcp.json for all projects and fills in ${env:NAME} from the environment. The Playwright MCP entry and its config file with the netdash credentials are in Cursor and other coding assistants on the Claude Code guide. If your admin restricts the network of local MCP servers to an allowlist, the netdash gateway host has to be on it.
Check that it works
- Cursor's connection: open Cursor Settings > Network and click Run Diagnostics. Each check (API, Chat, Agent and the others) should report success.
- netdash from your code: run this in Cursor's terminal. It prints the exit IP netdash assigned, in the country from the username.
curl --max-time 30 -x "http://USERNAME-cc-US:PASSWORD@scale-us.netdash.io:2000" \
"https://api.ipify.org?format=json"Replace USERNAME and PASSWORD with the proxy username and password from the dashboard, not your sign-in password. If the first check fails and the second works, the problem is between Cursor and its servers, not netdash.
Errors and fixes
| Symptom | Cause | Fix |
|---|---|---|
Agent or Chat fails with ConnectError: [unavailable] while sign-in works | AI requests use HTTP/2, which goes direct and is blocked | Set "cursor.general.disableHttp2": true and http.proxy, then fully quit and restart Cursor |
| It still fails on HTTP/1.1 | The proxy buffers or cuts the connection, or inspects TLS | Ask IT to exclude Cursor's domains from inspection and buffering; check the proxy log for CONNECT api2.cursor.sh:443 |
certificate verify failed or another certificate error | A TLS-inspecting proxy re-signs Cursor's traffic | Install the company root certificate in the system trust store, or get an inspection exception |
| 407 Proxy Authentication Required from the company proxy | The proxy wants credentials Cursor's AI requests don't send | Ask IT to exempt Cursor's domains from proxy authentication |
| HTTP 464 in Run Diagnostics | AWS load balancers return 464 when a request's protocol doesn't match the endpoint, for example HTTP/1.1 where HTTP/2 is expected | Ask IT whether the proxy changes the HTTP version on the way, and post the diagnostics output on the Cursor forum |
| Agent works, but chatting uses up your netdash balance | A netdash URL is in http.proxy or the proxy variables | Remove it, restart Cursor and put the proxy on your code instead |
| A request through netdash returns 407 | The netdash username or password is wrong | Copy both from the dashboard; see troubleshooting |
FAQ
Add "http.proxy": "http://host:port" and "http.proxySupport": "override" to your user settings.json, set "cursor.general.disableHttp2": true so Agent and Chat use the proxy, then fully quit and restart Cursor.
Since version 3.9, Cursor's AI requests use an HTTP/2 transport that can't go through a proxy agent. Version 3.11.13 added support for http.proxy and HTTP_PROXY/HTTPS_PROXY, but a system or PAC proxy is still ignored, so set the proxy address explicitly and turn on HTTP/1.1.
In Cursor Settings > Network > HTTP Compatibility Mode, set HTTP/1.1. In settings.json it's "cursor.general.disableHttp2": true. Restart Cursor afterwards.
No. Cloud agents run on Cursor's infrastructure and connect from the IP ranges Cursor publishes at https://cursor.com/docs/ips.json. Control their egress with the network access modes in the Cloud Agents dashboard and store credentials as Runtime Secrets.
No. Cursor's own traffic gains nothing from a residential exit IP and would count against your balance. Give the proxy to the scripts and the browser your agent runs, as described in give your code a netdash proxy.
Next steps
- Claude Code and Playwright MCP
Credentials in .env, a proxy per client and an authenticated Playwright MCP browser, including the Cursor mcp.json entry.
- Proxies for AI agents
Where a proxy fits in an agent, which traffic stays direct, and sessions per run.
- Troubleshooting
407 errors, timeouts, requests that skip the proxy and the wrong exit country.
Stuck? See troubleshooting or email support with your username (without the password) and the error message.
Email supportSources
Third-party behaviour described on this page was checked against these documents.
- 01Cursor docs: Network configuration (HTTP/2 and the HTTP/1.1 fallback, SSL inspection, domains to allow, curl tests)Accessed 2026-10-14
- 02Cursor help: Network, proxy, and remote connections (Run Diagnostics, HTTP Compatibility Mode)Accessed 2026-10-14
- 03Cursor forum, staff reply: since 3.9 AI requests use a separate HTTP/2 transport that can't use a proxy agent; Disable HTTP/2, http.proxy and http.proxySupportAccessed 2026-10-14
- 04Cursor forum, staff reply: 3.11.13 honors http.proxy and HTTP_PROXY/HTTPS_PROXY, system and PAC proxies are still ignoredAccessed 2026-10-14
- 05Cursor forum bug report: Agent ignores http.proxy while HTTP/2 is on (Cursor 3.22.12)Accessed 2026-10-14
- 06Cursor docs: Cloud Agents, Secrets & Network (network access modes, egress IP ranges, runtime secrets)Accessed 2026-10-14
- 07Cursor docs: Model Context Protocol (mcp.json locations, config interpolation, MCP network controls)Accessed 2026-10-14
- 08VS Code docs: Network connections (Chromium proxy support, authenticated proxies, proxy certificates)Accessed 2026-10-14
- 09AWS docs: Application Load Balancer troubleshooting, HTTP 464Accessed 2026-10-14
Spotted something out of date? Tell us.