📝

WindsurfとCursorの機能比較

に公開

はじめに

今回はWindsurfとCursorの機能をざっくり比較してみました。

今回はWindsurfとCursorの公式ドキュメント、実際に触りながら、比較表を作っていきました。
(CursorはFreeプランなので、さわれていない機能はあるかもしれません。WindsurfはProプランです)

私はWindsurfを使用しているので、Windsurfの機能を基にして比較表が作成されております。
(Windsurf派の視点からCursorは何があって、何がないのかを調べてみました。)

この比較記事の経緯

AIエディタを触るきっかけは、会社からCursorを配布されたのがきっかけでした。
PHPStorm→Cursorに移行したのですが、当時PHPの開発体験はPHPStormの方が圧倒的に良いと感じており、Cursorに嫌気がさしていました。

主に下記の点でストレスを感じていた記憶があります。

  • Refactorができない。「No refactorings available」といわれる
     →PHP7.3だったので、Languageサーバーの支援が得られなかったのが原因と推測。
      詳しい方がいれば、教えていただけると幸いです。
  • 未useのクラスをコード内に書いた際に、エディタが自動でuseしてくれない
  • VSCodeベースのUIに慣れていない(特にGit部分)
  • etc(他にもあったと思いますが、思いだせませんでした。)

そこで、同僚に「WindsurfにPHPStormのPluginあるよ」と教えてもらったので、BOSSに直談判し、組織内で一人だけWindsurfを使っているという経緯になります。
PHPStormで開発しながらCascadeやAIのサジェストを利用できるので、私はWindsurfで満足していました。

その際に、「Cursorと比較して報告してね」というBOSSのお達しがあり、この記事を書いております。

CursorとWindsurfの機能比較

さて、ざっくりと比較していきたいと思います。

Tab機能の比較

Windsurf、CursorともにTabが重要な機能を担っております。

比較表
No. 機能 機能説明 Cursor Windsurf
1 予測補完 次のコードを予測して提示する。
Tabを押すことで、その提示されたコードを反映できる
⭕️ ⭕️
2 コードジャンプ 現在のコードからAIが次のカーソルポジション(私たちが次に修正したいと思うコードの位置)を予測する。
Tabを押すと予測した位置にジャンプする
⭕️ ⭕️
3 ファイルを超えてのコードジャンプ 今編集しているファイルを超えて、修正位置を予測するTabを押すと予測した位置にジャンプする ⭕️ ✖️
4 PeekView内でのタブ機能 PeekView内でもタブを使ってコード補完、コードジャンプができる。 ⭕️ ⭕️
5 TabによるImport文挿入 JSなど[1]で、Importされていないモジュールを呼び出した際に、Tabで自動インポートできる。 ⭕️ ⭕️
6 文字入力途中でのサジェスト 文字の入力途中であっても、その途中からサジェストが可能。
例:「cla」と文字を入力中 → 「class」を予測してサジェストしてくれる
⭕️ ⭕️
7 TerminalがTab補完のコンテキストに入る Terminalの実行結果などをコンテキストとして認識し、エディタ上でその結果をサジェストすることができる。 ✖️ ⭕️

エディタ上での機能

コードエディタ上(コード記載可能部分)で実行できる機能面での比較してみます。

比較表
No. 機能 機能説明 Cursor Windsurf
1 選択テキスト部分をAIエージェントのコンテキストに含める 選択したテキストをAIエージェントのプロンプトにコンテキストとして含めることができる ⭕️ ⭕️
2 ハイライト行、カーソル位置に対してのAI呼び出し ハイライト行、カーソル位置に対してコードエディタ上で簡単にAIに指示を出し、コード修正ができる
AIエージェント用のサイドパネルからではなく、コードエディタ上で簡単に行える
⭕️ ⭕️
3 一般的なAI操作のショートカット[2] コードエディタの上部にボタンがあり、一般的なAI操作のためのショートカットが提供されている。
Windsurfには「Explain」「Refactor」「Add Docstring」ボタンがある。
✖️ ⭕️
4 コピー&ペースト時の言語変換[3] 他の言語で書かれているコードをコピー&ペーストすると、ペースト先のファイルの言語に書き換えてペーストしてくれる。
例:
1.test.pyの関数aをコピー
2.test.goに貼り付け
3.関数aがgo言語で書き直されてペーストされる。
✖️ ⭕️
5 編集差分の表示とレビュー AIが編集したコードの差分表示とそれを適用するかどうかレビューできる。
一行一行確認して修正を適用することも、一括適用もできる
⭕️ ⭕️

Terminal上での機能

エディタのTerminal機能面での比較です。

比較表
No. 機能 機能説明 Cursor Windsurf
1 AI呼び出し機能 Terminal上でAIに指示を与え、Terminalで実行するコマンドを作成、編集させることができる。 ⭕️ ⭕️
2 Terminal上での選択部分をAIエージェントのコンテキストに含める Terminal上で選択した部分をAIエージェントのプロンプトにコンテキストとして含めることができる。 ⭕️ ⭕️

WebページのPreview機能

エディタのWebページプレビュー機能面での比較です。[4]

比較表
No. 機能 機能説明 Cursor Windsurf
1 Webページプレビュー エディタ上でWebページをプレビューできる。
WindsurfはIDE、Windsurfブラウザ上でプレビューできる。
✖️ ⭕️
2 ブラウザの要素、エラーをAIエージェントのコンテキストとして含める ブラウザ上で表示されている要素、エラーをAIエージェントのコンテキストとして含めることができる。
Windsurfでは、IDE上、Windsurfブラウザ上で可能
✖️ ⭕️

Git機能

Git関連の機能面での比較です。

比較表
No. 機能 機能説明 Cursor Windsurf
1 AIによるコミットメッセージの作成機能 Gitステージ上にあるファイルからコミットメッセージを自動で作成してくれる。 ⭕️ ⭕️

AIエージェント機能

Windsurf/Cursorサイドパネルで開かれるAIエージェント機能面での比較です。(Windsurfでは「Cascade」と呼ばれています)

比較表
No. 機能 機能説明 Cursor Windsurf
1 AIモデルの選択 プロンプトを実行するモデルを選択できる ⭕️ ⭕️
2 Write/Chat モード Windsurfには「Write」「Chat」モード
Cursorには「Agent」「Ask」「Manual」「Custom」(ユーザ定義)モードがある
⭕️ ⭕️
3 ツールコール AIがプロンプトを実行中にMCPサーバ、WebSearchなどのツールを呼び出せる ⭕️ ⭕️
4 AIの修正を巻き戻す AIが修正したコードを修正前に巻き戻すことができる。 ⭕️ ⭕️
5 リアルタイムのコンテキスト認知 途中でコードを書いて、途中からAIエージェントに書かせるということができる。
プロンプトにコンテキストを含める必要はなく、「続けて」というだけで可能。
⭕️ ⭕️
6 Problemsパネルの内容をプロンプトのコンテキストとして含める エディタのProblemsパネルの内容をプロンプトのコンテキストとして含めることができる。 ✖️ ⭕️
7 指定したファイルを無視する 無視したいファイルを
Windsurfは「.codeiumignore」ファイル
Cursorは「.cursorignore」ファイルに記載する。
⭕️ ⭕️
8 CheckPoint機能 AIが行った修正に対して、スナップショットを取り、いつでもスナップショットの状況に戻せる。 ⭕️ ⭕️
9 会話エクスポート機能 AIの会話履歴をエクスポートできる。 ⭕️ ⭕️
10 Linterの導入 AIが自動でLintエラーを修正することができる。 ⭕️ ⭕️
11 処理の終了時に音を鳴らすことができる AIが修正を終えた際に、音を鳴らすことができる。 ⭕️ ⭕️
12 会話履歴の共有 AIとの会話履歴を共有できる。
Windsurfでは、Teamsプラン、Enterpriseプランで可能
✖️ ⭕️
13 会話の複製 AIとの会話履歴を複製できる。 ⭕️ ✖️
14 古いコンテキストのサマライズ AIとの会話がコンテキスト制限を超える場合に古い会話をサマライズして、コンテキスト制限を超えないようにできる。 ⭕️ ✖️
15 会話の履歴管理 過去の会話の履歴を管理できる。 ⭕️ ⭕️
16 AIの複数同時起動 ウィンドウのタブで複数のAIを同時に起動できる。 ⭕️ ⭕️
17 アプリケーションのデプロイ ウェブアプリケーションのデプロイプロセスをボタンから実行できる。
Windsurfの場合、Netlifyへデプロイ可能
✖️ ⭕️
18 ルールの定義 AIに守らせるルールをファイルに記述できる ⭕️ ⭕️
19 メモリ AIが自動的に生成したルールを管理する ⭕️ ⭕️
20 AIに実行させるプロンプトをコマンド化できる Windsurfの場合、Workflowという機能で可能。 ✖️ ⭕️
21 MCPの対応 MCPサーバが導入できる。 ⭕️ ⭕️
22 Planモード AIが修正を実施する前に計画をたてて、それを実行する ⭕️ ⭕️
23 音声入力モード 音声入力でAIに対するプロンプトを入力できる。 ✖️ ⭕️
24 名前付きチェックポイント チェックポイントに名前をつけることができる。 ✖️ ⭕️
25 ブラウザTabをAIとの会話コンテキストに含める Windsurfブラウザ上で開いているタブをAIエージェントのコンテキストに含めることができる。 ✖️ ⭕️
26 Maxモード AIのコンテキストウィンドウを最大化できる。 ⭕️ ✖️

その他機能の比較

比較表
No. 機能 機能説明 Cursor Windsurf
1 コンテキスト認知 AIで修正する際のコンテキストとしてコードベース全体を理解する機能 ⭕️ ⭕️
2 ナレッジベース 共有コンテキストとして、GoogleDocsの内容をAIエージェントから参照できる。
WindsurfのTeams、Enterpriseプラン向け。
✖️ ⭕️
3 バックグラウンドエージェント 非同期のAIエージェンの呼び出しを行い、リモート環境でコードを編集、実行することができる。 ⭕️ ✖️
4 バックグラウンドエージェントSlack連携 バックグラウンドエージェントをSlackから使うことができる ⭕️ ✖️
5 Web&Mobile対応 Webブラウザ、モバイル端末でCursorのAIエージェント機能を利用可能。 ⭕️ ✖️
6 AIコードレビューBOT リポジトリにAIBOTを導入してコードレビューをさせることができる。
Windsurf、CursorともにGitHubに対応
⭕️ ⭕️
7 JetBrainsプラグイン AIエージェント機能をJetBrainsプラグインとして提供する。 ✖️ ⭕️

AIとの会話で使用できるモデルの比較

両エディタで利用可能なAIモデルをざっくり比較しています。

比較表
AIモデル WindsurfPro CursorPro Windsurf Teams Cursor Teams
SWE-1 ⭕️ ✖️ ⭕️ ✖️
SWE-1-lite ⭕️ ✖️ ⭕️ ✖️
Cursor Small ✖️ ⭕️ ✖️ ⭕️
Claude 3 Opus ✖️ ⭕️ ✖️ ⭕️
Claude 3.5 Haiku ✖️ ⭕️ ✖️ ⭕️
Claude 3.5 Sonnet ⭕️ ⭕️ ⭕️ ⭕️
Claude 3.7 Sonnet ⭕️ ⭕️ ⭕️ ⭕️
Claude 4 Sonnet ⭕️ ⭕️ ⭕️ ⭕️
Claude 4 Opus BYOK [5] ⭕️ ✖️ ⭕️
OpenAI GPT-4o ⭕️ ⭕️ ⭕️ ⭕️
OpenAI GPT-4o mini ✖️ ⭕️ ✖️ ⭕️
OpenAI GPT-4.1 ⭕️ ⭕️ ⭕️ ⭕️
OpenAI GPT-4.5 preview ✖️ ⭕️ ✖️️ ⭕️
OpenAI o1 ✖️ ⭕️ ✖️️ ⭕️
OpenAI o1-mini ✖️ ⭕️ ✖️️ ⭕️
OpenAI o3 ⭕️ ⭕️ ⭕️ ⭕️
OpenAI o3-mini ⭕️ ⭕️ ⭕️ ⭕️
OpenAI o4-mini ⭕️ ⭕️ ⭕️ ⭕️
DeepSeek V3 ⭕️ ⭕️ ✖️ ⭕️
DeepSeek V3.1 ✖️ ⭕️ ✖️ ⭕️
DeepSeek R1 ⭕️ ⭕️ ✖️ ⭕️
Gemini 2.0 Flash ⭕️ ✖️ ⭕️ ✖️
Gemini 2.0 Pro ✖️ ⭕️ ✖️ ⭕️
Gemini 2.5 Flash ⭕️ ⭕️ ⭕️ ⭕️
Gemini 2.5 Pro ⭕️ ⭕️ ⭕️ ⭕️
xAI Grok-2 ✖️ ⭕️ ✖️ ⭕️
xAI Grok-3 ⭕️ ✖️ ✖️ ✖️
xAI Grok-3 Beta ✖️ ⭕️ ✖️ ⭕️
xAI Grok-3 mini ⭕️ ⭕️ ✖️ ⭕️
xAI Grok-4 ✖️ ⭕️ ✖️ ⭕️

CursorとWindsurfに実際にコードを書かせてみた

比較に全くなっておりませんが、気になったのでやってみました。
ポーカーゲームをWindsurf、Cursorに書いてもらいました。
初期のプロンプトは一緒で、プランはWindsurf ProとCursor Pro、モデルはGPT-4.1を使いました。
(2ヶ月前ぐらいに実施したので、今はもっといい結果になるかもしれません。記録を掘り返しながら記載しております)

1回目、Cursor、WindsurfのAIが「できました」と言った時点で実行してみると、双方アプリ画面が表示されず。
その後、GPT-4.1ではダメだと思い、CursorはClaude 4 Sonnet、WindsurfはClaude 3.7 Sonnetを使用してバグを修正させました。
(このときはWindsurfからClaude 4が使えなかったはず。なぜ、両方Claude 3.7 Sonnetを使用していないのかは謎です。。。)

それで、できたのが下の画像になります。

WindsurfPorker.png
Windsurfが書いたポーカーゲーム
Cursorが書いたポーカーゲーム
Cursorが書いたポーカーゲーム

気になったところ

GPT-4.1を使っていた時に、Windsurfはホイホイと実行していくのに対し、Cursorは「次に実行するステップの確認」をしてきたところである。
筆者はその問いかけに「おまかせで頼む」と返してました。

もう一つ気になった点は、cursorのGPT-4.1がコーディング途中でコードベースを破棄して、create-react-appのコマンドを実行をし始めたところです。
yes/noを問われているところでコマンド実行が止まっており、要は「うまく実行されないので、create-react-app使ってゴリゴリ書きますわ」とのことでした。
これにはびっくりしました。AIだからこそできる大胆さなのかもしれません。

まとめ

ここまでざっくりと比較してみてきましたが、どちらも大体同じようなことができるなという印象でした。
強いていうのであれば、Windsurfはコンテキスト認知の部分が強く、Cursorはより細かい設定ができるのかなという所感です。

私個人としては、Windsurfが好きです。
これには、PHPStorm→Cursorに乗り換えた際に、Cursorを使った当初のPHPの開発体験が悪く、WindsurfのJetbrainsプラグインに救われた経験が大きく影響していると思います。

Windsurfに関して言えば、Cognitionによる買収によりCursorで言うところのバックグラウンドエージェントがDevinで実装できると思っています。
それにより、さらに機能が充実していくのではと考えております。(DevinはSlackから指示できますし)

最近、会社では話題のClaudeCodeを使う流れになっております。
私もClaudeCodeのMaxプランを使い始めましたが、ClaudeCodeとWindsurfをどう使い分けるのか、まだ試行錯誤しております。
個人的にはClaudeCodeに任せっきりもいいのですが、自分の手と頭をつかってゴリゴリコードを書くのも好きなので、これからもWindsurfを使っていこうと思います。

Kiroなど、どんどん新しいものがでてきて置いてけぼりになりがちですが、会社の仲間と一緒に頑張って追いかけていきたいです。

参考

脚注
  1. 言語によっては対応していないものもあり。Cursorの公式ページには「TypeScript」「Python」対応の記載がありました。 ↩︎

  2. CoExplain, Refactor, and Add Docstring機能 ↩︎

  3. Smart Paste機能 ↩︎

  4. Preview機能 ↩︎

  5. BYOK:Bring Your Own Key(自身のAPIキーを使用) ↩︎

GitHubで編集を提案

Discussion