Windsurfの設定 - 環境変数
概要
Windsurfの設定は、Windsurf固有のAI関連設定とVS Code互換のエディタ設定の2つの体系で構成される。
Claude Codeが環境変数 (export) とsettings.jsonの両方で設定を管理するのに対し、
WindsurfはGUIベースの設定画面 と settings.jsonを中心とした管理体系を採用している。
下表に、Windsurfの設定項目を示す。
| 設定項目 | 説明 |
|---|---|
| AI関連設定 | Cascade、Windsurf Tab、Memory 等の AI 機能に関する設定 |
| BYOK (Bring Your Own Key) | 自分の API キーを使用したモデルアクセス設定 |
| エディタ設定 | フォント、テーマ、キーバインド等の VS Code 互換設定 |
| ネットワーク設定 | プロキシ、SSL証明書等のネットワーク関連設定 |
| プライバシー設定 | テレメトリ、データ収集の制御 |
設定の全体像
下表に、Windsurfの設定体系を示す。
| カテゴリ | 設定方法 | 説明 |
|---|---|---|
| Windsurf AI設定 | 設定画面 / settings.json | Cascade、Tab、Memory等のAI関連設定 |
| VS Code互換設定 | 設定画面 / settings.json | エディタ設定、テーマ、フォント等 |
| MCP設定 | mcp_config.json | MCPサーバの設定 |
| ルール | .windsurf/rules/*.md | Cascadeへの指示 |
| スキル | .windsurf/skills/ | 多段階ワークフロー |
| ワークフロー | .windsurf/workflows/*.md | 反復タスクの自動化 |
設定ファイルの場所と書式
下表に、Windsurfの設定ファイルのパスを示す。
| 設定 | パス | 用途 |
|---|---|---|
| ユーザ設定 | ~/.config/Windsurf/User/settings.json | 全ワークスペース共通のエディタ・AI設定 |
| ワークスペース設定 | /<プロジェクトルート>/.vscode/settings.json | プロジェクト固有のエディタ設定 |
| キーバインド | ~/.config/Windsurf/User/keybindings.json | キーボードショートカット設定 |
| グローバルAI設定 | ~/.codeium/windsurf/ | MCP、メモリ、グローバルルール等 |
| グローバルルール | ~/.codeium/windsurf/memories/global_rules.md | 全ワークスペース共通のルール |
設定画面の開き方
- GUI設定画面
- [Ctrl] + [,]キーを同時押下
- JSON設定
- コマンドパレット ([Ctrl] + [Shift] + [P]キー) -> [Preferences: Open Settings (JSON)]
Claude Codeとの設定方式の比較
| 項目 | Claude Code | Windsurf |
|---|---|---|
| 主な設定方法 | 環境変数 (export) + settings.json | GUI設定画面 + settings.json |
| APIキー設定 | ANTHROPIC_API_KEY (環境変数) | BYOK (GUI設定画面) |
| モデル選択 | ANTHROPIC_MODEL (環境変数) | Cascadeパネルのドロップダウン |
| 設定ファイル | ~/.claude/settings.json | ~/.config/Windsurf/User/settings.json |
| CLI設定 | claude config set | なし (GUIベース) |
BYOK (Bring Your Own Key) 設定
BYOK (Bring Your Own Key) は、自分のAPIキーを使用してAIモデルにアクセスする設定である。
対応プロバイダ
下表に、BYOKで利用可能なプロバイダを示す。
| プロバイダ | 対応モデル | APIキー形式 |
|---|---|---|
| Anthropic | Claude Opus 4.6, Claude Sonnet 4.5, Claude Sonnet 4 | sk-ant-xxxx |
| OpenAI | GPT-5.2-Codex, GPT-4.1, GPT-4o | sk-xxxx |
| Gemini 3 Flash, Gemini 3 Pro, Gemini 2.5 Pro | AIzaXXXX | |
| Z.ai (Zhipu AI) | GLM-5 | {ID}.{secret} |
設定手順
- Windsurf設定画面を開く。
または、[Ctrl] + [,]キーを押下する。 - 検索バーで BYOK と入力する。
- [Cascade] - [BYOK]セクションに移動する。
- 使用するプロバイダのAPIキーを入力する。
- 保存して設定を反映する。
コスト管理の注意事項
- BYOKを設定すると、使用したモデルのAPIコストが直接課金される。
- Windsurfのクレジットとは別にAPI利用料金が発生する。
- APIキーの使用量を定期的に確認することを推奨する。
Windsurf Tab (自動補完) 設定
Windsurf Tabは、AIによるコード自動補完機能である。
Autocomplete
カーソル位置での従来型のコード補完を提供する。
- 有効 / 無効の切り替え
- 設定画面から切り替え可能
- トリガー
- 入力中に自動的に候補が表示される
- 受け入れ
- [Tab]キーで候補を受け入れ
- 拒否
- [Esc]キーで候補を拒否
Supercomplete
カーソル周辺の追加と削除を同時に提案する高度な補完モードである。(推奨モード)
- Autocompleteとの違い
- 従来のAutocompleteが「カーソル位置での追加」のみであるのに対し、Supercompleteは「周辺コードの削除を含む変更」も提案する。
- メリット
- リファクタリングに近い提案が可能であり、コード品質の向上に寄与する。
Tab to Jump
関連する編集箇所への自動ジャンプ機能である。
- 動作
- 現在の編集に関連する次の編集箇所に [Tab]キーでジャンプできる。
- 使用場面
- 関数名の変更後、呼び出し箇所にジャンプして修正する場合等。
Tab to Import
使用しているライブラリの自動インポート機能である。
- 動作
- コード内で使用しているライブラリが未インポートの場合、自動的にインポート文を提案する。
- 対応言語
- JavaScript, TypeScript, Python等の主要言語
設定例
Windsurf Tabに関連する設定例を以下に示す。
{
"windsurf.autocomplete.enabled": true,
"windsurf.supercomplete.enabled": true,
"windsurf.tabToJump.enabled": true,
"windsurf.tabToImport.enabled": true
}
Memory機能の設定
Memory機能は、会話間のコンテキストを自動保存する機能である。
設定項目
- 自動メモリ
- Cascadeが重要なコンテキストを自動的に記憶する。
- 有効 / 無効の切替が可能
- 手動メモリ
- ユーザが明示的にメモリを作成する。
- 「〜を覚えておいて」とCascadeに依頼する。
メモリの管理方法
- Cascadeスライダーメニューを開く。
- [Memories]セクションを選択する。
- 保存されたメモリの一覧を確認する。
- 不要なメモリを個別に削除する。
メモリの保存場所
- メモリデータ
- ~/.codeium/windsurf/memories/
- グローバルルール
- ~/.codeium/windsurf/memories/global_rules.md
注意事項
- メモリはワークスペースに紐づけられ、他のワークスペースとは共有されない。
- メモリの使用はクレジットを消費しない。
- メモリが増えすぎるとCascadeのコンテキストに影響する場合がある。
定期的な整理を推奨する。
キーボードショートカット
Windsurfの主要なキーボードショートカットを以下に示す。
| ショートカット | 機能 |
|---|---|
| [Ctrl] + [L] | Cascadeパネルを開く / 閉じる |
| [Ctrl] + [I] | インライン編集を開始 |
| [Ctrl] + [Shift] + [P] | コマンドパレットを開く。 |
| [Ctrl] + [Shift] + [Enter] | Cascade: Writeモードに切替 |
| [Ctrl] + [Enter] | Cascade: Chatモードに切替 |
| [Tab] | 補完候補の受け入れ / Tab to Jump |
| [Esc] | 補完候補の拒否 |
| [Alt] + [\] | 補完の手動トリガー |
| [Ctrl] + [,] | 設定画面を開く。 |
| [Ctrl] + [Shift] + [X] | 拡張機能パネルを開く。 |
| [Ctrl] + [`] | 統合ターミナルを開く / 閉じる |
| [Ctrl] + [B] | サイドバーを開く / 閉じる |
| [Ctrl] + [K], [Ctrl] + [S] | キーボードショートカット設定を開く。 |
キーバインドのカスタマイズ
キーバインドのカスタマイズ方法を以下に示す。
- [Ctrl] + [K]キー、[Ctrl] + [S]キーでキーボードショートカット設定を開く。
- 変更したいショートカットを検索する。
- 新しいキーバインドを設定する。
または、~/.config/Windsurf/User/keybindings.json を直接編集する。
[
{
"key": "ctrl+shift+l",
"command": "windsurf.openCascade"
}
]
プロキシ設定
企業ネットワーク等でプロキシサーバを経由する場合の設定方法を以下に示す。
HTTP/HTTPSプロキシ
settings.jsonでのプロキシ設定例を以下に示す。
{
"http.proxy": "http://proxy.example.com:8080",
"http.proxyStrictSSL": true,
"http.proxyAuthorization": null
}
環境変数でのプロキシ設定を以下に示す。
# プロキシサーバの設定
export HTTPS_PROXY="http://proxy.example.com:8080"
export HTTP_PROXY="http://proxy.example.com:8080"
# プロキシを経由しないホストの設定
export NO_PROXY="localhost,127.0.0.1,.internal.example.com"
自動検出
Windsurfはシステムのプロキシ設定を自動検出する機能を持つ。
自動検出の設定を以下に示す。
{
"http.proxySupport": "on"
}
下表に、設定値の説明を示す。
| 設定値 | 説明 |
|---|---|
"on" |
システムのプロキシ設定を自動検出して使用 |
"off" |
プロキシを使用しない。 |
"override" |
settings.jsonのプロキシ設定のみを使用 |
SSL証明書の設定
自己署名証明書を使用するプロキシ環境では、CA証明書のパスを設定する。
# 自己署名証明書の設定
export NODE_EXTRA_CA_CERTS="/path/to/ca-bundle.crt"
SSHトンネル経由の接続
SSHトンネルを経由してWindsurfを使用する場合、以下の設定が必要になる。
# SSHトンネルの設定例 ssh -L 8080:api.windsurf.com:443 user@jump-server
テレメトリ設定
Windsurfのテレメトリ (使用状況データの収集) の制御方法を以下に示す。
テレメトリの無効化
settings.jsonでテレメトリを無効化する設定を以下に示す。
{
"telemetry.telemetryLevel": "off"
}
設定値の説明を以下に示す。
| 設定値 | 説明 |
|---|---|
| off | テレメトリとクラッシュレポートを完全に無効化 |
| crash | クラッシュレポートのみ送信 |
| error | エラーとクラッシュレポートを送信 |
| all (デフォルト) | 全てのテレメトリデータを送信 |
収集されるデータの種類
テレメトリで収集されるデータの例を以下に示す。
- 使用状況データ (機能の使用頻度等)
- エラーレポート (クラッシュ情報等)
- パフォーマンスデータ (応答時間等)
ソースコードの内容はテレメトリデータに含まれない。
.codeiumignore
.codeiumignore ファイルは、CascadeとWindsurf Tabの対象からファイルを除外する設定ファイルである。
書式
.gitignore ファイルと同じ構文を使用する。
配置場所
プロジェクトルートに配置する。
設定例
# 依存関係 node_modules/ vendor/ # ビルド出力 dist/ build/ # バージョン管理 .git/ # 機密情報 .env .env.local # 大規模ファイル *.min.js *.map
Cascadeへの影響
- .codeiumignoreに記載されたファイルは、Cascadeのコンテキストから除外される。
- Windsurf Tabの補完対象からも除外される。
- 大規模なプロジェクトでは、不要なファイルを除外することでパフォーマンスが向上する。
Cascade設定オプション
下表に、Cascadeに関連する設定オプションを示す。
| 設定項目 | 説明 | デフォルト値 |
|---|---|---|
| ルール文字数制限 (個別) | 個別ルールファイルの最大文字数 | 6,000文字 |
| ルール文字数制限 (合計) | グローバル + ワークスペースルールの合計最大文字数 | 12,000文字 |
| ツール呼び出し制限 | 1プロンプトあたりの最大ツール呼び出し回数 | 25回 |
| ターボモード | コマンド実行の承認モード | Off |
| モデル選択 | 使用するAIモデル | SWE-1 (デフォルト) |
Claude Code環境変数との比較
下表に、WindsurfとClaude Codeの設定方式の詳細な比較を示す。
| 項目 | Claude Code | Windsurf |
|---|---|---|
| 設定方法 | 環境変数 (export) + settings.json |
settings.json (GUI設定画面) |
| APIキー | ANTHROPIC_API_KEY (環境変数) |
BYOK (GUI設定画面) |
| モデル指定 | ANTHROPIC_MODEL (環境変数) |
Cascadeパネルのドロップダウン |
| プロキシ | HTTPS_PROXY 等 (環境変数) |
http.proxy (settings.json) / 環境変数
|
| テレメトリ | DISABLE_TELEMETRY (環境変数) |
telemetry.telemetryLevel (settings.json)
|
| タイムアウト | BASH_DEFAULT_TIMEOUT_MS 等 |
なし (固定値) |
| 設定ファイル | ~/.claude/settings.json | ~/.config/Windsurf/User/settings.json |
| 推論努力レベル | CLAUDE_CODE_EFFORT_LEVEL |
なし |
| 出力トークン制限 | CLAUDE_CODE_MAX_OUTPUT_TOKENS |
なし |
| クラウドプロバイダ | Bedrock / Vertex AI / Foundry | BYOK (APIキー設定) |
トラブルシューティング
設定が反映されない
- settings.jsonの構文が正しいか確認する。(JSONバリデーション)
- Windsurf Editorを再起動する。
- ワークスペース設定がユーザ設定を上書きしていないか確認する。
BYOK設定の問題
- APIキーが正しいか確認する (プロバイダのダッシュボードで確認)。
- APIキーの使用量制限に達していないか確認する。
- ネットワーク接続 (プロキシ設定含む) を確認する。
プロキシ接続の問題
- プロキシURLが正しいか確認する。
- 認証が必要なプロキシの場合、認証情報が設定されているか確認する。
http.proxyStrictSSLの設定を確認する。- 自己署名証明書の場合、
NODE_EXTRA_CA_CERTSを設定する。
テレメトリの無効化確認
- settings.jsonに
"telemetry.telemetryLevel": "off"が設定されているか確認する。 - Windsurf Editorを再起動して設定を反映する。
参考リンク