メインコンテンツまでスキップ

Cursor WSL 接続エラーの修正

Cursor WSL Fix

Cursor 3.0.9 以降、多くのユーザーが Directory not found: --classic という厄介な WSL 接続エラーに遭遇しています。これは、Glass(Agent)インターフェースの更新後に Cursor が使用する WSL shim が破損したためです。このガイドでは、確実な修正方法を提供します。

問題の理解

ターミナルから Cursor で WSL フォルダを開こうとすると、次のメッセージが表示される場合があります:

Directory not found: --classic

これが発生する理由:

  • Cursor 3.0.9+ で Glass(Agent)インターフェースが導入された
  • WSL shim スクリプトが適切に更新されていない
  • --classic フラグがフォルダ名として誤解釈されている

修正方法:スマートラッパースクリプトの作成

ステップ 1:Cursor 実行ファイルの場所を確認

Windows 上で Cursor がインストールされている場所を見つけます:

# 一般的な場所:
C:\Users\<username>\AppData\Local\Programs\cursor\Cursor.exe
# または
C:\Program Files\Cursor\Cursor.exe

ステップ 2:ラッパースクリプトの作成

WSL ホームディレクトリ(~/.local/bin/)に cursor-wsl という名前のファイルを作成します:

mkdir -p ~/.local/bin
cat > ~/.local/bin/cursor-wsl << 'EOF'
#!/bin/bash
# Smart wrapper for Cursor WSL connection
# Fixes the --classic directory error

WINDOWS_CURSOR="/mnt/c/Users/$(cmd.exe /c 'echo %USERNAME%' 2>/dev/null | tr -d '\r')/AppData/Local/Programs/cursor/Cursor.exe"

if [ ! -f "$WINDOWS_CURSOR" ]; then
WINDOWS_CURSOR="/mnt/c/Program Files/Cursor/Cursor.exe"
fi

if [ ! -f "$WINDOWS_CURSOR" ]; then
echo "Error: Could not find Cursor.exe"
echo "Please update WINDOWS_CURSOR path in this script"
exit 1
fi

# Convert WSL path to Windows path
WSL_PATH="$(wslpath -w "$PWD")"

# Launch Cursor with the correct path
"$WINDOWS_CURSOR" --classic "$WSL_PATH" "$@"
EOF

chmod +x ~/.local/bin/cursor-wsl

ステップ 3:PATH に追加

これを ~/.bashrc または ~/.zshrc に追加します:

export PATH="$HOME/.local/bin:$PATH"

その後、再読み込みします:

source ~/.bashrc  # または ~/.zshrc

ステップ 4:便利なエイリアスの作成

シェル設定に追加します:

alias cursor='cursor-wsl'
alias c.='cursor-wsl .'

代替修正:直接 Windows パス方式

ラッパースクリプトが機能しない場合は、この直接的なアプローチを使用してください:

# ~/.bashrc に追加
cursor() {
local win_path
win_path=$(wslpath -w "${1:-$PWD}")
/mnt/c/Users/$(cmd.exe /c 'echo %USERNAME%' | tr -d '\r')/AppData/Local/Programs/cursor/Cursor.exe --classic "$win_path"
}

修正の確認

設定をテストします:

# プロジェクトに移動
cd ~/my-project

# Cursor で開く
cursor .

# またはエイリアスを使用
c.

これで、Cursor が --classic エラーなしで開くはずです。

追加のヒント

Cursor パスの自動更新

Windows ユーザー名が変更された場合、または Cursor が移動した場合:

# Cursor を自動的に検索
find /mnt/c -name "Cursor.exe" -type f 2>/dev/null | head -1

パス内のスペースの処理

Windows ユーザー名にスペースが含まれている場合は、パスを引用符で囲みます:

"$WINDOWS_CURSOR" --classic "$WSL_PATH"

WSL2 固有の設定

WSL2 の場合、/etc/wsl.conf で Windows 相互運用が許可されていることを確認してください:

[interop]
enabled = true
appendWindowsPath = true

その後、WSL を再起動します:

wsl --shutdown

トラブルシューティング

問題解決策
command not found: cursor-wsl~/.local/bin が PATH に含まれていることを確認してください
Cursor.exe not foundスクリプト内のパスをインストール場所に合わせて更新してください
起動が遅いWSL→Windows 相互運用ではこれは正常です。VS Code Remote WSL の使用を検討してください
ファイルウォッチャーの問題Cursor 設定に "files.watcherExclude" パターンを追加してください

関連リソース