Cursor IDE can talk to ISH through the OpenAI-compatible API path. The useful part is simple: keep Cursor pointed at https://api.ish.chat/v1, use your ish_live_ key, and choose an ISH alias that Cursor can pass through cleanly.
This guide covers the setup, the model aliases, and the common Cursor-specific issues.
What you need
Before opening Cursor settings, make sure you have:
- An ISH account.
- Purchased API balance. Cursor/API traffic does not spend the free daily chat balance.
- An API key from api.ish.chat/keys.
- A Cursor plan that supports custom API keys and provider settings.
Create the key, copy it once, and keep it private. ISH stores only the hash of the key, so the full secret will not be visible later.
Recommended Cursor settings
In Cursor, open settings for models and API keys, then configure the OpenAI-compatible provider:
Connection mode: OpenAI-compatible
OpenAI Base URL: https://api.ish.chat/v1
OpenAI API Key: ish_live_your_key_here
Model: ish-claude-sonnet-4.6
The base URL should include /v1. That is the correct form for Cursor because Cursor is using the OpenAI-compatible route.
Why aliases exist
Cursor can be picky with model names. ISH accepts ish-... aliases so the model name is easy to route and does not collide with built-in Cursor/provider model IDs.
Good defaults:
| Cursor model alias | Routed model |
|---|---|
ish-claude-haiku-4.5 | claude-haiku-4.5 |
ish-claude-sonnet-4.6 | claude-sonnet-4.6 |
ish-claude-opus-4.8 | claude-opus-4.8 |
ish-claude-sonnet-5 | claude-sonnet-5 |
ish-gpt-5.6-sol | gpt-5.6-sol |
ish-qwen3.7-max | qwen3.7-max |
The public /v1/models endpoint is kept clean with canonical model IDs. Aliases are accepted on request, but not exposed as separate models, because that keeps SDKs and other coding tools less confused.
Test the key outside Cursor
If Cursor does not respond, test the API directly:
export ISH_API_KEY="ish_live_your_key_here"
curl https://api.ish.chat/v1/chat/completions \
-H "Authorization: Bearer $ISH_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "ish-claude-haiku-4.5",
"messages": [
{ "role": "user", "content": "Reply exactly: ISH_OK" }
],
"max_tokens": 64
}'
If curl works, the ISH key, balance, and endpoint are fine. The remaining issue is inside Cursor settings or model selection.
What usage looks like
Cursor requests through ISH appear in api.ish.chat/usage. Each row shows:
- key name and prefix
- endpoint type
- model
- input and output usage
- charged amount
- status
This matters because IDE agents can send more than the text you typed. They may include selected files, project context, tool calls, and prior state.
Common errors
Cursor rejects the custom API
Check that your Cursor account and plan support custom API key/provider settings. Then re-save the API key and base URL.
Model not found
Use an ISH alias:
ish-claude-sonnet-4.6
Avoid provider-prefixed names from other gateways unless ISH explicitly documents them.
Request reaches ISH but Cursor delays output
Check api.ish.chat/usage. If the request appears and succeeds, ISH received it and charged it. The remaining delay is likely Cursor-side buffering, mode behavior, or upstream model latency.
Insufficient balance
Add balance from api.ish.chat/dashboard. Cursor traffic is API usage, so it does not spend free daily web chat usage.
Best default
Use ish-claude-sonnet-4.6 for normal work. Use ish-claude-haiku-4.5 for cheaper quick checks. Use an Opus-class model only when the task actually needs deeper reasoning.
Useful links:



