Skip to content

How to migrate from Windsurf to OpenCode

aix is a CLI for defining, installing, and syncing AI editor configuration. If you are moving from Windsurf to OpenCode, this guide shows what aix can carry over, what the destination editor calls each feature, and where the destination config lands.

When you are ready to run the move, aix sync windsurf --to opencode copies the supported config from Windsurf into OpenCode. Use the comparison below first so you know which names, paths, and support differences to expect.

If you want the aix-side definitions first, review rules , prompts , mcp , skills , hooks .

How to use this guide

  • Read across a row to compare the source and destination terms, support, and targets.
  • Each scope line shows both what the editor supports and what aix writes today.
  • Open the destination editor page at the end if you need every path, note, and terminology detail.

The biggest changes are in rules, prompts, mcp.

How to read the statuses

Support key

Editor support

  • Supported The editor exposes that feature at that scope.
  • No support The editor does not expose that feature at that scope.

aix support

  • Native aix writes the editor's own format.
  • Adapter aix keeps the feature through an adapter or alternate representation.
  • No support aix does not write that feature for the destination today.

Use the Project scope and User scope rows to see where config lands at each level.

Feature comparison

Feature-by-feature differences from Windsurf to OpenCode.
Feature Windsurf OpenCode
Rules

Rules

Project
Editor Supported aix Native
Path .windsurf/rules/*.md
User
Editor Supported aix Native
Path ~/.codeium/windsurf/memories/global_rules.md

AGENTS.md

Project
Editor Supported aix Native
Path AGENTS.md
User
Editor Supported aix Native
Path ~/.config/opencode/AGENTS.md
Prompts

Workflows

Project
Editor Supported aix Native
Path .windsurf/workflows/*.md
User
Editor Supported aix Native
Path ~/.codeium/windsurf/global_workflows/*.md

Commands

Project
Editor Supported aix Native
Path .opencode/commands/*.md
User
Editor Supported aix Native
Path ~/.config/opencode/commands/*.md
MCP

MCP servers

Project
Editor No support aix No support
Editor: The editor does not expose this feature at this scope. aix: Windsurf does not have a project-scoped MCP config file in aix.
User
Editor Supported aix Native
Path ~/.codeium/windsurf/mcp_config.json

MCP servers

Project
Editor Supported aix Native
Path opencode.json
User
Editor Supported aix Native
Path ~/.config/opencode/opencode.json
Skills

Skills

Project
Editor Supported aix Native
Path .windsurf/skills/{name}/
User
Editor Supported aix Native
Path ~/.windsurf/skills/{name}/

Skills

Project
Editor Supported aix Native
Path .opencode/skills/{name}/
User
Editor Supported aix Native
Path ~/.config/opencode/skills/{name}/
Agents

Agents

Project
Editor No support aix No support
Editor: The editor does not expose this feature at this scope. aix: aix reports configured agents as unsupported for Windsurf.
User
Editor No support aix No support
Editor: The editor does not expose this feature at this scope. aix: aix reports configured agents as unsupported for Windsurf.

Agents

Project
Editor Supported aix Native
Path .opencode/agents/*.md
User
Editor Supported aix Native
Path ~/.config/opencode/agents/*.md
Hooks

Hooks

Project
Editor Supported aix Native
Path .windsurf/hooks.json
User
Editor Supported aix Native
Path ~/.windsurf/hooks.json

Hooks

Project
Editor No support aix No support
Editor: The editor does not expose this feature at this scope. aix: OpenCode does not support lifecycle hooks in aix.
User
Editor No support aix No support
Editor: The editor does not expose this feature at this scope. aix: OpenCode does not support lifecycle hooks in aix.

Recommended follow-up links