# Search — by name, inside files, or by meaning

> Find files by name (instant with Everything), grep inside them honouring .gitignore, or search by meaning. Results are rows you can copy, move, rename, delete.

- Canonical: https://cwdio.com/features/search/
- Updated: 2026-08-15
- Product: Cwdio File Manager (cwdio) — https://cwdio.com

Search in cwdio has three modes and one rule: whatever it finds is a **row**, not a report. Press
<kbd>Ctrl+Shift+F</kbd>, type, and the hits can be copied, moved, renamed, edited or deleted right there —
the same keys, the same undo, the same Recycle Bin as the file panels.

## What it does

- **Names.** A case-insensitive substring match across the subtree, with `.*` **regex**, `Aa` **match case**
  and `W` **whole word** toggles. Optional filters narrow by **modified date** (After/Before, with Today / Last
  7 days / Last 30 days presets) and **size** (Min/Max, typed as `10 MB`). An empty name with a filter is a
  valid search — "every file over 100 MB" or "everything changed this week" needs no name typed.
- **Contents.** A grep: literal text or a regular expression, case-insensitive by default, whole-word
  optional. It honours `.gitignore` — nested ignore files, the ancestors up to the repo root, `.git/info/exclude`
  and your global excludes, with git's own precedence — never descends into `.git`, skips binary files, and
  applies the same date/size filters before it opens a file. Each hit shows its first matching line; a click
  expands every matching line (up to 30 per file), ripgrep-style, with the match highlighted.
- **Semantic.** With an embedding model configured, a third mode indexes a folder's files by name and text
  snippet and answers a plain-language question with ranked results. The index lives on your machine, is
  refreshed incrementally, and can be cancelled mid-build.
- **Instant when Everything is running.** On Windows with the free Everything search engine (voidtools)
  installed and running, a plain name search is answered from its real-time NTFS index — your query is passed to it
  verbatim, so Everything's own syntax applies. A regex, case-sensitive, whole-word or filtered query falls
  back to cwdio's own walk, because those are cwdio's semantics, not Everything's.
- **Saved searches.** One button saves the whole state — query, mode, the three toggles and the filters —
  as a chip that re-runs it with everything restored.

## How to use it

1. Focus a panel on the folder to search under and press <kbd>Ctrl+Shift+F</kbd>.
2. Pick **Names** or **Contents** (or **Semantic**), type, and use the toggles and filters as needed.
3. Move through the results with <kbd>↑</kbd>/<kbd>↓</kbd>; <kbd>Enter</kbd> reveals the file in the panel.
   <kbd>F5</kbd> copies and <kbd>F6</kbd> moves the hit — or a <kbd>Ctrl</kbd>/<kbd>Shift</kbd>-click
   multi-selection — to the other panel, <kbd>F8</kbd> or <kbd>Del</kbd> deletes it through the usual
   confirmation, <kbd>F2</kbd> renames it in place, and <kbd>F4</kbd> opens it in the editor — a content hit
   opens at its first matching line.

Two neighbours do related jobs. <kbd>Ctrl+F</kbd> is the **quick filter**: it narrows the current folder as
you type (regex and match-case toggles; <kbd>Esc</kbd> clears). <kbd>Ctrl+P</kbd> is **Go to file**: a
fuzzy finder over the active panel's whole subtree, the VS Code habit — type a few letters of a path,
<kbd>Enter</kbd> jumps to the file.

## Where it looks

Search reads through the same providers as everything else, so it works **inside an opened archive** and on
an **SFTP or FTP folder** exactly as on a local drive. A WSL distribution's files are enumerated by one
in-distro `find`, which is far faster than walking the share, and skips the Everything layer (Everything
indexes NTFS, not WSL). The fallback walk is breadth-first with bounded concurrency, so a deep or network
tree is not latency-bound, and it is cancellable at any moment.

## What it deliberately does not do

- It does not build a background index of your drives. The only index cwdio keeps is the optional semantic
  one, per folder, on request. Name search relies on Everything's index if you have it and a bounded walk if
  you do not.
- It never opens a file during a name search, and a content search never leaves the budgets above — a runaway
  grep across a whole disk cannot happen by accident.
- Search results are not a virtual folder you can leave open forever; they are an overlay you act from and
  dismiss.

## Related

- [Quick Look and preview](/features/quick-look-preview/) — look at a hit without opening it.
- [The AI assistant](/features/ai-assistant/) — the same search and grep tools, driven by a question.
- [Keyboard shortcuts](/docs/keyboard-shortcuts/) — every chord the results respond to.

## Frequently asked questions

**Does search read every file on my drive?** No. A name search reads only folder listings, and if the free Everything search engine (voidtools) is running, cwdio asks its index and gets an answer in milliseconds without walking anything. Only a content search opens files, and it skips what your .gitignore excludes, skips binaries, and works within explicit budgets — 500 result files, 20,000 folders, 256 MiB read in total, 2 MiB per file.

**What is the difference between Ctrl+F and Ctrl+Shift+F?** Ctrl+F is a quick filter: it narrows the folder you are looking at as you type, with regex and match-case toggles, and Escape clears it. Ctrl+Shift+F is the search overlay: it walks the whole subtree by name or by content, with date and size filters, and returns rows you can act on.

**Can I search inside a ZIP or on a server?** Yes. Search reads through the same providers the panels use, so a content search inside an opened archive or on an SFTP/FTP folder works the same way as a local one. The Everything shortcut applies to local NTFS drives only; everything else is walked directly.

**What does semantic search need?** An embedding model configured in the AI panel — an OpenAI-compatible endpoint, or a fully local one such as Ollama or LM Studio with nomic-embed-text. cwdio then builds a per-folder index of file names and text snippets on your machine, refreshes only what changed, and answers a natural-language query with ranked rows. Without a model the mode is simply absent.
