Skip to content

GrepツールのENOENTエラーを修正:VS Code拡張の自動更新やmacOSのApp Translocation後も動作

原文(日本語に翻訳)

組み込みのripgrepバイナリパスが古くなった場合(VS Code拡張の自動更新、macOSのApp Translocation)にGrepツールのENOENTエラーが発生する問題を修正。システムの rg へのフォールバックとセッション中の自己修復が機能するようになりました

原文(英語)

Fixed Grep tool ENOENT when the embedded ripgrep binary path becomes stale (VS Code extension auto-update, macOS App Translocation); now falls back to system rg and self-heals mid-session

概要

Claude CodeのGrepツールは内部でripgrepを使用していますが、VS Code拡張の自動更新やmacOSのApp Translocationによってバイナリパスが変わると「ENOENT(ファイルが見つからない)」エラーが発生していました。今回の修正で、組み込みripgrepが見つからない場合はシステムにインストールされた rg コマンドにフォールバックし、さらにセッション中に自己修復するようになりました。

基本的な使い方

修正は自動的に適用されます。GrepツールがENOENTエラーになった場合、Claude Codeは自動的に:

  1. システムの rg(ripgrep)にフォールバック
  2. バイナリパスを自己修復してセッションを継続

特別な操作は不要です。

実践例

VS Code拡張更新後の影響(修正前)

# VS Code がバックグラウンドで Claude Code 拡張を自動更新
# バイナリのパスが変わり、次のような操作で失敗していた:

> このプロジェクトで `useState` を使っている箇所を探して

# 修正前のエラー:
# Error: ENOENT: no such file or directory, 
# '/Users/user/.vscode/extensions/anthropics.claude-code-1.2.3/ripgrep-xxx'

# 修正後: 自動的にシステムのrg にフォールバック、タスクは継続

macOS App Translocation環境(修正前)

# macOSがセキュリティのためアプリを別パスに移動する「App Translocation」後
# 組み込みripgrepのパスが無効になっていた

# 修正後: 自動的に修復されてセッションを継続

手動でシステムのripgrepを使う設定(回避策として)

もしシステムにripgrepをインストールしておくと、フォールバック先として機能します:

bash
# macOSの場合
brew install ripgrep

# Ubuntuの場合
sudo apt install ripgrep

# Arch Linuxの場合
sudo pacman -S ripgrep

Grepツールが正しく動作しているか確認

# Claude Codeに検索を依頼して確認
> src ディレクトリの中で "TODO" というコメントがあるファイルを探して

# 正常に結果が返ってくれば Grep ツールは機能している

注意点

  • システムrg のインストール推奨: フォールバック先として rg(ripgrep)をシステムにインストールしておくと、この問題の影響を最小化できます
  • 自己修復の仕組み: セッション中にパスが修復されるため、セッションを再起動する必要はありません
  • VS Code自動更新の影響: VS Code の「拡張機能の自動更新」設定をオフにすることでも回避できますが、セキュリティアップデートを逃す可能性があります
  • App Translocationとは: macOSが検疫済みアプリを初回起動時に一時的なパスから実行するセキュリティ機能です。一度 /Applications に移動すると解消されます

関連情報