pi-cursor-sdk 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +17 -20
- package/docs/cursor-model-ux-spec.md +6 -6
- package/package.json +1 -1
- package/src/bundled-context-windows.ts +5 -2
- package/src/cursor-fallback-models.generated.ts +4068 -71
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.14 - 2026-05-18
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
- Refreshed the Cursor fallback model snapshot and bundled default/non-Max context-window cache from the current `@cursor/sdk` 1.0.13 catalog, including Composer 2.5 (`composer-2.5` and `composer-2-5`) with default fast-mode support.
|
|
7
|
+
- Updated README, demo, and maintainer model UX docs to use Composer 2.5 as the primary Composer example.
|
|
8
|
+
|
|
3
9
|
## 0.1.13 - 2026-05-18
|
|
4
10
|
|
|
5
11
|
### Fixed
|
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ pi install https://github.com/fitchmultz/pi-cursor-sdk
|
|
|
21
21
|
2. Start pi with a Cursor model:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
pi --model cursor/composer-2
|
|
24
|
+
pi --model cursor/composer-2.5
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
3. In pi, run `/login`, choose `Use an API key`, choose `Cursor`, and paste your Cursor API key.
|
|
@@ -30,7 +30,7 @@ If pi started without a key, run `/cursor-refresh-models` after `/login` to refr
|
|
|
30
30
|
|
|
31
31
|
## Requirements
|
|
32
32
|
|
|
33
|
-
- Node.js
|
|
33
|
+
- Node.js 22.19+
|
|
34
34
|
- pi
|
|
35
35
|
- a Cursor API key saved through `/login`, available as `CURSOR_API_KEY`, or passed with pi's `--api-key`
|
|
36
36
|
|
|
@@ -64,7 +64,7 @@ For development from this repository:
|
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
66
|
npm install
|
|
67
|
-
pi -e . --model cursor/composer-2
|
|
67
|
+
pi -e . --model cursor/composer-2.5
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
## Configure your Cursor API key
|
|
@@ -72,7 +72,7 @@ pi -e . --model cursor/composer-2
|
|
|
72
72
|
Preferred setup:
|
|
73
73
|
|
|
74
74
|
```bash
|
|
75
|
-
pi --model cursor/composer-2
|
|
75
|
+
pi --model cursor/composer-2.5
|
|
76
76
|
```
|
|
77
77
|
|
|
78
78
|
Then, inside pi:
|
|
@@ -89,13 +89,13 @@ Environment setup:
|
|
|
89
89
|
|
|
90
90
|
```bash
|
|
91
91
|
export CURSOR_API_KEY="your-key"
|
|
92
|
-
pi --model cursor/composer-2
|
|
92
|
+
pi --model cursor/composer-2.5
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
One-shot setup:
|
|
96
96
|
|
|
97
97
|
```bash
|
|
98
|
-
pi --api-key "your-key" --model cursor/composer-2 --cursor-no-fast -p "Say ok only."
|
|
98
|
+
pi --api-key "your-key" --model cursor/composer-2.5 --cursor-no-fast -p "Say ok only."
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
Discovery uses pi's native resolution order for this extension: `--api-key`, the stored `cursor` key in `~/.pi/agent/auth.json`, then `CURSOR_API_KEY`.
|
|
@@ -118,7 +118,7 @@ Expected behavior:
|
|
|
118
118
|
Smoke test:
|
|
119
119
|
|
|
120
120
|
```bash
|
|
121
|
-
pi --model cursor/composer-2 --cursor-no-fast -p "Reply with: ok"
|
|
121
|
+
pi --model cursor/composer-2.5 --cursor-no-fast -p "Reply with: ok"
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
## Choosing a model
|
|
@@ -126,7 +126,7 @@ pi --model cursor/composer-2 --cursor-no-fast -p "Reply with: ok"
|
|
|
126
126
|
Choose Cursor models interactively with `/model`, or pass a model on the command line:
|
|
127
127
|
|
|
128
128
|
```bash
|
|
129
|
-
pi --model cursor/composer-2
|
|
129
|
+
pi --model cursor/composer-2.5
|
|
130
130
|
pi --model cursor/gpt-5.5@1m
|
|
131
131
|
pi --model cursor/gpt-5.5@272k
|
|
132
132
|
pi --model cursor/claude-opus-4-7@300k
|
|
@@ -180,10 +180,10 @@ For one run, force fast on or off without changing saved defaults:
|
|
|
180
180
|
|
|
181
181
|
```bash
|
|
182
182
|
pi --model cursor/gpt-5.5@1m --cursor-fast -p "Say ok only"
|
|
183
|
-
pi --model cursor/composer-2 --cursor-no-fast -p "Say ok only"
|
|
183
|
+
pi --model cursor/composer-2.5 --cursor-no-fast -p "Say ok only"
|
|
184
184
|
```
|
|
185
185
|
|
|
186
|
-
|
|
186
|
+
Composer 2 and Composer 2.5 can default to fast. Use `--cursor-no-fast` for a one-shot no-fast Composer run. In print mode (`-p`), `--cursor-no-fast` is silent and does not write `~/.pi/agent/cursor-sdk.json`.
|
|
187
187
|
|
|
188
188
|
In interactive mode, the footer only shows fast mode when fast is enabled:
|
|
189
189
|
|
|
@@ -199,14 +199,11 @@ Images from the latest user message are forwarded to Cursor. Historical images a
|
|
|
199
199
|
|
|
200
200
|
## Fallback models
|
|
201
201
|
|
|
202
|
-
If no key is available from `/login`, `CURSOR_API_KEY`, or `--api-key`, model discovery fails, or discovery returns no models, the extension registers
|
|
202
|
+
If no key is available from `/login`, `CURSOR_API_KEY`, or `--api-key`, model discovery fails, or discovery returns no models, the extension registers a bundled fallback snapshot of the latest reviewed Cursor SDK model catalog and notifies interactive users when possible.
|
|
203
203
|
|
|
204
|
-
- `composer-2`
|
|
205
|
-
- `gpt-5.5@1m`, `gpt-5.5@272k`
|
|
206
|
-
- `claude-sonnet-4-6@1m`, `claude-sonnet-4-6@200k`
|
|
207
|
-
- `claude-opus-4-7@1m`, `claude-opus-4-7@300k`
|
|
204
|
+
The fallback snapshot includes Composer 2.5 (`composer-2.5` and `composer-2-5`), Composer 2, GPT, Claude, Gemini, Grok, Kimi, and other model IDs exposed by the reviewed `Cursor.models.list()` output. The exact checked-in snapshot lives in `src/cursor-fallback-models.generated.ts`.
|
|
208
205
|
|
|
209
|
-
|
|
206
|
+
Actual Cursor runs still need a key from `/login`, `CURSOR_API_KEY`, or `--api-key`. If you add auth after startup, run `/cursor-refresh-models` to refresh the full live Cursor model catalog without restarting pi.
|
|
210
207
|
|
|
211
208
|
## Limits
|
|
212
209
|
|
|
@@ -229,13 +226,13 @@ You can also restart pi with a key in the same shell or launcher that starts pi:
|
|
|
229
226
|
|
|
230
227
|
```bash
|
|
231
228
|
export CURSOR_API_KEY="your-key"
|
|
232
|
-
pi --model cursor/composer-2
|
|
229
|
+
pi --model cursor/composer-2.5
|
|
233
230
|
```
|
|
234
231
|
|
|
235
232
|
Or run a one-shot command:
|
|
236
233
|
|
|
237
234
|
```bash
|
|
238
|
-
pi --api-key "your-key" --model cursor/composer-2 -p "Say ok only"
|
|
235
|
+
pi --api-key "your-key" --model cursor/composer-2.5 -p "Say ok only"
|
|
239
236
|
```
|
|
240
237
|
|
|
241
238
|
### `pi --list-models cursor` shows no Cursor models
|
|
@@ -273,7 +270,7 @@ Cursor SDK local agents load MCP servers from Cursor setting sources and inline
|
|
|
273
270
|
Cursor native replay is a UI enhancement for interactive TTY sessions. If another extension already owns `read`, `bash`, `ls`, `cursor_edit`, or `cursor_write`, this extension skips only the conflicting native replay wrapper and uses the scrubbed Cursor activity transcript for that tool instead. To disable Cursor native replay registration entirely, start pi with:
|
|
274
271
|
|
|
275
272
|
```bash
|
|
276
|
-
PI_CURSOR_NATIVE_TOOL_DISPLAY=0 pi --model cursor/composer-2
|
|
273
|
+
PI_CURSOR_NATIVE_TOOL_DISPLAY=0 pi --model cursor/composer-2.5
|
|
277
274
|
```
|
|
278
275
|
|
|
279
276
|
`PI_CURSOR_REGISTER_NATIVE_TOOLS=0` is also accepted as a registration-only opt-out.
|
|
@@ -306,7 +303,7 @@ Local development run:
|
|
|
306
303
|
|
|
307
304
|
```bash
|
|
308
305
|
npm install
|
|
309
|
-
CURSOR_API_KEY="your-key" pi -e . --model cursor/composer-2
|
|
306
|
+
CURSOR_API_KEY="your-key" pi -e . --model cursor/composer-2.5
|
|
310
307
|
```
|
|
311
308
|
|
|
312
309
|
Maintainer design notes live in [`docs/cursor-model-ux-spec.md`](docs/cursor-model-ux-spec.md).
|
|
@@ -149,7 +149,7 @@ cursor/gpt-5.5@1m
|
|
|
149
149
|
cursor/gpt-5.5@272k
|
|
150
150
|
cursor/claude-opus-4-7@1m
|
|
151
151
|
cursor/claude-opus-4-7@300k
|
|
152
|
-
cursor/composer-2
|
|
152
|
+
cursor/composer-2.5
|
|
153
153
|
```
|
|
154
154
|
|
|
155
155
|
Avoid colon-based context IDs in the first implementation unless this spec is intentionally changed:
|
|
@@ -428,7 +428,7 @@ Use Cursor default variants:
|
|
|
428
428
|
|
|
429
429
|
```text
|
|
430
430
|
gpt-5.5 -> cursor/gpt-5.5@1m, thinking medium, fast=false
|
|
431
|
-
composer-2 -> cursor/composer-2, fast=true
|
|
431
|
+
composer-2.5 -> cursor/composer-2.5, fast=true
|
|
432
432
|
```
|
|
433
433
|
|
|
434
434
|
### Resume Session
|
|
@@ -492,7 +492,7 @@ These examples document the capability shapes the extension handles, not an exha
|
|
|
492
492
|
| Example model shape | Cursor controls | Pi representation |
|
|
493
493
|
|---|---|---|
|
|
494
494
|
| plain model, such as `default` or models with no exposed controls | none | plain model |
|
|
495
|
-
| `composer-2
|
|
495
|
+
| Composer-style model such as `composer-2.5` or `composer-2` | fast | plain model + fast extension state |
|
|
496
496
|
| GPT-style reasoning model with context variants | context, reasoning, fast when exposed | context variants + native thinking + optional fast state |
|
|
497
497
|
| Claude-style thinking model with context variants | thinking, context, effort when exposed | context variants + native thinking + optional fast state |
|
|
498
498
|
| Claude-style thinking model without context variants | thinking and/or effort | plain model + native thinking |
|
|
@@ -504,12 +504,12 @@ If Cursor later adds `fast`, `context`, `reasoning`, `effort`, or aliases to a m
|
|
|
504
504
|
|
|
505
505
|
## Detailed Examples
|
|
506
506
|
|
|
507
|
-
###
|
|
507
|
+
### Composer 2 / 2.5
|
|
508
508
|
|
|
509
|
-
Initial Cursor default:
|
|
509
|
+
Initial Cursor default for Composer 2.5:
|
|
510
510
|
|
|
511
511
|
```text
|
|
512
|
-
pi model: cursor/composer-2
|
|
512
|
+
pi model: cursor/composer-2.5
|
|
513
513
|
Cursor params: fast=true
|
|
514
514
|
pi thinking: off
|
|
515
515
|
Cursor status: cursor fast
|
package/package.json
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
// Generated from Cursor SDK checkpoint tokenDetails.maxTokens on 2026-05-
|
|
1
|
+
// Generated from Cursor SDK checkpoint tokenDetails.maxTokens on 2026-05-18.
|
|
2
|
+
// Refresh with: npm run refresh:cursor-snapshots -- --write --context-windows ~/.pi/agent/cursor-sdk-context-windows.json
|
|
2
3
|
// These are default/non-Max-mode SDK context windows for Cursor models that do not
|
|
3
4
|
// expose a catalog `context` parameter. Do not replace them with Max Mode values
|
|
4
5
|
// unless the Cursor SDK exposes an exact Max Mode model selection and the extension
|
|
5
6
|
// uses that selection for matching pi model IDs.
|
|
6
7
|
export const BUNDLED_CONTEXT_WINDOWS = {
|
|
8
|
+
"default": 200000,
|
|
7
9
|
"claude-haiku-4-5": 200000,
|
|
8
10
|
"claude-opus-4-5": 200000,
|
|
9
11
|
"composer-1.5": 200000,
|
|
10
12
|
"composer-2": 200000,
|
|
11
|
-
|
|
13
|
+
"composer-2.5": 200000,
|
|
12
14
|
"gemini-2.5-flash": 200000,
|
|
13
15
|
"gemini-3-flash": 200000,
|
|
14
16
|
"gemini-3.1-pro": 200000,
|
|
@@ -22,6 +24,7 @@ export const BUNDLED_CONTEXT_WINDOWS = {
|
|
|
22
24
|
"gpt-5.3-codex-spark": 128000,
|
|
23
25
|
"gpt-5.4-mini": 272000,
|
|
24
26
|
"gpt-5.4-nano": 272000,
|
|
27
|
+
"gpt-5.5@272k": 272000,
|
|
25
28
|
"grok-4-20": 200000,
|
|
26
29
|
"kimi-k2.5": 262000,
|
|
27
30
|
} as const satisfies Record<string, number>;
|