Skip to content

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:

settings.json
{
  "http.proxy": "http://proxy.example.com:8080",
  "http.proxySupport": "override",
  "cursor.general.disableHttp2": true
}
Syntax-checked
  • http.proxy is the proxy address. override makes Cursor use that address instead of looking for a system proxy.
  • cursor.general.disableHttp2 sends Agent and Chat requests over HTTP/1.1, the path that goes through http.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

SettingSettings UIWhat it does
http.proxyHttp: ProxyThe proxy URL, for example http://proxy.example.com:8080
http.proxySupportHttp: Proxy Supportoverride uses http.proxy instead of a detected system proxy
cursor.general.disableHttp2Cursor Settings > Network > HTTP Compatibility ModeSends AI requests over HTTP/1.1, which goes through the proxy
http.proxyStrictSSLHttp: Proxy Strict SSLCertificate 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.

Start Cursor with proxy variables (macOS or Linux)
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.com and *.cursorapi.com over HTTPS, plus *.cursorvm.com and *.*.cursorvm.com if 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.

Who issued Cursor's certificate?
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_USERNAME and NETDASH_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.

TrafficThrough netdash?Where it's configured
Cursor to its servers (Agent, Chat, Tab, sign-in)NoLeave it direct, or set your company proxy as above
Your scripts, scrapers and HTTP clientsYesIn code, from NETDASH_USERNAME and NETDASH_PASSWORD
The browser your agent drives through Playwright MCPYesIn the Playwright MCP config file (browser.launchOptions.proxy)
Package installs, git, downloadsNoNothing 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

  1. Cursor's connection: open Cursor Settings > Network and click Run Diagnostics. Each check (API, Chat, Agent and the others) should report success.
  2. netdash from your code: run this in Cursor's terminal. It prints the exit IP netdash assigned, in the country from the username.
Exit IP through netdash
curl --max-time 30 -x "http://USERNAME-cc-US:PASSWORD@scale-us.netdash.io:2000" \
  "https://api.ipify.org?format=json"
Checked against a local test proxy

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

SymptomCauseFix
Agent or Chat fails with ConnectError: [unavailable] while sign-in worksAI requests use HTTP/2, which goes direct and is blockedSet "cursor.general.disableHttp2": true and http.proxy, then fully quit and restart Cursor
It still fails on HTTP/1.1The proxy buffers or cuts the connection, or inspects TLSAsk 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 errorA TLS-inspecting proxy re-signs Cursor's trafficInstall the company root certificate in the system trust store, or get an inspection exception
407 Proxy Authentication Required from the company proxyThe proxy wants credentials Cursor's AI requests don't sendAsk IT to exempt Cursor's domains from proxy authentication
HTTP 464 in Run DiagnosticsAWS load balancers return 464 when a request's protocol doesn't match the endpoint, for example HTTP/1.1 where HTTP/2 is expectedAsk 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 balanceA netdash URL is in http.proxy or the proxy variablesRemove it, restart Cursor and put the proxy on your code instead
A request through netdash returns 407The netdash username or password is wrongCopy 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 support

Sources

Third-party behaviour described on this page was checked against these documents.

  1. 01Cursor docs: Network configuration (HTTP/2 and the HTTP/1.1 fallback, SSL inspection, domains to allow, curl tests)Accessed 2026-10-14
  2. 02Cursor help: Network, proxy, and remote connections (Run Diagnostics, HTTP Compatibility Mode)Accessed 2026-10-14
  3. 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
  4. 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
  5. 05Cursor forum bug report: Agent ignores http.proxy while HTTP/2 is on (Cursor 3.22.12)Accessed 2026-10-14
  6. 06Cursor docs: Cloud Agents, Secrets & Network (network access modes, egress IP ranges, runtime secrets)Accessed 2026-10-14
  7. 07Cursor docs: Model Context Protocol (mcp.json locations, config interpolation, MCP network controls)Accessed 2026-10-14
  8. 08VS Code docs: Network connections (Chromium proxy support, authenticated proxies, proxy certificates)Accessed 2026-10-14
  9. 09AWS docs: Application Load Balancer troubleshooting, HTTP 464Accessed 2026-10-14

Spotted something out of date? Tell us.

Privacy choices

We use cookies and similar technologies that this site needs to work and to remember your choice. We also use Google Analytics to understand which pages and features people use: in the EEA, the UK and Switzerland only with your consent. Live chat loads only if you open it. You can change your choice at any time under “Privacy choices” in the footer. Privacy Policy

Privacy choices

Choose what netdash.io may use. You can change this at any time under “Privacy choices” in the footer.

Necessary (always on)

Keeps the site working and secure, and remembers your privacy choices (nd_consent, 12 months).

In the EEA, the UK and Switzerland it stays off until you switch it on; elsewhere it is on unless you switch it off here. Google Analytics 4 measures page views, clicks on links and buttons, use of the price calculator, connection builder and code examples, scroll depth, file downloads, and page-performance metrics. It sets the cookies _ga and _ga_96MPNM6GHH, which last up to 12 months. Google processes this data, which may involve transfer to the United States. We do not send your name, email address or account details to Google Analytics. With this switched on we also remember a referral code or campaign you arrived with (nd_attr, 30 days), so a partner can be credited if you sign up.

Support chat (loads only when you open it)

Our live chat is provided by LiveChat. It loads only when you open the chat window. LiveChat then sets its own cookies and processes the messages you send and technical data about your browser.