Cursor WSL 接続エラーの修正

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" パターンを追加してください |