Devin Desktop (ex-Windsurf) configuration guide: instruction files, MCP, permissions

Cognition · IDE / editor · CLI Changed · verified against official docs on 2026-10-12

Devin Desktop (formerly Windsurf) reads workspace rules from .devin/rules/*.md (legacy .windsurf/rules/ still works), a global global_rules.md (6,000 characters max) and AGENTS.md files, which feed the same rules engine (root = always on, subfolders = scoped). The Devin Local agent also reads CLAUDE.md, .windsurfrules and .cursor/rules. It keeps MCP servers in .devin/mcp_config.json (project), .devin/mcp_config.local.json or ~/.config/devin/mcp_config.json, and permissions in .devin/config.json as allow / ask / deny rules.

Heads up: ChangedWindsurf was renamed Devin Desktop on June 2, 2026; the legacy Cascade agent is being replaced by Devin Local (the Devin CLI harness).

Devin Desktop (ex-Windsurf) at a glance

Global instructions✓ Yes
Cascade: ~/.codeium/windsurf/memories/global_rules.md (6,000 chars). Devin Local/CLI: ~/.config/devin/AGENTS.md, ~/.claude/CLAUDE.md
Project instructions✓ Yes
.devin/rules/*.md (preferred) or .windsurf/rules/*.md, 12,000 chars per file; AGENTS.md; Devin Local also AGENTS.local.md, AGENT.md, CLAUDE.md, .windsurfrules, .cursor/rules/*.mdc
Nested / subfolder✓ Yes
Subdirectory AGENTS.md is scoped to that folder; rules dirs found in subfolders and parents up to the git root
AGENTS.md✓ Yes
Root AGENTS.md is an always-on rule; nested files apply to their directory
Skills (SKILL.md)✓ Yes
.devin/skills/ or .windsurf/skills/, .agents/skills/; global ~/.config/devin/skills/, ~/.agents/skills/
MCP config✓ Yes
Devin Local/CLI: .devin/mcp_config.json (project), .devin/mcp_config.local.json (local), ~/.config/devin/mcp_config.json (user). Legacy Cascade: its own mcp_config.json
Permissions / allowlist✓ Yes
Devin Local: deny / ask / allow rules (Read(), Write(), Exec(), fetch, MCP) in .devin/config.json or ~/.config/devin/config.json
Sandbox✓ Yes
Devin Local supports OS-level sandboxing (filesystem + network filtering)
Hooks✓ Yes
Devin CLI/Local hooks in .devin/; Cascade Hooks for the legacy agent
Claude Pro/Max login✕ No
Not documented
ChatGPT Plus/Pro login✕ No
Not documented
API key / own plan? Not documented
Uses Devin/Windsurf plan quota; BYOK not documented in the pages checked

Exact file paths

PathScopeWhat it does
.devin/rules/*.mdWorkspaceOne rule per file with trigger frontmatter (legacy .windsurf/rules/)
~/.codeium/windsurf/memories/global_rules.mdUserCascade global rules, always on, 6,000 chars
AGENTS.md (root / subfolders)WorkspaceAlways-on at root, directory-scoped below
~/.config/devin/AGENTS.mdUserDevin Local / CLI global rules
.devin/config.json / ~/.config/devin/config.jsonProject / userDevin Local permissions and settings
.devin/mcp_config.jsonProjectDevin Local MCP servers (mcp_config.local.json for personal)
.devin/skills/<name>/SKILL.mdProjectSkills (also .windsurf/skills, .agents/skills)

Using a shared AGENTS.md with Devin Desktop (ex-Windsurf)

Native: root AGENTS.md is an always-on rule; subfolder files are scoped. See one AGENTS.md for every agent, or generate one with the AGENTS.md generator.

Copy-paste examples

Glob-triggered workspace rule

File: .devin/rules/tests.md

---
trigger: glob
globs: "**/*.test.ts"
---

Use vitest. Never mock the database layer; use the test container.

Safe permissions preset

Safe Devin Local permissions

File: .devin/config.json

{
  "permissions": {
    "allow": [
      "Read(**)",
      "Exec(git status)",
      "Exec(git diff)",
      "Exec(npm test)"
    ],
    "ask": [
      "Exec(git push)",
      "Exec(npm install)"
    ],
    "deny": [
      "Exec(rm)",
      "Exec(sudo)",
      "Exec(git push --force)",
      "Exec(git reset --hard)",
      "Exec(terraform destroy)",
      "Read(**/.env)",
      "Read(**/*.pem)"
    ]
  }
}

Deny has the highest priority. Shape follows the Devin CLI permissions reference. Turn on the Devin Local sandbox so Read(...) denies also hide paths from shell commands.

Gotchas

  • Windsurf was renamed Devin Desktop on June 2, 2026. .devin/ is now preferred and takes precedence over .windsurf/.
  • Workspace rule files are capped at 12,000 characters and the global rules file at 6,000.
  • Devin Local prompts before MCP tool calls by default, unlike Cascade.
  • The MCP config location changed in Devin CLI v3000.3; older versions kept servers in the main config file.

FAQ

Where are Windsurf rules stored now?
In Devin Desktop (the renamed Windsurf), workspace rules go in .devin/rules/*.md, with .windsurf/rules/ still read as a fallback. The Cascade global rules file is ~/.codeium/windsurf/memories/global_rules.md.
Does Windsurf / Devin Desktop support AGENTS.md?
Yes. AGENTS.md at the workspace root is treated as an always-on rule, and AGENTS.md files in subdirectories apply when working in those folders.
Where is the Devin Desktop MCP config?
For the Devin Local agent: .devin/mcp_config.json in the project, .devin/mcp_config.local.json for personal servers, or ~/.config/devin/mcp_config.json for all projects.

Sources

Checked against these official pages on 2026-10-12. Cells marked "Not documented" mean we could not find the behaviour in these docs; it may still exist.