Windsurf vs Cursor: comparing AI editors by verifiable traits

We compare Windsurf and Cursor on what can be verified: agent modes, Tab, rules, MCP and bringing your own key, with an honest note where the docs are silent.

6 min · · IDE · сравнение

Windsurf and Cursor look like twins: both are built on a familiar editor, both have an agent, code completion and project rules. So the "windsurf vs cursor" query usually ends in arguments about taste. Below is a comparison without rankings, only on traits you can check in the documentation and in one day of work: agent modes, code completion, rules, MCP, bringing your own models and access from Russia. Where the documentation is silent, we say so.

First, about the names

In the current documentation at docs.windsurf.com the editor is presented as Devin Desktop, while plugins for other IDEs are still called Windsurf Plugins. Paths such as ~/.windsurf/plans remain in the documentation. We say "Windsurf" out of habit and for search queries, but you may see the new name in the interface and on the site. Subscription terms for both services change, so we do not quote prices or limits: check the current plan on the service's site.

Windsurf vs Cursor: what is shared and what differs

WindsurfCursor
AgentCascade, modes Code, Plan and AskAgent, a Plan mode, a Debug mode, "projects" with a coordinator
Completion and inline editsTab; Command (Cmd/Ctrl+I)Tab
RulesMemories and Rules, AGENTS.md, workflows.cursor/rules (.mdc files), AGENTS.md, skills
MCPYesYes, mcp.json config
Own modelsThe SWE familyComposer, Grok
Parallel workAgent Command Center, worktreesCloud agents, worktrees
Other IDEsPlugins for JetBrains, VS Code, Vim and othersThe agent in JetBrains through ACP
Settings importFrom VS Code and CursorFrom VS Code

What matters in practice.

The agent. In Windsurf, Plan mode writes the plan into a separate markdown file outside the repository, and you can continue from it in a new session. Ask mode only reads code. Cursor has a similar Plan mode, a Debug mode and "projects" where a coordinator agent splits a large piece of work among other agents. Both support action approval and terminal work.

Completion. Both products have their own models for Tab. The Windsurf documentation states separately that Tab runs on SWE-1-mini, optimized for latency. In Cursor, Tab also runs on built-in models. In both, completion does not switch to your key, so judge its quality only on your own code.

Rules. Both editors read AGENTS.md, so it is better to keep shared instructions there: you are not tied to one tool's format. For path-based fine-tuning Cursor uses .mdc files with metadata. If you are moving, check that a rule that worked with a model in one editor also fires in the other.

Own models and the gateway

This is where the documentation diverges, and it matters if you want to pay for tokens and not only for a subscription.

Cursor. The method is described in our Cursor documentation: Cursor Settings, Models, enable OpenAI API Key and paste the fetch_... key, enable Override OpenAI Base URL and enter https://api.zukko.pro/v1, add a model and click Verify. Then the limits from Cursor itself, as its help pages describe them:

  • own keys work only with chat models, while Tab stays on the built-in ones;
  • all requests go through Cursor's servers;
  • Cursor's zero data retention policy does not apply to requests with your key;
  • availability of own keys depends on the plan, see the terms on the Cursor site;
  • model names Cursor already knows cannot be taken, so the gateway has second names in the documentation table.

One nuance for Claude. Overriding the OpenAI address means requests in the OpenAI format, and in it all Claude input is billed at the input price, with no cache discount. For GPT models the cache is visible in both formats.

Windsurf. The models documentation describes the in-house SWE models, choosing Claude and GPT models through a subscription, and a BYOK mode: you can add your own key only for a few Claude models listed there, in the subscription settings on the website, and only on individual plans. There is no field for your own API address (base URL), so the built-in agent cannot be pointed at a gateway. A workaround remains. The Cline documentation lists the editors it supports, and Windsurf and Cursor are among them. So you can install Cline inside either one and connect it to Zukko using the VS Code extensions guide. The editor's built-in agent and Cline then live side by side, each with its own bill.

Access from Russia and payment

Tokens on your own Zukko key are paid from a dollar balance: top-ups via SBP (the payment page charges 8.5% on top), MasterCard or cryptocurrency, so access from Russia goes through the gateway. Windsurf and Cursor subscriptions are paid to the services themselves; check their availability and payment methods on their sites, as this is outside the gateway.

What an agent costs on your own key in Cursor

A calculation as of October 18, 2026, not a forecast: a workday, 40 agent requests, each with 30,000 input tokens and 1,200 output tokens, OpenAI format, cache not counted.

  • Claude Sonnet 5 (claude-sonnet-5, added in Cursor under the second name cursor-sonnet-5 from the documentation table; 0.4 / 2 per 1M): 30,000 × 0.4 + 1,200 × 2 = 12,000 + 2,400 = 14,400 micro-dollars per request, 14,400 × 40 = 576,000, which is $0.576 a day, $12.67 over 22 days.
  • gpt-6.1-sol (0.27 / 1.32): 30,000 × 0.27 + 1,200 × 1.32 = 8,100 + 1,584 = 9,684 micro-dollars, 9,684 × 40 = 387,360, which is $0.387 a day, $8.52 over 22 days.

Look at real spend under "Usage" in the dashboard, and give the key a daily and monthly dollar limit. Choose a model by strength and price using the model table and your own tests: GET https://api.zukko.pro/v1/models.

What to test in one day

Take one real task and run it through both editors:

  1. An edit across three or four files with tests: how many times did you have to correct the agent?
  2. Completion in your language: does Tab match the project's style?
  3. An AGENTS.md with your rules: is it honored?
  4. Connecting the MCP server you need.
  5. Your own key: can you route requests to the gateway in your version?
  6. Subscription price and limits on the service's site today, not from someone else's review.

FAQ

Can I move settings from one editor to the other?

On first launch Windsurf can import VS Code or Cursor settings. Rules are easiest to move through AGENTS.md.

Does Windsurf support a gateway with an OpenAI-compatible address?

Per the Windsurf documentation, no: BYOK exists only for a few Claude models and without a field for your own address. To work through the gateway, use Cline inside the editor.

Do I need paid Cursor to use my own key?

Yes. Per Cursor's help pages, own keys are not available on every plan: the free plan and some paid ones do not include them. Cursor's terms change, so check its site.

What if I live in the terminal?

Then you may need neither of the two, and console agents may fit better. Comparisons: Claude Code vs Windsurf and Claude Code or Cursor.

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.

Get API keyDocumentation

api.zukko.pro · fetch_*

Windsurf vs Cursor: comparing AI code editors · Zukko