Devin Desktop (formerly Windsurf) Setup

Windsurf is now Devin Desktop and is built around ACP: attach Claude Code as an ACP agent with its environment pointed at QCode

Updated 2026-09-18
On This Page

Last verified: 2026-09-18 · 📄 Per official docs (Devin Desktop 3.10.31 (released 2026-09-16))

At a glance

Item Details
Models you can use depends on the mounted ACP agent: Claude ✅ (mount Claude Agent / Claude Code with env pointed at QCode) · GPT / Chinese models per-agent · Gemini ❌
Protocol & Base URL the agent's env ANTHROPIC_BASE_URL=https://api.qcode.cc/api
Where to configure the Agents tab of Devin User Settings, or ~/.windsurf/acp/registry.json (Windows: %USERPROFILE%\AppData\Roaming\Code\User\acp\registry.json); give an agent its environment through the devin.acp.agentEnv.<agentName> setting
Official docs docs.devin.ai

⚠️ Windsurf was renamed. On 2026-06-02 Cognition renamed Windsurf to Devin Desktop and shipped it as an over-the-air update. What the vendor promised item by item was plans, pricing, settings and extensions; keybindings and MCP connections are not individually guaranteed, and we did not verify them one by one. The original Cascade agent has been removed: the FAQ said at the time that it "remains available through July", but the removal actually landed in the v3.9.19 changelog (September 8, 2026) — "Cascade has been removed" — making Devin Local the only agent built into Devin Desktop.

Devin Desktop is now built around ACP (Agent Client Protocol): it acts as the host, and you attach any ACP-speaking agent — Claude Code, Codex CLI, OpenCode and others. New capabilities include a Kanban-style Command Center, Spaces for grouping tasks, a local local agent Devin Local (the vendor describes it as sharing the architecture of Devin CLI) and Codemaps.

The right way to use QCode: ACP is the only route

Devin Desktop offers no BYOK field where you could type an arbitrary Base URL: searching the official documentation index for BYOK / bring your own / custom endpoint / base URL / model override returns nothing, and the model list is a fixed catalogue tied to your plan. To use your QCode key and quota you have to attach your own agent over ACP:

🔑 Devin Desktop launches ACP agents as child processes on demand and talks to them over JSON-RPC on stdio (official wording). The two documented ways to give an agent environment variables are the "..." button in the Agents tab of Devin User Settings, and the devin.acp.agentEnv.<agentName> setting in settings.json. Whether the agent also inherits your shell environment is not promised verbatim by the vendor — usually true, not guaranteed, which is why step 1 puts the configuration into the agent's own file.

Step 1: point Claude Code at QCode

export ANTHROPIC_BASE_URL="https://api.qcode.cc/api"
export ANTHROPIC_AUTH_TOKEN="cr_your_qcode_key"

From mainland China, use https://asia.qcode.cc/api.

More robust: put these in the env block of ~/.claude/settings.json rather than a shell profile — a GUI app launched from an icon does not read ~/.zshrc, which is the most common failure. See ACP Overview and Environment Variables.

Confirm the CLI works from a terminal first:

claude -p "reply with exactly: OK"

Step 2: attach the agent inside Devin Desktop

The only built-in agent is Devin Local. The official docs list Codex CLI, Claude Agent, OpenCode, Junie and Gemini CLI as Example agents — third-party ACP agents you can attach, whose binaries you must install yourself (the docs state that, for security reasons, Devin Desktop does not download agent distributions from the registry). Since v3.10.23 (2026-09-10) ACP is always enabled and the old Enable ACP toggle is gone. How to attach:

  • Command Palette (Cmd/Ctrl + Shift + P) → Devin User Settings → Agents tab → toggle on the ACP agents you want

  • or edit the local registry: ~/.windsurf/acp/registry.json on macOS / Linux (~/.windsurf-next/acp/registry.json for Devin Desktop Next), and %USERPROFILE%\AppData\Roaming\Code\User\acp\registry.json on Windows

  • Open Local ACP Registry Config in the Command Palette opens that file directly; after editing, run Reload ACP Connections — no full restart needed

Keys and limits: Devin's official ACP docs.

⚠️ Official warning: while a workspace is open in Restricted Mode, every agent — Devin Local and ACP agents alike — is unavailable, and hooks neither load nor run. Check this first when no agent shows up at all.

Once attached, open a session in Devin Desktop. A normal reply means it is spending your QCode quota.

Verify traffic really goes to QCode

Open probe.qcode.cc and enter your API key. The session you just ran should appear in the request list (with model, tokens and context length). If it does not, the agent did not inherit your environment — go back to step 1 and use the ~/.claude/settings.json form.

Troubleshooting

Symptom Cause Fix
Works in the terminal, fails to authenticate in Devin Desktop GUI launch does not read the shell environment Use the env block in ~/.claude/settings.json
Cascade is gone Removed in v3.9.19 (2026-09-08) Use Devin Local, or attach an ACP agent
No field to type a Base URL into The official docs have no BYOK / custom endpoint entry Attach your agent over ACP
Nothing shows up in probe The session did not go through QCode Check that the agent inherited the environment

Related Documents

Roo Code Setup
Use QCode.cc from the Roo Code VS Code extension: pick the Anthropic provider, tick the custom base URL, and Claude works
Connect SillyTavern to QCode
Chat with QCode.cc's Claude / GPT models in SillyTavern; an honest note on whether gpt-image-2 image generation can be connected, plus alternatives
Aider Integration
Configure Aider with QCode.cc: Claude over the Anthropic endpoint (anthropic/ prefix), GPT and Chinese models over the OpenAI-compatible endpoint
🚀
Get Started with QCode — Claude Code & Codex
One plan for both Claude Code and Codex, Asia-Pacific low latency
View Pricing Plans → Create Account
Team of 3+?
Enterprise: dedicated domain + sub-key management + ban protection, from ¥250/person/mo
Learn Enterprise →