Windsurf Security: What Cognition Does With Your Code (2026 Review)

Type windsurf.com into a browser in 2026 and you land on devin.ai/desktop. That 308 redirect is the fastest way to understand Windsurf's security posture right now: the IDE is owned by Cognition, the company behind the Devin agent, and on June 2, 2026 it was renamed Devin Desktop. Most "is Windsurf safe" write-ups still name the wrong company.

The agent changed too, and that matters more than the name. New conversations no longer start on Cascade. They start on Devin Local, which throws out Cascade's auto-execution levels and uses allow, ask and deny rules instead. If your security notes say "set Cascade to Allowlist Only", they're describing a setting the default agent doesn't read.

TL;DR

Windsurf is now Devin Desktop, owned by Cognition since July 2025. The OpenAI acquisition everyone reported never closed. Your code is encrypted in transit and at rest, paid users can opt out of training, and Enterprise data is never trained on without written consent. The bigger security question is local: the default agent is now Devin Local, which reads any file without asking (including .env) unless you deny it, and whose Bypass mode approves everything. Stay in Normal mode and write deny rules for your secrets.

Use with Caution

Who actually owns Windsurf

The ownership story ran through three companies in about ten weeks, which is why so many pages have it wrong.

May 2025

OpenAI reportedly agrees to buy Windsurf for around $3 billion. This is the version most articles still repeat.

July 11, 2025

The OpenAI exclusivity period expires without a close. Google pays a reported $2.4 billion to hire CEO Varun Mohan, co-founder Douglas Chen and a group of researchers into DeepMind, plus a nonexclusive license to some Windsurf technology. Google takes no equity in the company.

July 14, 2025

Cognition announces it has acquired Windsurf's IP, product, trademark and brand, along with the remaining team, an $82M ARR business and 350+ enterprise customers.

June 2, 2026

Windsurf becomes Devin Desktop. Documentation moves to docs.devin.ai, windsurf.com redirects to devin.ai/desktop, and Devin Local replaces Cascade as the default agent for new conversations.

For security purposes the practical consequences are narrow but real. Your data processor is Cognition, not Codeium and not OpenAI. If you signed a Codeium enterprise agreement before mid-2025, the counterparty on your DPA has changed and is worth re-confirming. And any policy page you bookmarked under the old domain now resolves somewhere else, so re-read rather than assume.

Codeium the autocomplete extension and Windsurf the IDE were always separate products from the same origin. The company started as Codeium, launched the Windsurf IDE in late 2024, renamed itself Windsurf, and then sold the IDE business to Cognition. If you search "windsurf codeium" expecting two vendors, there's only one lineage.

Devin Local permissions: the setting that actually bites

Devin Local can read files, write files, run shell commands, fetch URLs and call MCP tools. How much of that happens without asking you is the highest-consequence security setting in the editor, and it's not the dropdown it used to be.

Devin Local shares its harness with Devin CLI, so it uses the CLI's permission modes. Cognition's permissions reference lists what each one approves on its own:

ModeFile readsWorkspace editsShell commands and fetches
Normal (default)AutoPromptPrompt
Accept EditsAutoAutoPrompt
SmartAutoAutoAuto when a fast model judges them safe
BypassAutoAutoAuto

Two rows deserve a second look. Bypass approves every tool call with no prompt and no sandbox, so it's the old Turbo with fewer guardrails. And the File reads column says Auto everywhere. In the default mode the agent can open the .env or a private key sitting in your workspace without asking first. Writes prompt; reads don't. (By default it stays inside the workspace, so files elsewhere on your machine aren't in reach.)

Smart mode is gentler than it sounds. Cognition says installs, rm, sudo and mutating git commands always prompt in Smart, whatever the model thinks. It's also still rolling out, so you may not see it yet.

The fix for the read problem is a deny rule. Rules resolve deny first, then ask, then allow, and a deny always wins:

.devin/config.json
{
  "permissions": {
    "deny": [
      "Read(.env*)",
      "Read(**/*.pem)",
      "Write(.env*)",
      "Exec(rm -rf)",
      "Exec(sudo)"
    ]
  }
}

A project config at .devin/config.json is checked into the repo, so the rules travel with it. Your personal overrides go in .devin/config.local.json, which stays out of git.

Bypass mode plus a repo containing a real .env is a bad combination. A model that decides to "verify the deploy works" can run your deploy command against production, and a model that decides to clean up can run a destructive rm you never anticipated. Neither requires malice, just a plausible-looking next step.

There's a better option than both if you want unattended runs. With the OS-level sandbox on, the agent switches to Autonomous mode: shell commands auto-run, but the sandbox limits which paths they can write and which domains they can reach. Enterprise admins can require the sandbox for everyone.

MCP got stricter too. Unlike Cascade, Devin Local asks before calling any MCP tool by default, and you can allow a single tool or a whole server once you trust it.

If you're still on Cascade

Existing Cascade conversations stay available, and Cognition's FAQ said the Cascade agent would remain available "through July". If you or a teammate still runs it, its four command auto-execution levels still apply:

LevelBehavior
DisabledEvery command needs manual approval.
Allowlist OnlyOnly commands matching your allow list run automatically.
AutoThe agent judges whether a command is safe. Requires premium models.
TurboEvery command runs immediately, except entries on your deny list.

Turbo is allow-by-default, so your safety depends on having predicted the dangerous command in advance. The allow and deny lists match on the command name, which means allowlisting git also allows git push --force and git reset --hard. Inside a workflow file, a // turbo annotation auto-runs one command and // turbo-all auto-runs everything in it, so grep any workflows you copied from a blog post.

For Teams and Enterprise admins: the old org-wide cap on auto-execution level and the team allow and deny lists are still enforced on Devin Local as a fallback, but only until you set an organization permission policy for it. Write that policy. Organization-level deny and ask rules stay active whatever mode a developer picks, and an admin can switch Cascade off entirely so nobody drifts back to it.

What leaves your machine

When you trigger a completion or send the agent a message, three things go to inference servers: the file you're editing, related context files the indexer thinks are relevant, and your prompt. Your entire repository is not being continuously uploaded.

The context engine is the part people underestimate. "Related files" is decided by an indexer, not by you, so a credentials file sitting two directories away can be pulled into context for a completion you thought was local in scope.

Ignore files are the control:

.devinignore
# gitignore-style syntax
.env
.env.*
secrets/
infra/terraform.tfvars
**/*credentials*.json

Three filenames work: .devinignore is current, and the legacy .codeiumignore and .windsurfignore are still read alongside it. Cognition's docs say paths in .devinignore are excluded from indexing and "cannot be viewed, edited, or created by Devin." Files listed in your .gitignore aren't indexed and can't be edited by the agent, which is a useful second layer but not a substitute, since not being editable isn't the same as not being read. Belt and braces: list secrets in .devinignore and in a Read(...) deny rule.

For an organization, a global .codeiumignore in ~/.codeium/ applies to every Devin Desktop workspace on the machine and stacks with per-repo rules. That's the version to push through your device management tooling rather than hoping each repo has its own.

On retention and training, Cognition's documentation states data is encrypted in transit and at rest, and that it "only retains data processed through Devin for the duration of the relationship with a given Customer, unless otherwise specified." The default is the part to notice: "By default, we may use your data for model training purposes." Paid users can opt out on the Data Controls settings page, and opting out also turns on Zero Data Retention with Cognition's model providers. On the Teams plan only an administrator can flip it. Enterprise customers get the stronger version: Cognition says it "will never train on your data without your express prior written consent." Its security page says it has been SOC 2 Type II certified since September 2024.

Read the opt-out as opt-out, not off-by-default. On a paid non-Enterprise plan you have to go turn it off, and on Teams you need your admin to do it. If you're processing customer data or anything regulated, that's a settings page to visit on day one rather than after the first audit question.

The code Windsurf writes is a separate problem

Vendor policy governs what happens to your code in transit. It says nothing about whether the code is any good, and that's where our scan data lives. In CheckYourVibe scans of apps built primarily with AI IDEs, the recurring issues are:

RiskHow often we see itWhat to do
Hardcoded API keys or secretsHighScan before committing; use environment variables
Missing authentication on routesHighExplicitly prompt for auth, then verify
SQL injection via string interpolationMediumAsk for parameterized queries in the prompt
XSS in user-facing outputMediumReview all output-rendering code
Insecure CORS or CSP configurationMediumAudit headers in any web-facing project

Completions follow the pattern already in your codebase. If the first three routes you accept skip auth checks, the next thirty will too, and the model will be confidently consistent about it. Set the pattern correctly in the early files and the same tendency works for you.

Windsurf vs Cursor vs Copilot

AspectWindsurf (Devin Desktop)CursorCopilot
Owner (2026)CognitionAnysphereGitHub/Microsoft
Training on user codeOpt-out on paid; never on Enterprise without written consentOpt-out availableOpt-out/Business tier
SOC 2 Type IIYes (Cognition, since September 2024)YesBusiness/Enterprise
Context exclusions.devinignore, .codeiumignore, .windsurfignore.cursorignoreYes
Org-wide agent permission rulesYes (org deny/ask rules, sandbox enforcement)LimitedLimited

Day-one settings

FAQ

Is Windsurf safe to use in 2026?

As a coding tool, yes. Traffic is encrypted in transit and at rest, paid users can opt out of model training, and Enterprise data isn't trained on without written consent. The risk sits in two places you control: the agent's permission mode, which decides whether it reads files and runs terminal commands without asking, and the security of the code the model produces. Scan the finished app before you ship it.

Who owns Windsurf now?

Cognition, the company behind Devin. It announced the acquisition of Windsurf's IP, product, trademark, brand and team on July 14, 2025. The reported OpenAI deal never closed, and Google separately hired Windsurf's CEO and several researchers into DeepMind under a nonexclusive license days earlier. Windsurf was renamed Devin Desktop on June 2, 2026, and windsurf.com redirects to devin.ai/desktop.

Windsurf IDE security: what is the riskiest setting?

On Devin Local, the default agent for new conversations, it's Bypass mode, which approves every tool call without a prompt. Even in the default Normal mode, file reads are auto-approved, so add Read(.env*) deny rules. On legacy Cascade, it's Turbo auto-execution, which runs every command not on your deny list. Enterprise admins can set org-level deny and ask rules that no user mode overrides.

Does Windsurf send my code to the cloud?

Yes, but not all of it. Completions and agent requests send the open file, context files chosen by the indexer, and your prompt. Adding paths to .devinignore keeps them out of indexing and out of the context window. The legacy .codeiumignore and .windsurfignore filenames still work, and enterprises can enforce a global one from ~/.codeium/.

Windsurf privacy: how long is my code retained?

Cognition's documentation says it retains data processed through Devin for the duration of the customer relationship unless otherwise specified, with encryption in transit and at rest. Cognition says it has held SOC 2 Type II certification since September 2024. Training on your data is on by default unless you opt out on a paid plan. For anything regulated, get the current retention terms in writing from your account team rather than relying on a docs page.

Built with Windsurf? Scan before you ship.

CheckYourVibe catches hardcoded secrets, missing auth, and insecure configs in AI-generated code.

Is It Safe?

Windsurf Security: What Cognition Does With Your Code (2026 Review)