Local Agent uploaded ~171 GiB to cursor.sh in 4 days (~196 GiB in August). This volume is not acceptable, bug or not. HTTP/2 via local proxy. 92 skills resent every tool call

Where does the bug appear (feature/product)?

• Editor, Tab & Chat (autocomplete, Composer, in-editor agent)

Local Agents / Composer, including Agents Window worktrees. Not Cloud Agents at cursor.com/agents.

───

Describe the Bug

Cursor uploaded a very large amount of data to *.cursor.sh from this Mac.

Whether this is a retry bug, HTTP/2-over-proxy duplication, or “expected” Agent context upload, this volume is not acceptable. ~80 GiB in one day and ~171 GiB in four days is unusable on a proxied or metered link. I am not looking for “working as designed” that leaves this as my problem. The product needs to stop doing this, or have a real cap / incremental context path so it cannot happen again.

Traffic is from local proxy stats, binary GiB (1024-based). Process: /Applications/Cursor.app/. Almost entirely upload.

• Full month (August): ~195.8 GiB upload / ~0.9 GiB download to cursor.sh. About 95.6k requests, ~2.1 MB uploaded per request on average.
• 4 consecutive days, Aug 17–20: ~170.8 GiB upload. Almost all of the month.
• Aug 17: ~79.7 GiB (peak day)
• Aug 18: ~15.5 GiB
• Aug 19: ~57.3 GiB
• Aug 20: ~18.4 GiB
• July, same machine: 0. Same app, no comparable spike.

This was the majority of this machine’s proxy traffic for the month. I cannot keep running Cursor like this.

Peak-day client logs show Agent streams, not a one-shot repo dump:

• Spans: agent.request → streamFromAgentBackend → writeInitialRequest
• Workspace: tamagotchi-diary plus a local worktree under ~/.cursor/worktrees/tamagotchi-diary/
• Aug 19: 20+ Agent workbenches in the same window
• Agent Exec: shell tool calls about every few seconds
• Session loaded 92 Cursor rules and 92 skills (AgentSkillsCursorRulesService load completed { ruleCount: 92, skillCount: 92 })
• Indexing logs for those worktrees often show Uploading 0 files / empty merkle
• Peak Composer threads on disk are small (~1–2 MB of bubbles), so this is not an imported huge Claude Code transcript

Likely amplifiers:

• HTTP/2 on (default; cursor.general.disableHttp2 not set)
• All *.cursor.sh traffic through a local HTTPS proxy (Surge). The same host fanned out across many proxy nodes (US/JP/HK/TW), which matches timeout-then-retry on another IP.

I have not confirmed per-request payload sizes (protobuf to cursor.sh). Two hypotheses; neither makes ~171 GiB in 4 days OK:

  1. Every tool round-trip resends conversation + file context + all 92 skills (~2 MB × tens of thousands of calls). If that is the design, the design is too expensive.
  2. HTTP/2 streaming through the proxy times out and re-sends the same request body. Your forum already describes api2.cursor.sh retrying across many IPs when latency is high. If so, it is a bug, and I still paid for the duplicate upload.

Please do not close this with only “disable HTTP/2” or “use fewer agents” unless you also confirm server-side body sizes and retry counts for the Request IDs below. I can change settings. I cannot accept this as the normal cost of using Agent.

───

Steps to Reproduce

No minimal repro. Conditions when it happened:

  1. Cursor on macOS, HTTP/2 enabled, local HTTPS proxy in front of *.cursor.sh.
  2. Open a project with a large always-on skills/rules set (here: 92 + 92).
  3. Run many parallel local Agents (worktrees / Agents Window) for hours.
  4. Let an agent loop on shell/tool calls for a long time without starting a new chat.

───

Expected Behavior

• Agent tool loops must not upload on the order of 80 GiB in a day / 170 GiB in 4 days for one user on one project.
• Skills/rules should not be fully re-attached on every tool call if they have not changed.
• If HTTP/2 via proxy retries, the client must not replay a multi-megabyte body over and over.
• There should be a hard or obvious bandwidth bound so a long/stuck Agent cannot silently consume hundreds of gigabytes.

───

Screenshots / Screen Recordings

I can attach proxy graphs for cursor.sh on Aug 17–20 if useful. Not posting chat logs or repo contents.

───

Operating System

• MacOS (Apple Silicon)

───

Version Information

Current install (Menu → About Cursor → Copy may differ slightly):

IDE:
Version: 3.18.6
VSCode Version: 1.128.0
Commit: 66ed23114faa025e9308d6bce1b57763e5745170

The spike happened while this machine was on Cursor 3.18.3, update track dev (update.releaseTrack: “dev”). I have since updated; please do not treat 3.18.6 as the only version in play.

───

For AI issues: which model did you use?

GPT-5 in Cursor Agent / Composer (also Auto / default Agent models for some parallel runs). This is a bandwidth issue, not a wrong-model-output issue.

───

For AI issues: add Request ID with privacy disabled

From Aug 19, ~11:15–11:50 local. Please check server-side body size, retry count, and whether these are outliers:

Request ID: 9ce52a9a-50f7-44f0-9183-ce42f9b6e3d4

Request ID: 724a3512-83f0-413f-9818-9f0ffed1bfa4

Request ID: d76eb6b9-c85e-4dbb-86fd-c60fadd78974

Not Cloud / Background Agents (bc-…). These were local Agents.

───

Additional Information

Already ruled out:

• Not ChatGPT / other IDEs (those hosts are separate in the proxy log).
• Not a one-time codebase index (repo42 uploads of 0 files in the worktree logs).
• Not restoring a large Claude Code jsonl (those chats are ~1–2 MB locally).
• Privacy/Ghost mode does not make ~196 GiB/month fine.

Questions:

  1. For those Request IDs, how large was the uploaded body, and were there retries?
  2. In your telemetry, is ~80 GiB upload in one day from a single client an outlier?
  3. Is it expected that 92 skills + 92 rules are resent on every tool round-trip? If yes, that still needs to change.
  4. Should HTTP Compatibility Mode be HTTP/1.1 / disable HTTP/2 behind a local proxy? If retries duplicate bodies, that may explain a large fraction of the 170 GiB — I still need a client-side fix, not only a workaround.

Happy to attach Network Diagnostics or more traces.

───

Does this stop you from using Cursor?

• Yes - Cursor is unusable

For long / parallel Agent runs, until this cannot happen again. I will not treat ~171 GiB in four days as a normal bill for using the product.

Hi there!

We detected that this may be a bug report, so we’ve moved your post to the Bug Reports category.

To help us investigate and fix this faster, could you edit your original post to include the details from the template below?

Bug Report Template - Click to expand

Where does the bug appear (feature/product)?

  • Editor, Tab & Chat (autocomplete, Composer, in-editor agent)
  • Terminal & commands
  • Models, pricing & API keys (availability, Auto/Max, BYOK/Bedrock)
  • MCP & tools
  • Cloud Agents & Automations (cursor.com/agents, scheduled/event)
  • BugBot & Code Review
  • Cursor CLI
  • Cursor Mobile
  • Remote (SSH / Dev Containers / WSL)
  • Account, billing & login
  • Something else…

Describe the Bug
A clear and concise description of what the bug is.


Steps to Reproduce
How can you reproduce this bug? We have a much better chance at fixing issues if we can reproduce them!


Expected Behavior
What is meant to happen here that isn’t working correctly?


Screenshots / Screen Recordings
If applicable, attach images or videos (.jpg, .png, .gif, .mp4, .mov)


Operating System

  • Windows 10/11
  • MacOS
  • Linux

Version Information

  • For Cursor IDE: Menu → About Cursor → Copy
  • For Cursor CLI: Run agent about in your terminal
IDE:
Version: 2.xx.x
VSCode Version: 1.105.1
Commit: ......

CLI:
CLI Version 2026.01.17-d239e66

For AI issues: which model did you use?
Model name (e.g., Sonnet 4, Tab…)


For AI issues: add Request ID with privacy disabled
Request ID: f9a7046a-279b-47e5-ab48-6e8dc12daba1
For Background Agent issues, also post the ID: bc-…


Additional Information
Add any other context about the problem here.


Does this stop you from using Cursor?

  • Yes - Cursor is unusable
  • Sometimes - I can sometimes use Cursor
  • No - Cursor works, but with this issue

The more details you provide, the easier it is for us to reproduce and fix the issue. Thanks!

Hey @TamaTown,
We checked your three request IDs: those agent runs are normal, skills/rules aren’t re-sent per tool call, and there was no retry loop, so HTTP/1.1 wouldn’t change your numbers. Almost all of that upload is a background codebase-sync that runs when your privacy settings allow codebase data to help improve the product, not the agent path.

To stop it today:

  • Enable Privacy Mode: Cursor Settings (Cmd+Shift+J) → General → toggle Privacy Mode on. That turns the sync off entirely (docs).
  • Close Agent windows/worktrees you’re not using - each open one syncs its own copy, which is what multiplied the volume.
    This shouldn’t be able to silently upload that much, and it’s not on you to manage. We’ve let the team know and it’s an issue we’re tracking. I’ll follow up here when there’s an update.

Thanks for checking.

I’ll enable Privacy Mode first as a workaround. Please keep this on the radar — the traffic volume is genuinely frightening, and it’s even more so on a metered / traffic-billed connection like mine.

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Cursor appears to generate sustained background upload traffic related to Local Agent or codebase synchronization, even when no project or Agent task is visibly active.

My 150 GB metered network plan was exhausted in about five days. During a controlled 7-minute-37-second test, the physical macOS Wi-Fi interface (en0) recorded 777 MB of upload traffic. Clash showed a sustained upload rate of approximately 1–4 MB/s. After I completely exited Cursor, the upload rate immediately dropped to approximately zero.

An extension-host process associated with an old workspace remained active while Cursor appeared idle. When I terminated it, Cursor automatically started another process with a new PID. The logs also contain repeated Uploading … files, codebase indexing/retrieval activity, and thousands of connections to Cursor domains.

A clean Cursor profile launched with extensions disabled did not immediately reproduce the large idle upload. Privacy Mode was disabled during the incident and is now enabled.

This appears similar to:

Steps to Reproduce

Use Cursor Agent with Privacy Mode disabled and open one or more local workspaces or worktrees.

Close the visible project/Agent windows, but leave Cursor running.

Monitor outbound traffic using the physical network-interface counters or a system proxy.

Observe sustained background upload traffic while Cursor appears idle.

Completely exit Cursor and observe that the upload traffic immediately stops.

The issue may depend on stale Local Agent, worktree, indexing, or extension-host state stored in the existing Cursor profile.

Expected Behavior

Cursor should stop codebase synchronization when the related workspace or Agent session is closed. It should not silently upload large amounts of data while idle.

Cursor should also display which workspace is being synchronized, show the amount of data transferred, and warn users before performing unusually large background uploads on a metered connection.

Operating System

MacOS

Version Information

Cursor 3.18.25
macOS 14.6.1 (23G93)
Apple Silicon MacBook Pro

For AI issues: which model did you use?

Not model-specific. The traffic occurred as background Local Agent/codebase synchronization while no active model request was visible.

Does this stop you from using Cursor

No - Cursor works, but with this issue

It’s a background codebase sync that runs when your privacy settings allow codebase data to help improve the product. It uploads a copy per open Agent window/worktree, and interrupted uploads restart from the beginning instead of resuming, which is what multiplied the volume (and kept an old workspace’s extension host alive).

Privacy Mode turns it off entirely, so you’re set. If you turn it back off, close the Agent windows/worktrees you’re not using, since each one syncs its own copy. It’s an issue we’re tracking, and I’ll follow up here when there’s an update.