Migrating from Windsurf to Cursor involves more than just installing a new editor. Your project configurations, custom rules, snippets, and workflow settings need to be transferred carefully to maintain productivity. This guide walks you through the complete process of moving your project config from Windsurf to Cursor.
Understanding Windsurf and Cursor Config Structures
Both Windsurf and Cursor are built on VS Code, but they store custom configurations differently. Windsurf uses its own “rules” system and Cascade workflows, while Cursor employs “Cursor Rules” and project-specific settings. Understanding these differences helps you plan your migration strategy.
Windsurf stores project-specific configurations in a .windsurf directory at your project root. This directory contains JSON files defining AI behavior, custom commands, and workflow automations. Cursor, on the other hand, uses a .cursor directory with a different configuration structure. Both support YAML and JSON formats, but the key names and organizational logic vary.
Before starting the migration, ensure both editors are installed on your system. You will need access to your project directories and some familiarity with editing configuration files.
Exporting Windsurf Project Config
Begin by locating your Windsurf configuration files. Open your project in Windsurf and navigate to the settings panel. Look for the “Project Settings” or “Rules” section where you have defined custom behaviors.
Finding Your Windsurf Rules
Windsurf stores rules in the .windsurf folder within each project. If you have been using Windsurf for significant projects, check your project directories:
# List all Windsurf config directories in your projects
find ~/projects -type d -name ".windsurf" 2>/dev/null
Each .windsurf directory typically contains files like config.json or rules.md. The rules file defines how Windsurf’s AI behaves in your project, including custom instructions, file patterns, and interaction preferences.
Exporting Cascade Workflows
If you use Windsurf’s Cascade feature for automated workflows, export these before switching. Cascade workflows are stored as JSON files within the .windsurf directory:
{
"workflows": [
{
"name": "Code Review",
"trigger": "onPush",
"steps": [
{"action": "run", "command": "npm test"},
{"action": "analyze", "scope": "changedFiles"}
]
}
]
}
Copy these workflow definitions to a safe location. You will recreate them in Cursor using its own automation features.
Setting Up Cursor with Your Config
Now that you have exported your Windsurf settings, the next step is importing them into Cursor. Cursor uses a similar but distinct configuration system that requires some manual translation.
Creating Cursor Rules
Cursor uses .cursorrules files (or cursor.rules in the root directory) to define project-specific AI behavior. Create or update this file in your project root:
# Project Rules for [Your Project Name]
## Context
You are working on a [project description]. This is a [language/framework] application using [key technologies].
## Code Style
- Use [your preferred style guidelines]
- Follow [specific conventions]
- Prefer [patterns you commonly use]
## Guidelines
- Always run tests before committing
- Use descriptive variable names
- Keep functions under 50 lines
Importing Custom Snippets
If you have custom snippets in Windsurf, export them and import into Cursor. Both editors support VS Code snippets, which are stored in snippets folders. Locate your Windsurf snippets:
# Find snippet files
find ~/.windsurf -name "*.json" -path "*snippets*" 2>/dev/null
Copy these snippet files to Cursor’s equivalent location:
# Copy to Cursor's snippets directory
cp -r ~/.windsurf/snippets ~/.cursor/
Migrating Keyboard Shortcuts and Keybindings
Both editors support VS Code keybindings, but custom keybindings may need adjustment. Export your Windsurf keybindings and adapt them for Cursor.
Exporting Windsurf Keybindings
Access the keyboard shortcuts panel in Windsurf (Cmd+K on Mac or Ctrl+K on Windows), then export your custom keybindings. The file is typically located at:
# On macOS
~/Library/Application\ Support/Windsurf/User/keybindings.json
# On Windows
%APPDATA%/Windsurf/User/keybindings.json
Applying Keybindings to Cursor
Copy or adapt these keybindings to Cursor’s configuration location:
# On macOS
cp ~/Library/Application\ Support/Windsurf/User/keybindings.json \
~/Library/Application\ Support/Cursor/User/keybindings.json
Review each keybinding. Some may conflict with Cursor’s default shortcuts and require modification.
Transferring Terminal Profiles and Tasks
If you have custom terminal configurations or task definitions in Windsurf, migrate these to Cursor for an experience.
Task Configurations
Both editors support VS Code task definitions. Your tasks.json file should work directly in Cursor if you copy it:
cp .windsurf/tasks.json .cursor/
# or
cp .vscode/tasks.json .cursor/
Terminal Profiles
Custom terminal profiles and shell integrations may need reconfiguration. Check your shell configuration files (.bashrc, .zshrc, or .fish) for Windsurf-specific aliases and functions, then add equivalent configurations for Cursor if needed.
Preserving Git and Version Control Settings
Your Git configurations, including hooks and settings, transfer automatically since they are project-based. However, review the following:
Git Hooks
If you use Husky, lefthook, or similar tools for Git hooks, these work in Cursor without modification. Verify that your pre-commit and pre-push hooks function correctly after the switch.
Remote URLs
Update your Git remote URLs if you have added Windsurf-specific remotes:
git remote -v
git remote set-url origin git@github.com:your-repo-url.git
Verifying Your Migration
After transferring all configurations, spend time verifying that everything works correctly in Cursor.
Test Your Setup
-
Open your project in Cursor
-
Verify that custom rules load correctly (check the “Rules” panel)
-
Test your snippets by triggering them
-
Confirm keyboard shortcuts work as expected
-
Run your test suite to ensure nothing broke
Adjust and Iterate
You will likely need to fine-tune some settings. Cursor’s AI behavior differs from Windsurf’s, so adjust your rules to get similar results. The initial setup takes time, but the investment pays off in improved productivity.
Related Articles
- Best Practices for AI Tool Project Config When Switching
- Switching from Windsurf Free to Cursor Free What Is
- How to Transfer GitHub Copilot Organization Settings
- How to Transfer Claude Project Knowledge to ChatGPT Custom
- How to Transfer Claude Project Knowledge to ChatGPT Custom (2)
Built by theluckystrike — More at zovo.one