Skip to content

COMPARISONS

Claude Code vs Cursor 2026: What Actually Transfers

Claude code vs cursor 2026 is now a migration question, and Claude Code ships the instrument. We ran its Cursor importer over a fixture and counted what it takes.

Claude code vs cursor 2026 is no longer a question about terminals and editors — Cursor ships a CLI and Claude Code ships editor integrations, so that axis closed. What is left is a migration cost, and Claude Code 2.1.273 ships the instrument to price it: claude import cursor. We built a Cursor project fixture, ran the importer four times with one file different each time, and counted. It takes the legacy .cursorrules file and ignores AGENTS.md — the one file both tools genuinely share. Our best AI coding assistant comparison ranks the field; this prices the move between two of them.

Key takeaways

  • claude import cursor --dry-run counted 4 project items for a .cursor/ directory, 4 with AGENTS.md added, and 5 with .cursorrules added.
  • The importer therefore skips the cross-vendor file and counts the format Cursor's own documentation treats as superseded.
  • Project-level items are never importable non-interactively, with repository write access given as the reason.
  • The user-level scan reported two Cursor "skills" on a machine with no Cursor installed; they came from the vendor-neutral ~/.agents/skills directory.
  • The dry run wrote nothing: the fixture tree was unchanged afterwards.

Claude code vs cursor 2026: what changed

Every comparison written before this year separates the two by surface. That separation is gone. Cursor's CLI runs the same .cursor/rules/ and MCP servers as the desktop editor, and Claude Code has had IDE integrations for longer than that. Our original terminal versus editor workflow comparison still holds on how each one frames a task, and this article does not re-run it.

What replaced the surface question is a configuration question. Both tools now keep their real instructions in committed files, and those files are not the same files. So the useful 2026 version of "Cursor or Claude Code" is: if I move, what comes with me, and what do I rewrite by hand?

The importer, and the fixture

Claude Code answers part of that itself.

Terminal
claude import --help
# → Import config from another AI coding agent into Claude Code
# → source      Which agent to import from (codex, gemini, cursor)
# → --dry-run   Show what would be imported without writing anything

The fixture is a small but complete Cursor project, committed to this repository so the run is reproducible rather than described.

scripts/fixtures/cursor-project
.cursor/
  rules/
    typescript.mdc     ← description, globs, alwaysApply frontmatter
    always.mdc         ← alwaysApply: true
  commands/
    ship.md
  mcp.json             ← mcpServers, same shape as .mcp.json
.cursorrules           ← legacy single-file rules
AGENTS.md              ← the cross-vendor instruction file
src/index.ts

Every one of those paths is a documented Cursor surface. Cursor's rules documentation describes .cursor/rules as .mdc files carrying description, globs and alwaysApply, and names AGENTS.md as a plain-markdown alternative for the project root.

The count matrix

Run the importer over the fixture, then remove one file and run it again. The difference in reported project items names the file it counts.

Fixture contentsProject itemsDelta
.cursor/ only (4 files)4
.cursor/ + AGENTS.md4+0
.cursor/ + .cursorrules5+1
.cursor/ + both5+1
Terminal
npm run check:cursor-import

The committed check treats that table as arithmetic rather than prose: it asserts the deltas, that the full fixture equals the sum of its parts, and that every path named in a run still exists on disk. Mutate one count and it goes red.

The file that does not move

AGENTS.md adds zero. That is the finding, and it is strange in a specific way: Cursor reads AGENTS.md, and so — via one import line — does Claude Code. It is the only instruction file the two tools genuinely have in common, and it is the one the migration tool steps over.

Meanwhile .cursorrules adds one. Cursor's rules documentation presents the .mdc directory format as the current project-rules mechanism, with the single root file as the older shape. The importer counts the old format and skips the shared one.

The skip stings more once you know how Claude Code treats that file on its own. Our AGENTS.md context measurement found that an unimported AGENTS.md never reaches the model at all — so a migrated Cursor project can end up with the right file committed, untouched by the importer, and silently inert.

The practical consequence for a migration plan: audit AGENTS.md yourself, because nothing will tell you it was skipped. The importer's item count is not a count of your instructions.

The skip is also specific to this source rather than general. Run the same scan with codex named instead, against a directory holding nothing but AGENTS.md, and it counts one project-level item — the same file, +1 there and +0 here, measured the following day.

Project config is deliberately withheld

The second result is a policy, not a bug. In every run, project-level items were counted and then not listed, and the non-interactive path refused to touch them.

claude import cursor --dry-run
Project-level (4 items) from this repo's agent config directory.
They're deliberately withheld and `--yes` won't touch them,
because anyone with write access to the repo could have authored them.

That is the right instinct, and it is the mirror image of a hazard we measured earlier: our MCP setup walkthrough found that a .mcp.json arriving in a pull request runs unprompted the moment anything invokes Claude non-interactively. Here the CLI takes the opposite stance on the same class of file. A rules file, a command file and an MCP server definition are all executable instructions authored by whoever could push to the branch, and the importer makes you look at each one.

The cost is that there is no scripted migration. --yes exists, and on a repository like this one it would import nothing useful.

The user-level scan found a tool that is not here

The user-level half of every run reported the same two items.

claude import cursor --dry-run
User-level (2 items), both skills:
- `shopify-dev`
- `shopify-use-shopify-cli`
Each also had 2 frontmatter keys (`metadata`, `hooks`) dropped.

Cursor is not installed on this machine. There is no ~/.cursor directory. Those two items are the entire contents of ~/.agents/skills, a vendor-neutral location written on 2026-09-04 by a GitHub-sourced Shopify toolkit, and the dropped frontmatter keys match those files exactly — so the scan really did read them.

Read charitably, that is the standard working: user-level agent skills live in a shared directory and the importer looks there. Read practically, it means claude import cursor will report items on a machine that has never run Cursor, and anything in that shared directory is offered to you under another vendor's name. The flag is earned — a skill directory copies whole, bundled scripts included, and once loaded it stays in context for the session.

Which one to pick

Decide on where your instructions live, because that is the part that does not port.

  • Several agents, one contract. Write AGENTS.md, add @AGENTS.md to CLAUDE.md, and both tools read one file. Claude Code costs one line here; Cursor costs nothing.
  • Rules that load conditionally. Cursor wins outright. globs and alwaysApply in .mdc frontmatter scope a rule to file types, and Claude Code has no equivalent — an imported rule is either always in context or not there.
  • Config that reaches a teammate through git. Both keep project config in the repository. The difference is what happens on arrival, and Claude Code's importer is the more suspicious of the two.
  • Money. Cursor's individual Pro plan is $20/month with usage-based billing beyond the included amount, as of 2026-09-16. The full picture belongs in our AI coding tools pricing comparison, not in a migration article.

What did not work

The first trace we captured was worthless and nearly got published. Running claude -p "/import cursor --dry-run" from Git Bash does not run the importer. The shell rewrites the leading slash into C:/Program Files/Git/import, so the session receives a file path, improvises by reading the fixture by hand, and concludes that /import does not exist. It does — the init event lists it among 86 slash commands. Every tool call in that transcript was the model guessing at the job, not the importer doing it, and the whole trace was discarded.

One count was inferred before it was tested. With the full fixture at 5 items and the .cursor-only fixture at 4, subtraction said .cursorrules was the counted file. That is sound arithmetic and it was still run directly, because the roadmap rule here is that a number nobody watched is a guess. The direct run returned 5, as predicted.

No output-quality claim is made anywhere above. Cursor is not installed here. Everything in this article measures which files move and what the CLI does with them; nothing measures which tool writes better code, and no table pretends otherwise.

Best practices

  • Run --dry-run first and read the counts, not the prose. The item totals are the part that is checkable.
  • Audit AGENTS.md by hand. The importer will not mention it, in either direction.
  • Migrate project config through the interactive picker. It is slower on purpose; a rules file is executable instruction text from whoever had push access.
  • Convert glob-scoped rules deliberately. Decide per rule whether it becomes permanent CLAUDE.md content or gets dropped, rather than pasting all of them in.
  • Check ~/.agents/skills before you accept a user-level item. What is offered as Cursor config may have been installed by something else entirely.

Conclusion

If you are weighing claude code vs cursor 2026, stop comparing surfaces and compare what your repository would have to become. Keep the shared rules in AGENTS.md, bridge them with one line, and treat claude import cursor as a survey rather than a migration — measured on 2.1.273 it counts the legacy rules file, skips the shared one, and hands every project item back to you for review. Read our terminal versus editor comparison next if the workflow question is still open for you.

Frequently asked questions

Can Claude Code import my Cursor configuration?
Partly. claude import cursor scans user-level and project-level config and reports what it found, but on 2.1.273 project-level items are never importable non-interactively. The stated reason is that project config can be authored by anyone with repository write access, so each item needs review in the interactive picker.
Does the Cursor importer pick up AGENTS.md?
No. Adding an AGENTS.md to our Cursor fixture changed the reported project item count from 4 to 4. Adding a .cursorrules file changed it from 4 to 5. The importer counts the legacy single-file format and skips the cross-vendor file that both tools otherwise treat as first class.
Is Cursor or Claude Code better in 2026?
They stopped being separable by surface — Cursor ships a CLI and Claude Code ships IDE integrations. Pick on where your instructions live: if you want one committed contract that several agents read, Claude Code needs one import line and Cursor needs none. If you want rule scoping by glob, Cursor's .mdc frontmatter has no Claude Code equivalent.
What does claude import cursor actually write?
With --dry-run, nothing — we verified the fixture tree was byte-identical afterwards. Without it, the interactive picker writes only the items you check. Skill directories are copied whole and flagged, because bundled scripts come with them and a loaded skill stays in context for the session.
Do I have to rewrite my Cursor rules for Claude Code?
The content ports; the scoping does not. A .cursor/rules/*.mdc file carries description, globs and alwaysApply frontmatter that decides when it loads. Claude Code's CLAUDE.md has no glob-conditional equivalent, so an alwaysApply rule becomes CLAUDE.md content and a glob-scoped rule becomes something you either always load or drop.

Muhammad Kashif

Founder and editor of Devventa, covering AI coding assistants, Next.js and the modern AI development stack.