Cursor AI setup: models, your own key, rules and indexing
A step-by-step Cursor setup: your own key with the gateway address, models, project rules, context exclusions and a connection check. What to do on day one.
6 min · · IDE · development
Setting up Cursor AI takes about fifteen minutes if you know the order: first connect a model, then context exclusions, then project rules, and only then everything else. Below is a step-by-step guide that marks what to do on day one and what can wait. Cursor's interface updates often, so menu item names may differ slightly: go by the meaning and check against the Cursor documentation.
Step 1. Check the key before typing it into Cursor
The most common cause of "it does not work" is a mistake in the key or address, not in the editor. Verify your Zukko key from a terminal before opening the settings:
curl https://api.zukko.pro/v1/models \
-H "Authorization: Bearer fetch_your_key"A response with a list of models means the key and the address are right. Then send one short request:
curl https://api.zukko.pro/v1/chat/completions \
-H "Authorization: Bearer fetch_your_key" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5-5","messages":[{"role":"user","content":"Answer with one word: ready"}]}'The key is created on the API keys page of the dashboard and shown in full only once. A 401 means a wrong or incomplete key, a 402 means a zero balance.
Step 2. Connect your own key and the base URL
This is the core of a Cursor AI setup, and according to the Zukko documentation it looks like this:
- Open Cursor Settings → Models.
- Enable your own OpenAI key and paste
fetch_.... - Enable the Base URL override (Override OpenAI Base URL) and enter
https://api.zukko.pro/v1. The/v1suffix is required here: Cursor talks to the gateway as an OpenAI-compatible client, and that is Zukko's OpenAI-format address. - Add a model name, for example
cursor-sonnet-5(the second name ofclaude-sonnet-5: Cursor does not let you create a model whose name it already knows, so the Zukko docs give second names for the popular Claude models), and click Verify.
Three caveats worth knowing before you start:
- According to Zukko's documentation, overriding the provider requires a paid Cursor plan. Cursor's plans change, and on some plans using your own keys may be unavailable, so check on cursor.com/pricing.
- Your own key works only with chat models. Autocomplete stays on Cursor's built-in models.
- According to Cursor's documentation, all requests are routed through its servers (that is where the final prompt is built), so the gateway address must be reachable from the internet. A
localhostaddress will not work.
If Cursor says such a model already exists, it will send the request to its own backend, not to you. In that case take an alternative name from the table in Zukko's documentation. If models did not appear after you changed the address, see the article Cursor does not see models.
Step 3. Choose models
Add two or three models and switch between them by task. Prices per 1M tokens as of October 18, 2026 (input / output):
| Task | Model | Input / output | Context |
|---|---|---|---|
| Everyday agent work | claude-sonnet-5-5 | 0.4 / 2 | 1M |
| Hard refactoring, architecture | claude-opus-5-5 | 0.8 / 4 | 1M |
| A GPT-format alternative | gpt-6.1-sol | 0.27 / 1.32 | 1M |
| Bulk routine work, code questions | deepseek-v4.1-flash | 0.013 / 0.038 | 1M |
Which model handles your code best can only be decided by testing on your own tasks. For the current list and prices, call GET https://api.zukko.pro/v1/models or open the "Models" page in the dashboard. For Claude in the OpenAI format the cache gives no discount: all input is billed at the input price.
Step 4. Exclude the unnecessary from the context
Do this on the first day: it reduces both token spending and the risk of secrets landing in a request. Cursor reads the project and by default ignores files from .gitignore plus its own default list (which includes .env*, node_modules/, binaries, archives and similar). Anything else is excluded with a .cursorignore file in the project root, using .gitignore syntax:
secrets/
**/*.pem
**/credentials.json
dist/
build/
data/dumps/The settings have an Indexing section with an Ignore Files item: there you enable searching parent directories for .cursorignore and set a global list for all projects. Put **/.env, **/*.key and **/id_rsa there. According to the documentation, .cursorignore limits access for the agent, autocomplete and @ mentions, but the agent's terminal and MCP tools are not blocked by this file, and it does not guarantee full protection against leaks.
About indexing itself: according to Cursor's current documentation, exact-match search (Instant Grep) builds and uses its index on your machine, and code is not uploaded to build the search index. But the content of a file the agent opened can still end up in a request to the model, that is, go to the provider of your key.
Step 5. Write a short project rule
Rules are the best-paying setting. They live in .cursor/rules as .mdc files with metadata, and the easiest way to create one is the /create-rule command in the agent chat. A simple markdown alternative is an AGENTS.md file in the root. An example of a rule that always applies:
---
alwaysApply: true
---
- Read the whole file before editing, do not guess its contents.
- Run tests with `npm test` and the linter with `npm run lint`.
- Do not touch the `dist/` and `generated/` directories.
- Reply in Russian; keep code and code comments in English.Principles: a rule shorter than 500 lines, concrete, with links to example files instead of copied code. Everything in rules with alwaysApply is sent with every request, so bloated rules cost tokens. More in the article how to write Cursor rules.
Step 6. Set a limit on the key side
Create a separate key for Cursor, set a daily and monthly limit in dollars and, if you like, a list of allowed models. All of this is set in the key settings in the dashboard. That way a looping agent hits a ceiling rather than a zero balance.
The balance is topped up from $1: via SBP (the payment page adds 8.5% on top, and the balance receives the dollar amount you requested), with cryptocurrency, or with a MasterCard card (fee of about 13%, amounts $2 to $594).
What to set up later
- MCP servers. Connect them one at a time and only the ones you need: each adds descriptions of its tools to the context.
- Privacy and data policy. Open the corresponding settings section and Cursor's documentation. According to Cursor's documentation, Cursor's zero data retention policy does not apply to requests made with your own key: the key provider's rules apply.
- Agent modes. Plan Mode (via
Shift+Tab) is worth using for tasks across several files.
FAQ
Verify shows an error. What should I check?
The address with /v1, the whole key (it starts with fetch_), a model name from GET /v1/models, and a positive balance. If the curl from step 1 works but Verify does not, the problem is the model name or the Cursor setting itself.
Do I need to choose the Anthropic provider for Claude?
In Cursor the OpenAI option with a Base URL override is what works: Claude is called in the OpenAI format. The Anthropic format with https://api.zukko.pro (no /v1) is for Claude Code and the official Anthropic SDK; the general rules are in choosing a format.
How do I find out what the setup costs?
Look at "Usage" in the dashboard: it shows spending per key. You can estimate in advance with the formula input × input price / 1,000,000 + output × output price / 1,000,000.
Can I keep several models?
Yes, add them to the model list and switch in Cursor's interface. Allow the key only the ones you need.
If you have not created a key yet, start from the API keys page.
zukko
Pay 25×
less
for Claude Code & ChatGPT
One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.
Related articles
- A neural network for Lua and Roblox: writing Luau scripts with AIWithout guidance a model may confuse Lua with Luau and suggest outdated Roblox APIs. How to phrase the task, check the code and connect an agent to your project.
- How to connect Qwen to VS Code: Companion, Cline and ContinueTwo ways to get Qwen in your editor: the official Companion for Qwen Code, or the Cline, Kilo Code and Continue extensions with an OpenAI-compatible key.
- Claude Code in JetBrains: IntelliJ IDEA and PyCharm on Your Own KeyThe plugin does not bundle Claude Code. It launches the console agent in the IDE terminal. Install, gateway key, diffs and common failures explained.
- Cursor for 1C: writing BSL code with an AI agentHow to open a 1C configuration dump in Cursor, write rules for BSL, give the agent metadata and avoid accepting invented code. With a session cost estimate.