Lumen searches the folders you choose and shows where each match is in the original file. This page explains how to add folders, run searches, unlock password-protected PDFs, search code, and keep the index current.
Before you begin#
- Lumen searches only folders you choose. It reads your files and never edits them.
- What you can search depends on your build:
- Without the search package: keyword search of text and PDF files, plus the older optional text and image adapter.
- With the search package: EmbeddingGemma 2 combined with exact words, filenames, paths, and macOS OCR. This adds scanned PDFs, rich documents, images, audio, video, and optional code search.
To learn how each build is prepared, see How local AI is prepared.
Add folders and search#
- In Files or Settings → Search, choose Choose folders…, then select one or more folders in the macOS folder picker.
- Wait while Lumen indexes the folders. Progress shows the current file, and you can review skipped files and errors.
- Choose Search or ask at the top of the sidebar (⌘F), or open Files for filters and a grid view, and enter your search. You can describe what you remember, type an exact name or number, or put an exact phrase in quotation marks. Results update as you type. Earlier results stay visible until new ones arrive; a bar under the filters shows a search is still running, and placeholder rows appear while the first results load.
- Optional: Filter results by kind with the chips under the field. In Files you can also filter by chosen folder or modification date, and switch between list and grid views.
- Use Up Arrow and Down Arrow to select a result without leaving the search field, then press Space or Command–Y to preview it.
- Click a result to preview its source. The result's context menu also has Reveal in Finder, Copy path, and Open file.
Open search from another app#
While Lumen is running, press Control–Option–Space (or Command–F in Lumen) to open the command bar. If the shortcut conflicts with another app, Settings → General reports it. You can still open search from the menu bar.
The command bar has two modes. Search finds files as you type; press Tab to switch to Ask and get a written answer about the same words, with sources. See Memory and Ask Lumen.
The command bar and Files share the same keys:
| Key | Action |
|---|---|
| ↑ ↓ or Control–N / Control–P | Move the selection |
| Return | Open the file |
| Command–Return | Reveal it in Finder |
| Command–Y, or Space after using the arrows | Preview the page, moment, or line |
| Command–C | Copy the path (when no text is selected) |
| Command–1 to 9 | Open that result |
| Tab | Switch between Search and Ask (in the command bar); change the kind filter (in Files) |
| Esc | Clear the search, then close the command bar |
Exact-word results appear first. When typing pauses, Lumen refines them by meaning on this Mac, and the footer says which kind of match you're seeing.
Supported file types#
This table describes what the search package indexes for each kind of file.
| Source | Search and navigation |
|---|---|
| Plain text, Markdown, CSV, TSV, JSON, logs | Exact text plus semantic passages; number-heavy passages use keywords |
| RTF, DOC, DOCX, ODT, HTML | Extracted document text; HTML scripts/styles are excluded; preview shows the matching indexed passage, with Open file for the full document |
| PDFs, including scans and slides | Page text or rendered page vectors; Apple Vision OCR adds searchable text; opens the matching page and highlights an exact query when present |
| Images | Native ImageIO formats, plus AppKit-renderable vector images; visual vectors and OCR text; downsampled previews |
| Audio | Sound and spoken-topic embeddings from overlapping 30-second windows, starting every 25 seconds; opens a player at the matching window |
| Video | Sampled scene vectors and soundtrack windows; opens a player at the matching scene or audio window |
| Code and notebooks | Separate, optional code index; definition/line or cell locations; notebook outputs are excluded |
Image, audio, and video matches come from samples. They are not a complete understanding of every frame or an exact transcription of every sound. A media match can start near the beginning of an overlapping window.
Indexing limits#
| Item | Limit |
|---|---|
| Image decoding | Bounded by thumbnail dimensions |
| Small images | Skipped when the long side is under 64 pixels |
| OCR | Reads a copy up to 4096 pixels on its long side |
| Document size | 32 MiB |
| PDF length | 5,000 pages |
| Document passages | 5,000 passages; long documents are indexed in durable steps |
| Video sampling | Every three seconds by default; the interval grows for long videos to keep at most 1,200 sampled frames |
| Video near-duplicates | Dropped only after color is also checked |
| Audio silence | Skipped when below the energy threshold |
| Indexing batch | A 15-minute deadline per worker batch; completed transactions stay saved |
| Older fallback extractor | Text 2 MiB; PDF 50 MiB or 300 pages; still images 25 MiB or 40 megapixels |
Skipped and failed files#
Lumen can skip or fail to index files that are unreadable, unsupported, or over a limit. Locked PDFs appear in their own list instead of as indexing errors. To retry failed files, choose Refresh index.
Note: The first macOS OCR and Metal setup can be slow. In one cold synthetic run, OCR took about 66 seconds; running the same executable again took under a second. The current file stays visible, and you can pause or cancel indexing.
Index password-protected PDFs#
You need the search package to unlock and index password-protected PDFs.
- Choose Files → ⋯ → Password-protected files… to see the locked files Lumen has found.
- Select a PDF and enter its password.
- Choose Unlock & index. You can follow progress and cancel. Other files continue indexing afterward.
If the password is wrong, the existing index stays as it was.
Important: Lumen uses the password only for that local request and doesn't save it. The original PDF stays encrypted and byte-for-byte unchanged. The extracted text, OCR, and vectors are stored in Lumen's local search index, which has no additional application encryption layer. The dialog explains this before indexing starts.
Work with unlocked PDFs#
- When you preview the encrypted original in Lumen, it asks for the password again. You can read an indexed passage without unlocking the original.
- Indexed PDFs stay in the Password-protected files list.
- To delete a PDF's derived search contents and return it to password-needed status, choose Remove indexed content. The filename may stay searchable.
- If indexing is interrupted, Lumen keeps the completed pages. Enter the password again to continue.
- If the source changes or the index is rebuilt, enter the password again.
- The usual page and size limits still apply.
Which protected files Lumen detects#
Lumen detects locked PDFs and the encryption-container signatures of password-to-open DOCX files. Password entry currently supports PDFs only. DOCX entries explain that unlocking is unavailable. Legacy encrypted DOC, encrypted ODT, archives, and other protected formats have no password workflow.
Files appear in the list as indexing checks them, in pages of 100. Before an unlock or removal, Lumen checks the folder scope, exclusions, and source freshness again.
Search code#
Code search is off by default and uses its own index, separate from your personal files.
- Choose Settings → Search.
- Under Code search, turn on each chosen folder you want to include.
- In Search, start your query with
code:, for examplecode: retry with exponential backofforcode: retryWithBackoff. The Code filter adds the prefix for you.
Searches without the prefix use the personal-file index.
What code indexing skips#
- Files ignored by git, where local git is available
- Vendored, generated, and build directories
- Known credential and key files
- Notebook outputs (Lumen indexes notebook source cells)
These rules are practical exclusions. They can't guarantee that source code contains no secrets, so choose code folders deliberately.
Exclude folders and file types#
- Choose Settings → Search, then open Exclude folders or file types.
- Enter absolute subfolder paths inside your chosen folders, and comma-separated file extensions.
- Choose Apply exclusions. Lumen clears the displayed results right away and refreshes the derived index.
Lumen always skips hidden files, application bundles, symlinks, cloud-only placeholders, and common development caches. It never requests placeholder downloads. Text and media documents inside a project folder stay searchable without turning on code search.
Refresh, pause, and restore access#
Refresh the index#
Automatic refresh watches only your chosen folders and groups file changes together. To turn it off, clear Update the index when files change in Settings → Search. Refresh index stays available when you want to rescan.
- When you move a file, Lumen reuses its unchanged vectors where it can.
- Lumen replaces entries for changed files and removes entries for deleted files.
- Before showing results, Lumen checks that each source is current and that its folder is still accessible. It withholds stale results and results from folders it can no longer access.
Pause indexing#
You can pause, resume, cancel, refresh, or retry indexing. Background indexing also pauses on its own:
- While you search, then resumes afterward
- During meeting capture and meeting processing
- Under memory pressure or in Low Power Mode
- On battery, if you turn on Pause indexing on battery
Keyword file search stays available while you record a meeting.
Restore or remove folder access#
- To reconnect an unavailable folder, choose Settings → Search → Choose again….
- To stop searching a folder, choose Remove. Lumen drops its folder access and derived search entries. Your original files and saved meetings stay intact.
Note: If you build Lumen locally, use the same signing identity for each build to keep folder access.
How search ranks results#
- Exact identifiers and quoted phrases use keyword retrieval.
- Other queries combine per-modality normalized similarity with lexical ranking, and show one result per file.
- Very small collections use an extra, conservative similarity and margin check, because a one-vector collection has no statistical spread.
A similar result doesn't establish a fact. Open the source to check it.
Limitations#
- A small offline synthetic evaluation covers OCR, scanned pages, rich documents, cross-language text retrieval, images, audio and video timestamps, code locations, missing exact evidence, exclusions, source freshness, and removed folder access. It doesn't certify broad language, codec, or hardware support, or relevance. See the evaluation and validation record.
- Audio files in your folders are searched with direct embeddings. File search doesn't create a transcript or identify speakers.
- File search doesn't include written answers, speaker labels, or activity memory.
What's next#
- To search saved transcripts and notes, use Search meetings in Meetings. See Meetings.
- Learn how Lumen handles your data in Privacy.
- Fix indexing problems with Troubleshooting.