MemoryLake
Back to all articles
TutorialMay 25, 20265 min read

Migrating from Claude Code to Windsurf: The 2026 Memory Playbook

Claude Code's terminal flow doesn't map perfectly onto Windsurf's IDE — but the rules content carries over cleanly, and the rest can be rebuilt in under an hour per repo.

The short answer

Claude Code has no native push to Windsurf. You'll copy CLAUDE.md into .windsurfrules, move user-global guidance into Windsurf's global rules, translate slash commands into Cascade memories or .windsurfrules sections, and re-add MCP servers in Windsurf's MCP configuration. Plan 15–30 minutes per repo. A shared MCP-based memory layer like MemoryLake lets both tools read the same source.

Why people switch from Claude Code to Windsurf

Three drivers in 2026:

  • Cascade agent workflow. Teams shipping multi-file changes often prefer Windsurf's Cascade loop in an IDE.
  • Visual diff and review. Inline visual review beats terminal patch reading for high-touch refactors.
  • Editor stability. Some teams want the IDE wrapper for plugin support and editor settings parity.

What "memory" means in Claude Code vs Windsurf

Different shape, related intent.

Claude Code memory centers on `CLAUDE.md` at the repo root, `~/.claude/CLAUDE.md` (user-global), custom slash commands under .claude/commands/, and MCP servers in Claude Code settings.

Windsurf memory spans `.windsurfrules` (project rules), global rules (user-level), and Cascade memory (persistent memories saved during agentic work).

A CLAUDE.md becomes a .windsurfrules. User-global guidance becomes Windsurf's global rules. Slash commands become Cascade memories or static sections of .windsurfrules.

Step 1: Export your Claude Code memory

Claude Code stores everything as plain files.

  1. Read the repo's `CLAUDE.md`. Copy contents into a working text file.
  2. Read `~/.claude/CLAUDE.md`. Copy global guidance into user-guidance.txt.
  3. *List `.claude/commands/.md.** Each one becomes a Cascade memory or a .windsurfrules` section.
  4. Document MCP servers. Open Claude Code settings and note each MCP server's endpoint URL and authentication.

End state: a claude-code-export/ folder per repo containing CLAUDE.md, user-guidance.txt, commands/, and mcp-list.md.

Step 2: Import into Windsurf

Windsurf accepts the equivalent material restructured.

  1. Create `.windsurfrules` at the repo root. Paste CLAUDE.md contents.
  2. Set global rules. Open Windsurf settings and paste ~/.claude/CLAUDE.md content into the global rules area.
  3. Translate slash commands. Static guidance (style, conventions) folds into .windsurfrules. Reusable prompts get saved as Cascade memories during a Cascade session via its Memories panel.
  4. Re-add MCP servers. Open Windsurf's MCP configuration and add each MCP server from mcp-list.md with its endpoint URL and Bearer token.
  5. Probe. Open Cascade and run a small task that depends on a moved rule.

What you'll still lose after migrating

  • Slash command invocation pattern. /<name> shortcuts don't have a one-to-one Cascade equivalent.
  • Terminal-native multi-step flow. Long-running CLI tasks reshape into Cascade runs.
  • Per-tool chat history. Claude Code sessions stay in the terminal.
  • Ongoing sync. New CLAUDE.md edits next week won't appear in .windsurfrules unless you redo the copy.

The better way: one memory layer, every tool

If you bounce between Claude Code and Windsurf, per-tool files drift. Cross-repo standards end up in two places.

MemoryLake stores those rules once and exposes them through MCP. Both Claude Code and Windsurf support MCP, so the same project context flows into both from a single endpoint.

  • One source of truth. Update once; both tools see the change.
  • Cross-repo standards. Team conventions live above any single repo.
  • Drop-in for the next tool. Add Cursor or a future agent with a config change.

Connect MemoryLake in 3 steps

Step 1: Create a project and load your context

Sign in to MemoryLake, open Project Management, and click Create Project. Name it "Claude Code ↔ Windsurf shared rules." Drag reference docs (style guides, ADRs as PDF, Word, Markdown, or images) into the Document Drive under My Space, then open the Documents Tab and click Add Documents. Paste your CLAUDE.md, user guidance, and slash command bodies into the Memories Tab via Add Memory.

Step 1: Create a project and load your context
Step 1: Create a project and load your context

Step 2: Generate an MCP Server endpoint

Open the MCP Servers Tab inside the project, click Add MCP Server, describe it (e.g., "Shared dev rules"), and click Generate. MemoryLake returns a Key ID, a Secret, and an Endpoint URL. Copy the Secret immediately — it is shown only once.

Step 2: Generate an MCP Server endpoint
Step 2: Generate an MCP Server endpoint

Step 3: Point both tools at the endpoint

In Claude Code's settings, add a MemoryLake MCP server with the endpoint URL and the Secret as a Bearer token. In Windsurf's MCP configuration, add the same entry. Restart both clients.

Step 3: Point both tools at the endpoint
Step 3: Point both tools at the endpoint

Native migration vs MemoryLake

DimensionNative Claude Code → WindsurfMemoryLake bridge
Steps required7–10 manual3 one-time
Estimated time15–30 min per repo~5 min setup
Preserves slash command patternNo (Cascade memory rebuild)Memories survive verbatim
Cross-repo standardsPer-repo onlyShared once
Syncs ongoing changesNoYes
Works with a third tool laterNo (rebuild)Yes (add MCP)

Frequently asked questions

Can I rename `CLAUDE.md` to `.windsurfrules`?

For simple cases, the rename works because both are plain text.

Do slash commands become Cascade memories automatically?

No. You recreate each as a Cascade memory or fold its content into .windsurfrules.

Will Windsurf see my Claude Code MCP servers?

No. They share the MCP protocol but use separate configuration files. Add each MCP server to Windsurf's MCP config.

How long does the migration usually take?

Plan 15–30 minutes per repo, longer if you have many slash commands or MCP servers.

Can I keep Claude Code and Windsurf in sync going forward?

Yes — connect both to a shared MemoryLake Project via the MCP Server endpoint so rule updates propagate to both.