Search

Search runs over the chunks Pack builds in the background, and it matches both ways at once: exact words (a function name, a phrase you remember) and meaning (concepts described differently than you’re asking). The best of both is what ranks first.

The command palette

Cmd/Ctrl + K anywhere (or the ⌘K button in the header). Type a query and get a live preview — ranked results with a snippet and the section they came from. Arrow to a result and Enter opens that document.

Mix #tag tokens into the query to narrow it: #project rust async searches “rust async” within documents tagged project (folder-inherited tags count). Typing # suggests your tags; picking one completes the token so you can keep composing.

Searches persist as filters

Enter on the search itself (the first row) applies it to the files view: the tree shows only matching documents until you clear it. The active filter rides above the tree as chips — query and tags — with × to clear, and it follows you as you navigate. Agents get the same combination via search parameters (any-of or all-of tag matching).

What gets indexed

Every document is chunked and embedded after each edit settles. Newly written documents become searchable within about thirty seconds.