← Back to blog

Claude Code vs Cursor: What Actually Transfers When You Switch

I switched from Cursor to Claude Code about three months ago. Then I switched back for a week to test something. Then I switched again. Each time, I lost stuff I didn't expect to lose, and kept stuff I assumed would break.

Here's what I learned about what actually transfers between these two tools, and what doesn't.

## What Cursor stores

Cursor keeps a surprising amount of state locally. Your .cursorrules file (or .cursor/rules directory if you've upgraded) contains project-specific instructions. These are plain text files in your repo, so they survive any tool switch. That part is fine.

What doesn't transfer: Cursor's learned context. If you've been using Cursor on a codebase for weeks, it has built up an understanding of your patterns, your preferred libraries, your naming conventions. That context lives in Cursor's internal index. When you switch to Claude Code, it's gone. You start from zero.

Cursor also stores chat history, tab completion preferences, and custom keybindings in its own config directory. None of that follows you.

## What Claude Code stores

Claude Code takes a different approach. Your CLAUDE.md file (project-level) and ~/.claude/CLAUDE.md (global) are plain Markdown files that live in predictable locations. Memory files in .claude/ directories persist learned preferences and context across sessions.

The interesting part is that Claude Code's memory system is explicit. Instead of silently building up context like Cursor does, it writes things down in files you can read and edit. When I switched back to Cursor for that test week, I could literally open the .claude/ directory and read everything Claude Code had learned about my codebase.

The downside: Claude Code's skills, MCP server configs, and session state don't have equivalents in Cursor. If you've built custom skills or configured complex tool integrations, those are Claude Code-specific.

## What you actually lose when switching

Let me be specific. Going from Cursor to Claude Code, you lose:

- Cursor's implicit codebase understanding (the index it built) - Chat history and previous conversations - Tab completion tuning - Any Cursor-specific extensions you relied on

Going from Claude Code to Cursor, you lose:

- Memory files (unless you manually translate them into .cursorrules) - Skill configurations and custom tool setups - MCP server integrations - Session context and conversation history

In both directions, you keep your .cursorrules or CLAUDE.md files because they're just files in your repo. But the behavioral context, the stuff that makes your AI assistant actually feel tuned to you, that's the hard part.

## The real problem is there's no standard

This is where I get frustrated. Both tools store "what does this developer prefer" and "what does this codebase look like" but in completely incompatible formats. There's no export button that produces a universal developer-preference file.

OpenClaw tried to solve this with SOUL.md as a standard, but that's designed for autonomous agents, not coding assistants. The problem space is adjacent but not identical.

## Where ClawSail fits

ClawSail's migration engine was built for moving OpenClaw agents between servers, but the underlying problem is the same: you have state scattered across multiple files and formats, and you need to move it somewhere else without losing the important bits.

We're working on a feature that maps between tool-specific config formats. The idea is: export your Cursor context, and ClawSail produces the equivalent Claude Code memory files (and vice versa). It won't be perfect because the tools think about context differently. Cursor's implicit index doesn't cleanly translate to Claude Code's explicit memory files. But we can get the important stuff: coding style preferences, project conventions, common patterns, boundary rules.

## My recommendation

If you're thinking about switching, here's what I'd do:

1. Before you switch, manually document your preferences. Open a text file and write down what your current tool knows about you. Preferred patterns, libraries you always use, conventions you follow. This takes 20 minutes and saves hours of re-training.

2. Copy over your rules files. .cursorrules maps roughly to CLAUDE.md, and vice versa. The syntax is different but the intent is the same.

3. Accept that you'll have a rough first week. The new tool won't know your codebase yet, and you'll have to re-establish patterns. This is annoying but temporary.

4. Don't delete your old config. Keep your Cursor setup intact even after switching to Claude Code. You might switch back, or you might want to reference what the old tool had learned.

The honest truth is that switching AI coding tools today feels like switching phones in 2010. Your contacts transfer, but your app data, your settings, your muscle memory, all that resets. It's getting better, but we're not at seamless portability yet.

Related posts

How to Migrate OpenClaw Without Losing Your BrainOpenClaw Portability: How to Keep Your Agent Truly Vendor-IndependentAgent Backup Strategy: Protect Your AI Agent From Data LossMigrating Your OpenClaw Agent Between Cloud ProvidersHow to Back Up Your OpenClaw Agent Before Migrating Servers