本文書では、macOSにAIエディタ「Codeium Windsurf」をインストールし、Todoアプリケーションの実装を行っています。主にWindsurf Editorという製品の名前を聞いたことはあるけれどどんなエディタなのか簡単な例を通して知りたいという方に向けたものです。

Windsurfとは

WindsurfはVSCodeを基に開発されており、生成AI機能(GPT-4oやClaude Sonnet)を搭載しているため、テキストで指示(プロンプト)を与えるだけでコードの追加や修正が可能です。さらに、コードの編集だけでなく、ターミナルを操作してパッケージのインストールや開発サーバの起動も行えます。簡易的なTodoアプリケーションであれば、テキストの指示のみで実装が完了します。

プログラミングを開始した人でもテキストで指示を出すだけで自動で機能の実装を行なってくれるのでコードの内容を確認することで学習用としても利用することができます。

AIが搭載されているエディタといえばCursorやGitHub Copilotを思い浮かべる人も多いかと思います。それのエディタからの乗り換えが起こるのかどうかも今後楽しみなエディタです。

プランの種類

気になる価格については、制限付きの無料プランが準備されており、Proプランでは月額10ドルで利用できます。Proプランを選択すると、GPT-4oやClaude Sonnetに無制限でアクセス可能です。また、Proプランには無料のトライアルも用意されており、サブスクリプション契約前に試用できます。

各プランの詳細は下記の通りです。

Individualプラン

料金:無料(1ユーザー、永続)

初心者や個人ユーザー向けのプランです。基本的なAI支援機能が揃い、気軽に試せます。

  • 主な機能:Windsurf Editorの利用、無制限のAI補完やチャット機能、基本的なコンテキスト認識、データ暗号化、Discordコミュニティへの参加などが含まれています。
  • 制限:インデックスやカスタムコンテキストの制限があり、一部の機能が制限モード(CascadeのRead-Only)で提供されます。

Pro プラン

料金:$10/月(1ユーザー)

個人開発者やプロフェッショナル向けの有料プラン。Individualプランの機能に加え、さらに強力なAIサポートを利用できます。

  • 主な追加機能:GPT-4oやClaude Sonnetといった高度なAIモデルへのアクセス、1000ステップ/月のCascade利用(フルモード)、より長いコンテキストの把握と応答、高速な自動補完、カスタムコンテキストの上限アップなど。
  • 特徴:無制限のAIアクセスと、より豊かな開発サポートが提供されます。

Teams プラン

料金:$24/月(1ユーザー)・最大50ユーザー対応

チームでの開発をサポートするプランです。組織でのシート管理やデータ管理機能が強化されており、共同作業に最適です。

  • 主な追加機能:チームでのシート管理、組織分析、リモートと複数リポジトリのインデックス、Forge(AIコードレビュー機能のベータ版)など。
  • 特徴:チーム全体の生産性を高め、プロジェクトごとの進捗管理が可能です。

Enterprise プラン

料金:カスタム(無制限ユーザー対応)

大規模な組織向けに設計されたフルサポートのプランです。セキュリティが強化され、専用のサポート体制も提供されます。

  • 主な追加機能:オンプレミスやVPC対応の導入、SSO、分析API、監査ログ、カスタムモデルのフィネット調整、Codeium専門家による研修など。
  • 主な追加機能:オンプレミスやVPC対応の導入、SSO、分析API、監査ログ、カスタムモデルのフィネット調整、Codeium専門家による研修など。

Windsurfのインストール

パッケージのダウンロード

Windsurf Editorのインストールはcodeiumのサイト(https://codeium.com/windsurf)から行うことができます。ページにアクセスすると画面中央のダウンロードのリンクが表示されているのでクリックします。

codeium windsurfのダウンロードページ
codeium windsurfのダウンロードページ

macOSの場合、Apple SiliconとIntelの選択肢があるので、自分のマシンに合ったファイルをダウンロードしてください。

Macのプロセッサの選択
Macのプロセッサの選択

Downloadボタンをクリックするとダウンロードが開始されます。dmgファイルのダウンロードが完了したらダブルクリックを行ってください。

インストール

インストールを行い、Windsurfを起動すると以下の画面が表示されます。”Get started”をクリックしてください。

はじめての起動直後の画面
はじめての起動直後の画面

“Setup Flow”の選択画面では、VSCodeからExtensionsをインポートするか、Freshで開始するかを選択できます。また、Windsurfコマンドのパス設定についても聞かれます。ここでは「Start fresh」を選択します。

セットアップ
セットアップ
パスにチェックを行いましたが今回のインストールではwindsurfのパスが設定されませんでした。
fukidashi

キーバインディングの選択ができます。VSCodeのDefaultかVimを選択してください

キーバインディングの設定
キーバインディングの設定

Themeの選択もできるので、好きなテーマを選んでください。

Themeの選択
Themeの選択

Windsurfのサインアップまたはログインの選択画面が表示されます。まだサインアップしていない場合は、サインアップを選択します。

サインアップ・ログイン選択画面
サインアップ・ログイン選択画面

サインアップ画面が表示されます。Googleアカウントを利用することができるのでGoogleアカウントを利用してサインアップを行いました。

サインアップ・ログイン選択画面
サインアップ画面

サインアップが完了するとブラウザ画面が開き、ブラウザでWindsurfを開くかどうかを確認するポップアップが表示されるので、「Windsurfを開く」を選択します。

Windsurfを開くかのポップアップ表示
Windsurfを開くかのポップアップ表示

Windsurfの通常起動時の初期画面が表示され、ここからWindsurfを利用することができます。

Windsurfの初期画面が表示
Windsurfの初期画面が表示

事前に作成しておいたNext.jsプロジェクトディレクトリを選択し、”Open Folder”から選択してTodoアプリケーションの構築を開始します。

Next.jsプロジェクトの作成は”npx create-next-app@latest”コマンドを実行してnextjs-windsurfをいうプロジェクト名として対話的にいつくか質問がありますがすべてデフォルト値を選択しています。
fukidashi

Todoアプリケーションの構築

Next.jsのプロジェクトをWindsurfから開いた直後の画面です。

Next.jsのプロジェクトを開いた直後
Next.jsのプロジェクトを開いた直後

右側のパネルのCascadeで、WriteモードとChatモードを選択すると生成AIを利用できます。利用するAIはプルダウンメニューから選択可能で、デフォルトでは「Claude 3.5 Sonnet」が選択されています。

Cascade
Cascade

Writeモード

まず、Writeモードを利用します。

「Ask anything」と記述されている入力欄に「Todoアプリケーションを実装したい」と入力して開始します。Next.jsプロジェクトであることが認識され、ファイルの更新などが自動で行われます。

実行中の処理
実行中の処理

処理が完了すると、実装された機能の説明とアプリケーションを起動するためのコマンドが表示されます。コマンド実行を「Accept」か「Reject」で選択でき、下には更新ファイルを「Accept All」または「Reject All」するボタンが表示されます。

実装した処理の内容とコマンドの表示
実装した処理の内容とコマンドの表示

ファイルに反映させたいので「Accept All」をクリックします。page.tsxファイルの中身を確認すると更新内容が確認できます。

page.tsxファイルの更新内容の確認
page.tsxファイルの更新内容の確認

page.tsxファイルが更新されているのを確認したら、開発サーバの起動コマンドも「Accept」します。

開発サーバの起動
開発サーバの起動

コマンドが実行され開発サーバがhttp://localhost:3000で起動しているのでブラウザからアクセスします。実装されたTodoアプリの画面が表示されます。

Todoアプリ画面の表示
Todoアプリ画面の表示

画面が表示されているだけではなくTodoアプリの追加。チェック、削除を問題なく行うことができます。

Todoアプリの動作確認
Todoアプリの動作確認

「Todoアプリケーションを実装したい」と入力するだけで、CodeiumのWindsurf Editorを利用してここまで簡単に実行できました。

Chatモード

WriteモードからChatモードに変更し、「Todoの初期値を設定したい」と入力すると、以下の画面が表示されます。

Chatモードを利用した場合
Chatモードを利用した場合

表示されているApplyボタンをクリックするとコードに反映されブラウザ上にも反映されます。

Chatモードからのコードへの反映
Chatモードからのコードへの反映

このようにChatモードを利用することができます。

WindSurfのほんの一部の機能しか利用していますがテキストで指示を与えるだけで簡単にアプリケーションが作成できることが確認できました。

その他の例

Trello Clone

Trello Cloneを作成してくださいと入力すればエラーが2件ほど出ていますが、Todoの入力やドラッグ&ドロップなども可能なTrello Cloneを作成してくれました。

windsurfによるtrello cloneの作成
windsurfによるtrello cloneの作成