
Find a file by what it contains, even when you cannot remember its name. Describe a document, photo, recording, or video in Raycast. EmbeddingGemma 2 searches the contents locally; a separate macOS service keeps the index up to date.
Requires Apple Silicon, macOS 14+, at least 8 GB RAM, and 4 GB free disk space. No Terminal, Xcode, CMake, separately installed Node, API key, or DigUp app is needed.
Setup shows download progress and errors. If it stops, choose Retry Setup. Valid model downloads are reused. Advanced users can set Helper Path in extension preferences to an extracted, trusted helper release directory containing bin/ and licenses/; leave it empty for verified downloads.
| Command | What it does |
|---|---|
| Search File Contents | Semantic and exact-word retrieval, excerpts, page/time metadata, Quick Look, open/reveal, and copy actions |
| Manage Content Index | Select folders, inspect progress, pause/resume, set exclusions, and choose power/memory limits |
| Install Local Content Search | Download and verify the helper/models, register the service, or remove it |
Readers support text/Markdown, rich documents, PDFs including scans, images/screenshots with OCR, audio windows, and sampled video frames with audio. macOS frameworks handle decoding; no external transcription service is used.
Selected folders -> native readers -> EmbeddingGemma 2 / Metal -> SQLite
| |
filesystem watchers -> service queue Raycast search
^ |
+---- indexing yields -------+
The per-user login service runs independently of Raycast. It reconciles changed files, coalesces watcher events, and rescans periodically. SQLite retains pending work across restarts. Disconnected folders and files temporarily evicted to cloud storage retain their indexed records; deleted files in accessible folders are removed. Cloud placeholders are not downloaded to refresh their contents.
Resource limits reduce risk; they cannot guarantee that macOS or a driver will never crash. Exclusions also cannot identify every sensitive file. Review the folders you select.
Setup downloads the helper from this project's public GitHub releases and models from Hugging Face. After setup, the extension and service require no network access. They make no remote inference requests, telemetry calls, or update checks. Files, queries, extracted content, and embeddings stay on the Mac. The service accepts requests through a private Unix socket, not a TCP port.
State lives under ~/Library/Application Support/LocalSearch. Its directory is user-private, but extracted text and vectors are not separately encrypted; use FileVault if you need disk encryption. Removing a folder hides its results immediately and prunes its records on the next indexing pass. Removing the final folder prunes records even while paused or power-blocked. Interrupted cleanup remains queued across restarts until it succeeds; the service reports cleanup failures.
Open Install Local Content Search, choose Remove Background Service, and confirm. This stops and unregisters the login service while preserving models, settings, and the index. Other commands will not reinstall it until you explicitly choose Install again. Removing the Raycast extension alone does not stop the independent service; remove the service first.
If an installed service stops, opening a command restarts it from local files without downloading again. If recovery fails, choose Restart Background Service to retry offline. Repair Installation downloads a new helper and requires a connection.
Logs are under ~/Library/Application Support/LocalSearch/logs.
If saved configuration cannot be read, pause/resume cannot replace it with an empty folder list. Restore the configuration or explicitly choose folders; recovery preserves the original as config.json.invalid-<timestamp> in the state directory. The helper includes its own Node runtime, so changes to a separately installed Node do not affect the service.
The Raycast UI, Unix service, installer, resource controls, and integration tests are available in the public helper repository. The native readers, index/store/search code, and llama.cpp adapter are adapted from MIT-licensed DigUp source at 6faa29e4c315a3a591de1b41bd78751bdf39588d. They are compiled into this project's own engine; no DigUp application or installed CLI is used.
The helper and its build source are available at github.com/sushilk1991/raycast-local-search. See THIRD_PARTY_NOTICES.md. Installed helper licenses are retained alongside local service state.