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
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 insettings.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
envblock of~/.claude/settings.jsonrather 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.jsonon macOS / Linux (~/.windsurf-next/acp/registry.jsonfor Devin Desktop Next), and%USERPROFILE%\AppData\Roaming\Code\User\acp\registry.jsonon Windows -
Open Local ACP Registry Configin the Command Palette opens that file directly; after editing, runReload 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¶
- ACP Overview — the same setup also covers Zed and JetBrains
- Environment Variables
- Endpoints & API Paths