Skip to content

Commit 47f4cd3

Browse files
committed
Cursor billing research
1 parent 11f146b commit 47f4cd3

2 files changed

Lines changed: 61 additions & 3 deletions

File tree

apps/cursor.billing.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
Notes for how Cursor billing works for me. Each time you hit `[ENTER]` to send a new reply uses Requests. If you are at the monthly limit, then you start on-demand billing based on token costs. As long as I stay under the monthly request quota (e.g. 500/month), I don't care if a single request consumes huge token counts.
2+
3+
A long, multi-turn question-session in Cursor counts as **1 request** in [the usage dashboard](https://cursor.com/dashboard/usage), even when the agent and I exchange dozens of question/answer rounds inside that turn.
4+
5+
Per [Cursor's pricing policy](https://cursor.com/terms/pricing), on-demand usage is technically based on **Total Tokens** (input + output + cache read/write). For my work's Cursor setup, the dashboard still exposes a request-like included-usage meter, so I am incentivized to optimize for fewer user turns.
6+
7+
## Long Q&A Sessions Still Count as 1 Request
8+
I tested this with a Python→Node migration spec session: ~14 questions in one AI response, my answers inline, then ~5 follow-ups, all within the same chat. Dashboard recorded **1 request**.
9+
The currently observed behavior means [[spec-driven-design]] workflows *where the agent batches all clarifying questions* are essentially "free" past the first request. The cost is wall-clock time, not requests.
10+
11+
## Request Multipliers Per Model
12+
Observed from CSV usage events. Each event = one user turn + agent response.
13+
14+
Cursor’s [current pricing policy](https://cursor.com/terms/pricing) says model/API fees are calculated from **Total Tokens** across input, output, and cache read/write tasks, not simply “one chat bubble equals one flat request.” ...so I guess my usage limits might not be tied directly to my work's costs?
15+
### Request Units as of 2025-05
16+
This is empirical from my CSV export:
17+
18+
| Model | Requests / turn |
19+
| -------------------------------- | --------------- |
20+
| `auto` | 0-1 |
21+
| `claude-4.6-sonnet-medium` | 1 |
22+
| `claude-4.6-opus-high-thinking` | 2 |
23+
| `claude-4.6-opus-high` | 1 |
24+
| `claude-opus-4-7-thinking-xhigh` | **1** |
25+
| `composer-2-fast` | **2** |
26+
| `composer-2` | 1 |
27+
| `gpt-5.4-medium` | 0-1 |
28+
| `gpt-5.5-medium` | 2 |
29+
30+
Notable: `claude-opus-4-7-thinking-xhigh` (highest reasoning tier on Opus 4.7) costs only 1 request, while older `claude-4.6-opus-high-thinking` costs 2. Picking the newer Opus is strictly cheaper for max-reasoning work.
31+
32+
`composer-2-fast` being 2x the cost of `composer-2` is counter-intuitive if you assumed it was doing less work (the "fast" variant costs more, not less).
33+
34+
## Spec-driven loop with `code --wait`
35+
This is an interesting solution, but **useless** for now.
36+
The `code --wait` CLI flag holds the shell open until the file is closed. An agent skill could leverage this for human-in-the-loop questioning inside a single agent turn:
37+
38+
```text
39+
Cursor agent starts task
40+
→ writes questions to .cursor/spec-questions.md
41+
→ runs: code --wait .cursor/spec-questions.md
42+
→ I edit answers, save, close
43+
→ code command returns
44+
→ agent reads answers, continues loop
45+
```
46+
47+
This **saves interaction turns** (one request even with many Q&A rounds), but does **not** save tokens — the agent still re-processes context each loop. Per Cursor's pricing, that token usage is real even when "Requests" stays at 1.
48+
49+
But whether you use Q&A or `code --wait`: ask all blocking spec questions in **one batch**, not a series of small ones, to minimize both turns and re-processed context.
50+
51+
## After hitting the monthly request limit
52+
Auto model selection keeps working without additional usage-based pricing. So 500 requests/month is a soft ceiling — past it, work continues on Auto-routed models at no extra cost (just possibly lower-tier model selection).
53+
54+
## Unverified
55+
56+
- Whether the `0` rows are only free after exhausting 500 requests.
57+
- Whether `composer-2-fast = 2 requests` is a billing bug, a documentation gap, or intentional (paying 2x for lower latency)
58+
- Whether AI-comparable "request multipliers" advertised elsewhere (e.g. ChatGPT-derived numbers like Gemini-3-Flash 0.5x, Opus 5x) match Cursor's actual billing — they did not match my dashboard last time I checked

apps/cursor.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Cursor-specific concerns with [[devcontainer]]:
1111

1212
## Searching workspace chats
1313
- [ ] Update this with the [Cursor Agents Windows](https://cursor.com/blog/cursor-3) which solves many of these problems!
14+
- [ ] AI says: stop treating Cursor’s archive as a reliable retrieval system. Archiving may keep the UI clean, but it looks risky as your long-term “audit log.”
1415

1516
[cursor-history](https://github.com/S2thend/cursor-history) is fast
1617
```
@@ -30,10 +31,9 @@ Clone and run https://github.com/thomas-pedersen/cursor-chat-browser
3031
- [ ] look into [Chat missing ](https://github.com/thomas-pedersen/cursor-chat-browser/issues/23#issuecomment-2661116563) for git worktrees missing
3132

3233
- [ ] WAIT on [No Way To Search All Chats or Export All Chats · Issue #34](https://github.com/thomas-pedersen/cursor-chat-browser/issues/34)
33-
## Model Multipliers
34-
I tried asking ChatGPT for the model multipliers (i.e. **Gemini-3-Flash** uses 0.5x token multiplier, while **Opus** uses 5x?) But the numbers didn't match https://cursor.com/en-US/dashboard?tab=usage
34+
## Billing and request multipliers
35+
See [[cursor.billing]] for per-model request multipliers, the "long chat = 1 request" behavior, and the post-quota Auto-fallback.
3536

36-
*AI finding: after you hit your monthly limit, you can keep using Auto model selection without additional usage-based pricing*
3737
## Workaround for pwsh crashing Agent
3838

3939
Cursor’s integrated agent defaults to PowerShell, causing:

0 commit comments

Comments
 (0)