Searches the contents of files in the folder open in Finder or in any folder you select, right from Raycast.
Folder Scope searches file contents using ripgrep, with Node.js as a fallback when ripgrep is unavailable.
.gitignore and skips hidden files by default. Both can be changed for each search.Install Folder Scope from the Raycast Store.
For development setup, see CONTRIBUTING.md.
The results header shows the active folder and how it was detected.
The dropdown in the search bar lets you switch between plain-text and regex modes and change case sensitivity. The action panel (⌘K) contains result actions, search options, and directory actions such as changing the directory, searching the parent folder, re-detecting Finder, or using your home directory.
Folder Scope checks for a directory in this order:
In Automatic mode, Folder Scope tries these search engines in order:
rg installation found on your system.If one is unavailable, Folder Scope automatically tries the next one.
You can also choose a preferred search engine from the extension preferences.
Folder Scope can download a prebuilt ripgrep binary from microsoft/ripgrep-prebuilt (v13.0.0-10) the first time it is needed.
The download is around 2 MB and is verified with a SHA-256 checksum before installation. Apple Silicon and Intel builds are handled separately.
If the download fails, Folder Scope uses system ripgrep or the Node.js fallback instead.
ripgrep is dual-licensed under MIT / Unlicense, and the prebuilt distribution is MIT-licensed. See THIRD_PARTY_NOTICES.md.
| Preference | Default | Description |
|---|---|---|
| Default Search Directory | — | Used when no Finder directory can be detected. |
| When No Finder Directory Is Available | Use My Home Directory | Use your home directory, ask for a folder, or use the configured default directory. |
| Search Engine | Automatic | Automatic, bundled ripgrep, system ripgrep, or Node.js fallback. |
| Default Case Sensitivity | Smart case | Case-insensitive unless the query contains an uppercase letter. |
| Default Search Mode | Plain text | Plain text or ripgrep-style regular expression. |
| Default Search Depth | Unlimited | Maximum directory depth. 1 searches only the current folder. |
| Maximum Results | 250 | Stops after this many results. |
| Maximum File Size (MB) | 10 | Larger files are skipped. |
| Preview Context Lines | 0 | Number of context lines shown above and below the match (0–10). |
| Match Preview | On | Whether the detail preview starts open. It can also be toggled from the action panel. |
| Hidden Files | Off | Include hidden files and directories. |
| Ignore Files | On | Respect .gitignore, .ignore, and similar files. |
| Excluded Directories | .git, node_modules, … | Directory names that are skipped during searches. |
| Default File Extensions | All files | Comma-separated extensions used to limit the search. |
| Search Debounce (ms) | 200 | Delay after typing before a search starts (50–1000 ms). |
| Preferred Code Editor | VS Code | Editor used by Open in Editor. |
shell: false). Search queries, paths, and filters are not passed through a shell.microsoft/ripgrep-prebuilt and checked against a SHA-256 checksum before it is used.src/
search-content.tsx Raycast List UI (command entry point)
components/ Directory picker form
hooks/ Search lifecycle, batching, and Finder directory state
services/ Search engines, engine selection, Finder integration,
and editor launcher
utils/ ripgrep arguments, JSON parsing, validation,
glob/ignore matching, and binary installation
types/ Domain types
Non-trivial pure logic is covered by node --test unit tests.
The following differences apply to the Node.js fallback when neither bundled nor system ripgrep is available:
*, **, and ?; {a,b} alternation and […] classes are not supported..gitignore and .ignore. Negation patterns (!) are resolved last-match-wins within each file, but a nested ignore file cannot un-ignore paths matched by a parent one, and ignore files above the search root are not read.Other limitations:
npm run dev # develop in Raycast
npm test # run unit tests
npm run lint # lint
npm run build # production build
See CONTRIBUTING.md for guidelines.
MIT © Ömer Aydemir. Third-party components are listed in THIRD_PARTY_NOTICES.md.