> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.asi1.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.asi1.ai/_mcp/server.

# Set Up ASI:One in Cursor

> Add asi1-ultra and the other ASI:One models to Cursor through its OpenAI API key settings.

## Overview

Use your ASI:One models with Cursor with your existing ASI:One subscription.

## Prerequisites

* Cursor installed.
* An ASI:One API key. Create one at [asi1.ai/developer](https://asi1.ai/developer).
  Keys start with `sk_`.
* An ASI:One plan that includes `asi1-ultra`. The same key also works for `asi1`
  and `asi1-mini`.

## Point Cursor at ASI:One

1. Open **Cursor Settings → Models**.
2. In **API Keys**, paste your ASI:One key into the **OpenAI API key** field.
3. Turn on **Override OpenAI Base URL** and enter:

```text
https://api.asi1.ai/v1
```

## Add the models

Cursor doesn't discover ASI:One models on its own, so add them by name.

1. Still in **Models**, click **Add Custom Model**.
2. Enter `asi1-ultra`.
3. Repeat for `asi1` and `asi1-mini` if you want them in the picker too.
4. Make sure each one is turned on.

## Choose the model

Open a chat, pick `asi1-ultra` in the model picker, and send a message. Use
`asi1-ultra` for deep refactors, debugging and reviews, and switch to `asi1` or
`asi1-mini` for routine edits where speed matters more. See [ASI:One Models](/documentation/models) for the tradeoffs.

## Things to know

> **Warning**
>
> The base URL override applies to **every** OpenAI model in Cursor, not just the
> ASI:One ones. While it is on, picking a GPT model sends that name to ASI:One,
> which answers `404`. Turn those models off, or turn the override off when you
> want them back.

* **Tab completion is not affected.** Tab and some built-in features run on
  Cursor's own models and can't be billed to your key, so they keep working as
  before and don't use ASI:One.
* **Context windows.** Cursor manages how much context it sends. The limits for
  each model are on the [Models](/documentation/models#comparison) page.

## Troubleshooting

| Symptom                                     | Cause and fix                                                                                                                       |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `401`, or Cursor reports the key is invalid | The key is wrong or has been revoked. Create a new one at [asi1.ai/developer](https://asi1.ai/developer).                           |
| `404` model not found                       | The selected model isn't an ASI:One model, or the custom model name is misspelled. Pick one of `asi1`, `asi1-ultra` or `asi1-mini`. |
| Rate limit errors                           | See [Errors and Rate Limits](/documentation/build-with-asi-one/errors).                                                             |

## Next steps

1. **[Codex](/documentation/coding/codex)**: the same models in the Codex CLI
2. **[OpenCode](/documentation/coding/opencode)**: the same models in OpenCode
3. **[Zed](/documentation/coding/zed)**: the same models in the Zed editor
4. **[ASI:One Models](/documentation/models)**: choosing between `asi1`, `asi1-ultra` and `asi1-mini`
5. **[OpenAI Compatibility](/documentation/build-with-asi-one/openai-compatibility)**: which parameters each endpoint supports