# Search

Search runs on a full-text index and covers entry names (files and folders), project names, and people (principal names). It's a metadata search, not a content search - it finds things by name, not by what's inside a file. Two scoped exceptions: the public [Explore](https://swarmfile.com/explore) page also matches project descriptions, topics, paths and README text, and the dashboard omnibox searches RFI and submittal title and body text with a project selected (see below).

## Where to search from

**Dashboard omnibox.** The global search bar in the web dashboard is the fastest way to jump to a file, project, or person by name. With a project selected it also searches that project's RFIs and submittals by title and body - see [RFIs & Submittals](https://swarmfile.com/docs/guides/rfis-and-submittals) - filtered to the ones you actually have read access to, the same as everything else it returns; on org-level views (no project selected) it returns name matches only.

**Desktop App.** The file picker's search box searches the current project's files and folders by name as you type - the quickest way to jump to a file while you're already working in the app. If the hub can't be reached, it falls back to the local cache and labels the results *"from this machine's cache; hub search is unavailable"* so a thin result is explained rather than mysterious.

**`swarmfile-search` CLI.** A standalone binary for searching from a terminal or a script. Give it plain text and it searches across entries, projects, and people - an org-wide query (no `--project`) returns projects and people only; file and folder hits need a project scope. Cap results with `--limit`, or force it to search against the local cache or the hub with `--local-only` / `--remote`. Full flag reference: [swarmfile-search](https://swarmfile.com/docs/cli/swarmfile-search). The standalone binary stays name-only - to search RFIs and submittals from a terminal, use [`swarmfile rfi search`](https://swarmfile.com/docs/cli/swarmfile#rfi) against a mounted project.

## Public projects on Explore

Search on the public [Explore](https://swarmfile.com/explore) page works a little differently: it matches public projects by name, description, topics, org, slug, file paths, and README text, so visitors can find a project by something they remember from inside it. It only ever returns projects that are deliberately published as public.

## How it resolves results

The **`swarmfile-search` CLI** resolves against its local metadata cache first and falls back to the hub, so it keeps working with a flaky or dropped connection to the extent your cache is already populated - a project you've browsed recently stays searchable offline, while one you've never opened won't show up until the hub is reachable again.

**Deferred renames show under their projected name.** If a rename or move hasn't been confirmed by the hub yet - yours, or one your engine received from a teammate - the local-cache path searches it under the new name: an ancestor rename reprojects full paths, and a match on the old confirmed name is shown under the projected one. The dashboard omnibox searches the hub directly, so it sees confirmed names only. See [Working with Files](https://swarmfile.com/docs/guides/working-with-files#applied-immediately-confirmed-in-the-background).

The **dashboard omnibox** always searches the hub directly: it runs in your browser, which has no local cache to fall back on, so a slow result means the request is still in flight rather than the index being broken. The panel says **"Searching the hub…"** while a query runs and labels the results as coming from the hub.
