Todo Tree "Failed to find vscode-ripgrep": why it happens and how to fix it
If your Todo Tree panel is empty and VS Code says Todo-Tree: Failed to find vscode-ripgrep - please install ripgrep manually and set 'todo-tree.ripgrep' to point to the executable, the extension can't find the search program it depends on. Here is the cause, a fix that takes two minutes on Windows, macOS and Linux, the Remote SSH case, and one trap in the error message itself.
Why it broke
Todo Tree doesn't search files itself. It runs ripgrep, and by default it uses the copy that ships inside VS Code. It looks for that copy in four fixed places under VS Code's install folder. We checked the current versions on 17 October 2026: Todo Tree 0.0.226 (its newest release on the Marketplace) looks in
node_modules/vscode-ripgrep/bin/node_modules.asar.unpacked/vscode-ripgrep/bin/node_modules/@vscode/ripgrep/bin/node_modules.asar.unpacked/@vscode/ripgrep/bin/
VS Code 1.122 (27 May 2026) moved its ripgrep to a package called @vscode/ripgrep-universal, with one subfolder per platform. In VS Code 1.142.0 on Linux the only copy is at resources/app/node_modules.asar.unpacked/@vscode/ripgrep-universal/bin/linux-x64/rg, and none of Todo Tree's four paths exist. So on a default install, Todo Tree finds nothing until you tell it where ripgrep is. That matches what people reported in Todo Tree issues #923 (27 May 2026), #925, #929 and #938 (30 July 2026), and in the VS Code report #318691. A fix for Todo Tree was proposed in pull request #924, but the extension hasn't had a release since April 2023.
The trap: the error names the wrong setting
The message tells you to set todo-tree.ripgrep. In Todo Tree 0.0.226 the setting is actually todo-tree.ripgrep.ripgrep (reported in issue #930; you can see it in the extension's code, which reads getConfiguration("todo-tree.ripgrep").ripgrep). If you followed the message and nothing changed, this is why.
Fix it in three steps
- Install ripgrep as a normal program, so the path never moves when VS Code updates:
- Windows:
winget install BurntSushi.ripgrep.MSVC(orchoco install ripgrep/scoop install ripgrep) - macOS:
brew install ripgrep - Debian and Ubuntu:
sudo apt install ripgrep; Fedora:sudo dnf install ripgrep
- Windows:
- Find its full path:
where rgon Windows,which rgon macOS and Linux. Typical answers are/opt/homebrew/bin/rg(Apple silicon),/usr/local/bin/rg(Intel Mac) and/usr/bin/rg(Linux). A barergdoesn't work: Todo Tree checks that the file exists, so it needs the absolute path. - Add it to your user settings (Command Palette, "Preferences: Open User Settings (JSON)") and reload the window:
On Windows, escape the backslashes:"todo-tree.ripgrep.ripgrep": "/usr/bin/rg""C:\\Users\\you\\AppData\\Local\\Microsoft\\WinGet\\Links\\rg.exe".
If it still fails, look for the same setting in the workspace's .vscode/settings.json: a workspace value overrides your user value.
Remote SSH, WSL and dev containers
Todo Tree runs where your files are, so ripgrep must be installed on the remote machine, and the path must be the remote path. Put the setting in the remote settings (Command Palette, "Preferences: Open Remote Settings (JSON)"), not your local user settings. In issue #939 the error appeared after VS Code Server updated itself over Remote SSH. A path that points inside the server's own folder can move with every server update; a system-installed ripgrep doesn't.
Why not point it at VS Code's own copy?
You can set the path to the new bundled file (on Linux, <VS Code folder>/resources/app/node_modules.asar.unpacked/@vscode/ripgrep-universal/bin/linux-x64/rg; on other systems the last folder is your platform, such as darwin-arm64 or win32-x64). It works until VS Code moves it again, and the folder name contains the install location, so it differs between machines. Installing ripgrep yourself is the fix that lasts.
Or use a TODO list that doesn't need ripgrep
We built Loose Ends after reading these reports. It reads your files through the file APIs VS Code gives every extension, so there is no binary to find and nothing to configure. It picks up your todo-tree.general.tags, groups by tag or file, highlights tags in the editor, and updates as you type. The list is free; a $9 Pro key adds git age and author, overdue warnings and a Markdown or CSV report. It is not on the VS Code Marketplace yet (the listing is coming); for now, download the free VSIX and install it from the Extensions view: click the … menu at the top of the view and choose Install from VSIX… (the same in Cursor and VSCodium).
Quick checklist
| Symptom | Cause | Fix |
|---|---|---|
| Empty tree right after a VS Code update | Bundled ripgrep moved (VS Code 1.122 and later) | Install ripgrep and set todo-tree.ripgrep.ripgrep |
Set todo-tree.ripgrep, still failing | Wrong setting name in the message | Use todo-tree.ripgrep.ripgrep |
| Set the path, still failing | Not an absolute path, or a workspace setting overrides it | Use the output of which rg / where rg; check .vscode/settings.json |
| Works locally, fails over SSH | ripgrep missing on the remote, or the path is local | Install on the remote; set it in Remote Settings |
Checked on 17 October 2026 against Todo Tree 0.0.226 and VS Code 1.142.0 (Linux x64). Issue dates are from GitHub's issue pages.