MemoryLake
Back to all articles
TutorialMay 25, 20265 min read

How to Transfer ChatGPT Memory to Windsurf in 2026

ChatGPT is a general-purpose chat tool; Windsurf is a coding IDE built around Cascade. Moving your context across means rebuilding general "how I code" guidance as repo-scoped rules — and accepting that conversational habits change.

The short answer

ChatGPT has no native push to Windsurf. You'll copy ChatGPT Custom Instructions and any coding-related Custom GPT Instructions into .windsurfrules (at each repo root) and Windsurf's global rules (for cross-repo guidance), and translate reusable prompts into Cascade memories. Plan 15–25 minutes per repo. A shared MCP-based memory layer like MemoryLake lets both tools read the same source.

Why people switch from ChatGPT to Windsurf

Three drivers in 2026:

  • Cascade agent loop. Multi-file edits stay coherent inside one Cascade run.
  • Repo-aware grounding. Windsurf reads your codebase by default; ChatGPT needs files attached.
  • MCP and tool integration. Windsurf exposes MCP servers and shell access in ways the browser ChatGPT doesn't.

What "memory" means in ChatGPT vs Windsurf

Different scopes.

ChatGPT memory spans Custom Instructions (global), Memory (saved facts pulled across chats), and Custom GPTs (project-like containers with their own Instructions and Knowledge).

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

ChatGPT Custom Instructions become Windsurf's global rules. Coding-specific Custom GPT Instructions become .windsurfrules. Reusable prompts become Cascade memories.

Step 1: Export your ChatGPT memory

ChatGPT has no single export.

  1. Copy Custom Instructions. Settings → Personalization → Custom Instructions.
  2. Copy saved Memory entries. Same page → Memory. Paste each row into a text file.
  3. Identify coding-relevant Custom GPTs. For each, copy Instructions and supply your originals of any Knowledge files.
  4. List reusable prompts. Save them as one prompt per entry in a prompts.md.

End state: a chatgpt-export-coding/ folder with custom-instructions.txt, memory.txt, per-Custom-GPT subfolders, and prompts.md.

Step 2: Import into Windsurf

Windsurf expects per-repo and user-level configuration.

  1. Set global rules. Open Windsurf settings and paste your ChatGPT Custom Instructions into the global rules area.
  2. Create `.windsurfrules` at each relevant repo root. Paste coding-specific Custom GPT Instructions, restructured for that repo's stack.
  3. Add Knowledge as repo docs. Place reference materials under docs/ in the repo and reference them in .windsurfrules.
  4. Open Cascade and add Cascade memories. During a session, save reusable prompts as Cascade memories.
  5. Wire up MCP servers. If any Custom GPT used Actions, rebuild as MCP servers and add them to Windsurf's MCP configuration.
  6. Probe. Open Cascade and run a small task that depends on a moved rule.

What you'll still lose after migrating

  • Browser conversation flow. Windsurf is IDE-bound; long ideation feels different.
  • Cross-chat Memory behavior. Windsurf reads .windsurfrules per session; it doesn't auto-pull arbitrary facts the way ChatGPT Memory did.
  • Image and audio modes. Windsurf is text-centric.
  • Ongoing sync. New ChatGPT memory added next week won't appear in .windsurfrules unless you redo the copy.

The better way: one memory layer, every tool

If you still use ChatGPT for ideation and Windsurf for coding, the per-tool drift starts immediately. Cross-repo standards end up in two places.

MemoryLake holds those rules once and exposes them through MCP. Windsurf reads MCP natively; ChatGPT can read the same MemoryLake project through a Custom GPT Action calling its REST 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 Claude Code later 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 "ChatGPT ↔ Windsurf shared context." 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 ChatGPT Custom Instructions, Memory entries, and coding Custom GPT Instructions 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., "ChatGPT + Windsurf bridge"), 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 Windsurf's MCP configuration, add a MemoryLake server entry with the endpoint URL and the Secret as a Bearer token. For ChatGPT, configure a Custom GPT Action that calls the same REST endpoint with the Bearer token to fetch project memory.

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

Native migration vs MemoryLake

DimensionNative ChatGPT → WindsurfMemoryLake bridge
Steps required8–11 manual3 one-time
Estimated time15–25 min per repo~5 min setup
Preserves cross-chat MemoryPartial (global rules only)Yes (one Project)
Custom GPT ActionsRebuild as MCPMCP endpoint shared
Syncs ongoing changesNoYes
Works with a third tool laterNo (rebuild)Yes (add MCP)

Frequently asked questions

Can I import ChatGPT Memory directly into Windsurf?

No. You copy each fact into Windsurf's global rules or into a .windsurfrules.

What happens to my Custom GPT Actions?

They don't transfer. Rebuild each as an MCP server and add it to Windsurf's MCP configuration.

Does Windsurf inherit ChatGPT chat threads?

No. Chat history is per-tool.

How long does the migration usually take?

Plan 15–25 minutes per repo, longer if you have many coding-relevant Custom GPTs to translate.

How do I keep ChatGPT and Windsurf in sync after migrating?

Connect both to a shared MemoryLake Project — Windsurf reads via MCP, your Custom GPT reads via an Action calling the same endpoint.