Guide · August 2026

How to Sync Windsurf Settings Across Machines

Run Windsurf on a laptop and a desktop for a month and the two installs drift apart: a keybinding fixed on one, an AI rule added on the other, a formatter setting that exists nowhere else. Everything worth syncing lives in three items inside one folder. Here's where that folder is and three ways to keep both machines on the same page.

What actually needs to travel

Windsurf is built on the VS Code codebase, so its per-user configuration follows the same shape: a single User directory that holds your personal setup. Three items in it are the whole story:

Skip the rest. Extensions reinstall themselves from a list in minutes, and the storage and cache directories next to User are machine-local state that would only bloat a sync -- copying them wholesale is how a "settings backup" turns into a multi-gigabyte archive of nothing.

Project rules stay in the project. A .windsurfrules file belongs to the repo and travels with git. What follows is about the user-level config that should follow you between machines.

Where the User directory lives

OS Windsurf User directory
macOS ~/Library/Application Support/Windsurf/User
Windows %APPDATA%\Windsurf\User
Linux ~/.config/Windsurf/User (or $XDG_CONFIG_HOME/Windsurf/User)

If one of the three items isn't there, you simply haven't customized that layer yet: Windsurf writes settings.json on your first settings change and keybindings.json the first time you rebind a key. Notably, none of these files contain your login or API credentials -- those live elsewhere, which means the three items are safe to copy around and you'll still sign in normally on the new machine.

Option 1: carry the files by hand

For a one-off move -- new laptop, fresh OS install -- copying the three items directly is completely fine:

macOS
cd ~/Library/Application\ Support/Windsurf/User
mkdir -p ~/windsurf-backup
cp settings.json keybindings.json ~/windsurf-backup/
cp -R rules ~/windsurf-backup/

Move the folder over (AirDrop, USB, scp), drop the files into the same location on the other machine, restart Windsurf. On Linux the source is ~/.config/Windsurf/User; on Windows it's %APPDATA%\Windsurf\User.

What hand-copying can't do is stay in sync. The moment you change a setting on either machine, they've diverged again -- which is the original problem.

Option 2: a dotfiles repo

If you already version your shell config, Windsurf slots into the same dotfiles repo. Move the three items in, symlink them back, and let git carry them between machines:

mkdir -p ~/dotfiles/windsurf && cd ~/Library/Application\ Support/Windsurf/User
mv settings.json keybindings.json rules ~/dotfiles/windsurf/
ln -s ~/dotfiles/windsurf/settings.json settings.json
ln -s ~/dotfiles/windsurf/keybindings.json keybindings.json
ln -s ~/dotfiles/windsurf/rules rules
cd ~/dotfiles && git add -A && git commit -m "windsurf config"

On the second machine, clone the repo and create the same symlinks. Now syncing is git pull, with full history when a settings change breaks something. The friction is the usual dotfiles friction: you have to remember to commit and pull, Windows makes symlinks annoying (mklink, developer mode), and per-OS paths mean a small bootstrap script if you span platforms.

Option 3: automated sync (memoir)

memoir automates exactly this. Its Windsurf adapter has a deliberate allowlist -- settings.json, keybindings.json, and rules/ from the per-OS User directory, nothing else -- so a backup contains your configuration and zero cache.

npm install -g memoir-cli
memoir init
memoir push      # on machine A
memoir restore   # on machine B

Everything is encrypted client-side (AES-256-GCM) before it leaves your machine. The same push also finds .windsurfrules files across your projects and backs up your other AI tools -- Cursor, Claude Code, Zed, Cline, 11 in total -- in the same pass. And since memoir doubles as an MCP memory server, it can also give Windsurf's AI memory that survives between sessions, which no amount of settings syncing will.

Picking a lane

If Cursor is also in your rotation, the recipe is identical down to the filenames -- only the folder name changes: How to Back Up Cursor Settings.

One command, every machine

Windsurf, Cursor, Claude Code, and 8 more -- backed up encrypted, restored anywhere.

npm install -g memoir-cli