Claude CodeとWindsurfの違い — Devin Desktop化後のIDEとCLIの選び方
WindsurfはDevin Desktopに改称済みです。エージェントの操作、権限、サブエージェント、並列作業をClaude Codeと同じ観点で並べ、IDEとCLIのどちらで始めるかを比べます。
Claude CodeとWindsurfの違いは、機能の多寡よりも「エージェントがどこで動くか」に出ます。Windsurfは2026年6月2日にDevin Desktopへ改称され、エージェント本体もDevin CLIと同じハーネスを使うDevin Localに移りました。いま比べる相手は「IDEに組み込まれたエージェント」であり、Claude CodeはCLIを軸に、VS Code拡張でもIDE内で使えます。
この記事は、導入前に選ぶための比較です。すでに決めて設定を移したい場合はWindsurfからClaude Codeへの移行手順を参照してください。
Windsurfは今、何と比べればよいのか
Windsurfはいまの公式docsでは「Devin Desktop」と呼ばれています。docs.windsurf.comを開くと、Devin Desktopのドキュメントへ転送されます。FAQによれば、名称が変わっただけで同じIDEであり、プランと料金も変わりません。
名前以上に効くのは、エージェントの世代交代です。
- Cascade: Windsurf時代のエージェント。Code・Plan・Askの3モードを持つ
- Devin Local: 現在の標準エージェント。Devin CLIとハーネスを共有し、Normal・Plan・Askのモードと、deny / ask / allowの権限ルールを使う
新しい会話はCascadeでは始まらず、既存のCascade会話だけが履歴から開けます。つまり「Windsurf対Claude Code」は、実際には「Devin Local(IDE内蔵)対Claude Code」という比較です。古いWindsurf解説記事のCascade前提の説明は、そのままでは当てはまりません。
操作面と動かし方の違い
両者の最大の違いは入口です。Devin Desktopは、起動すると「エージェント入力欄」が中央にあるIDEです。複数のエージェントセッションをAgent Command Centerという看板型のビューで管理し、クラウド側のエージェントも並べて扱います。
Claude Codeはターミナルでclaudeを起動するのが基本形です。非対話のclaude -pでスクリプトやCIから呼ぶ使い方も、同じ実行体のまま使えます。
| 観点 | Devin Desktop(Devin Local) | Claude Code |
|---|---|---|
| 主な入口 | Devin Desktop(Devin Local)IDE(VS Code系)のエージェント入力欄 | Claude Codeターミナルのclaude(VS Code拡張もあり) |
| 計画だけ立てる | Devin Desktop(Devin Local)Planモード。計画は~/.devin/plans/のMarkdownに保存 | Claude CodePlanモード。claude --permission-mode planで開始 |
| 権限の単位 | Devin Desktop(Devin Local)deny / ask / allowのルール | Claude Code権限モード + permissionsのルール |
| サブエージェント | Devin Desktop(Devin Local)設定のトグル(Preview)で有効化 | Claude Code組み込みのExploreなどに加え、自作も可 |
| 並列作業 | Devin Desktop(Devin Local)gitのworktreeでセッションを分離 | Claude Codeclaude --worktreeで分離 |
| 補完・インライン編集 | Devin Desktop(Devin Local)TabとCommandをIDE機能として提供 | Claude CodeVS Code拡張でエディタ上から利用 |
最後の行は、IDEを選ぶ最大の理由になります。Devin DesktopのTabは、次の編集位置へ飛ぶTab to Jumpなどを備えたコード補完で、エージェントとは別の機能です。ターミナルで依頼して差分を確認する流れが合うか、エディタ上で書きながら補完を受けたいかで、向く側が分かれます。
権限モデルの違い — 何を、誰が、いつ承認するか
ここは両者が近づいている領域です。Devin Localは、旧Cascadeの「自動実行レベル」を捨て、3種類のルールに置き換えました。
- Deny: 実行を完全に止める。最優先
- Ask: 毎回確認する
- Allow: 確認なしで通す
対象はファイル読み取り・書き込み・コマンド実行・HTTP取得・MCPツールです。MCPツールは、標準設定では呼び出しの前に必ず承認を求めます。Cascadeの自動実行レベルがDisabled・Allowlist Only・Auto・Turboの4段だったのと比べると、細かく範囲を切れる設計に変わっています。
Claude Codeのpermissionsも、deny / ask / allowの構成です。例えば次のような形になります。
{
"permissions": {
"deny": ["Read(./.env)"],
"ask": ["Bash(git push *)"],
"allow": ["Bash(npm test)"]
}
}Claude Codeにはこれに加えて、セッション全体の振る舞いを切り替える権限モードがあります。
| モード | 動き |
|---|---|
default | 動き各ツールの初回使用時に確認する |
acceptEdits | 動き作業ディレクトリ内のファイル編集とmkdir・mvなどを自動承認する |
plan | 動き読み取りと探索だけを行い、ソースは編集しない |
auto | 動きバックグラウンドの分類器が、依頼に沿った操作かを確認しながら進める |
dontAsk | 動き確認が要る操作を自動で拒否する |
bypassPermissions | 動き確認を飛ばす。隔離環境向け |
「Yes, and don't ask again」を選ぶと、Bashコマンドの許可は.claude/settings.local.jsonに保存され、以降のセッションでも有効です。承認を積み重ねて自分用の許可リストを育てる流れは、Devin Localの「セッション全体に効く承認」と発想が重なります。違いは範囲の広さです。Claude Codeは管理者向けの設定や、フックによる事前チェックまで同じ設定体系に乗ります。両製品の権限設計を広く比べたい場合はAIコーディングエージェントの権限モデル比較も参考になります。
サブエージェントと並列作業の違い
サブエージェントは、Devin Localにはあり、Cascadeには無かった機能です。Devin DesktopではDevin Settingsの「Subagents (Preview)」トグルで有効にします。独自のエージェントはagents/<name>.md、またはagents/<name>/AGENT.mdというMarkdownで定義します。
Claude Codeでは、Explore(読み取り専用の高速な探索役)やPlanといった組み込みサブエージェントが最初から動きます。自作する場合は.claude/agents/にMarkdownを置きます。例えば次のような形です。
---
name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet
---
You are a code reviewer. When invoked, analyze the code and provide
specific, actionable feedback on quality, security, and best practices.必須なのはnameとdescriptionだけです。toolsで道具を絞れるので、「読むだけの調査役」を安全に切り出せます。サブエージェントの定義はどちらもMarkdown + 説明文という同じ発想で、移植の負担は小さい部類です。詳しい使い方はClaude Codeサブエージェントの使い方にまとめています。
並列作業はworktreeで分離します。Devin Desktopはセッションの開始時に「New worktree」を選び、終わったらMergeで作業内容を戻します。Claude Codeはコマンド1つです。
claude --worktree feature-auth.claude/worktrees/feature-auth/にworktreeが作られ、worktree-feature-authブランチで作業が始まります。別のターミナルで別名を付けて起動すれば、2本目のセッションが独立して走ります。手順の全体はClaude Codeのworktree完全ガイドにあります。
Devin Localで使えなくなったもの
IDEを選ぶ前に知っておきたいのが、Cascadeにあって新しいエージェントに無い機能です。Devin Localのドキュメントは次を挙げています。
- Memories: セッションをまたぐ自動記憶は持たない。スキルへの移行を勧めている
- Workflows: 使えない。スキルへ移す
- App Deploys: ワンクリックのデプロイは使えない
- Arena Mode: 複数のCascadeを並べて比べる機能は使えない
ルールとAGENTS.md、スキルは使えます。移行用に、コマンドパレットから「Devin: Open Cascade Migration Wizard」を実行するとワークフローとメモリーを移せます。
Claude Code側の対応物は、プロジェクトに置くCLAUDE.md(常時読まれる指示)と、スキル(必要な場面で呼ばれる手順書)です。Cascadeの自動メモリーに頼っていた人ほど、「覚えさせる」から「ファイルに書く」への切り替えを意識する必要があります。
二者択一ではない — IDEの中でClaude Codeを使う
選び方で見落とされやすい点があります。Claude CodeのVS Code拡張は、VS Codeの派生エディタにも入れられます。Claude Codeのドキュメントには、Devin DesktopやKiroのような派生エディタにも、拡張機能ビューから「Claude Code」を検索して入れられると書かれています。
つまり、Devin Desktopでエディタとタブ補完を使い、エージェント作業の一部だけをClaude Codeに任せる構成が成り立ちます。エディタの入れ替えを伴わないので、乗り換えの心理的な負担も軽くなります。
ただしDevin Desktopのドキュメントには、互換性のない拡張機能の節があります。他のAIコード補完拡張と独自仕様の拡張は使えず、どのマーケットプレイスからも拡張を入れられないと書かれています。Claude Codeのドキュメントは、拡張ビューでの検索のほか、Open VSXレジストリからの導入を案内しています。エディタ側の事情で拡張が入らなかった場合は、CLIを入れて統合ターミナルでclaudeを実行する方法が代わりになります。拡張のインストールと画面の使い方はClaude CodeのVS Code拡張ガイドにあります。
注意したいのは、Devin Desktopの標準エージェント(Devin Local)と、拡張で呼ぶClaude Codeは別の実体で、権限ルールも別々に管理することです。ルールを片方だけ厳しくして、もう片方が緩いままにならないよう、denyの対象(.envや鍵ファイル)は両方に書いておくと安全です。
状況別の選び方
| 状況 | 向く側 | 理由 |
|---|---|---|
| 書きながらタブ補完を受けたい | 向く側Devin Desktop | 理由TabとCommandがIDE機能として備わる |
| ターミナル中心で、依頼と差分確認を繰り返す | 向く側Claude Code | 理由claudeが入口で、編集環境を選ばない |
| CIやスクリプトから呼びたい | 向く側Claude Code | 理由claude -pで非対話実行できる |
| 複数エージェントをカンバン形式で眺めたい | 向く側Devin Desktop | 理由Agent Command Centerが標準画面 |
| エディタは変えず、エージェントだけ試したい | 向く側Claude Code(VS Code拡張) | 理由既存のVS Code系エディタに入る |
| 組織で権限や通信先を一括管理したい | 向く側どちらも対応 | 理由Devin Localはチーム設定、Claude Codeは管理設定で制限できる |
Devin側にもCLI(Devin CLI)があるため、「IDE対CLI」はベンダー間の対立ではありません。CLIで始める価値が高いのは、手元のエディタに縛られずに同じ手順を再現できる点です。Cursorなど他のIDE型製品を含めた比較はClaude Code・Cursor・Codexの比較で扱っています。Devin本体との守備範囲の違いはClaude CodeとDevinの比較にまとめています。
1週間で見極める試し方
選べないときは、同じ小さなタスクを両方で試すのが確実です。公平に比べるための手順は次のとおりです。
同じタスクを両製品で試す
- 1
タスクを1つ決める
テストが1本落ちている小さなバグ修正など、完了条件が明確なものを選びます。
- 2
Planモードで始める
両方で計画だけを出させ、読み取った範囲と提案の粒度を比べます。
- 3
権限を同じ設計にする
.envの読み取りをdeny、git pushをaskにするなど、同じ条件で動かします。 - 4
worktreeで分けて実行する
作業ツリーを分ければ、2つの結果を後で
git diffで並べて見られます。
比べるのは速さよりも、確認の回数と、差分を読んで直す手間です。ここで差が小さければ、普段使うエディタに合わせて選んで問題ありません。
まとめ
Windsurfは、いまはDevin Desktopであり、その標準エージェントはDevin Localです。権限(deny / ask / allow)、Planモード、サブエージェント、worktreeという骨格はClaude Codeとかなり重なりました。残る差は、IDEの補完と看板型の管理画面を取るか、ターミナルと非対話実行を取るかです。
迷う場合は、Devin Desktopのエディタを残したままClaude Codeを足す構成から始めると、乗り換えの判断を後ろに回せます。拡張が入らなければ、統合ターミナルのCLIで同じことができます。