grove

Search and palettes

Three ways to find things: a file palette, full-text search in the sidebar, and a command palette. Find a file, find a string, run a command.

File palette — Cmd+P

VS Code-style fuzzy quick-open over the current project.

  • Matching runs off the main thread, so results never lag the cursor even on large repos.
  • Ranking blends the fuzzy score with filename and recency boosts — files and folders you touch often float up. An empty query just shows your recent files.
  • Path-style queries work: auth/serv matches the directory against auth and the filename against serv.
  • Smart-case: lowercase queries match case-insensitively; add a capital to make it strict.
  • When a workspace is active, its changed files are indexed too, so an agent's brand-new file is findable immediately.
  • Inside the Markdown editor, typing @ opens an inline version of the same index to insert a file link.

Full-text search lives in the sidebar, powered by ripgrep:

  • Project text search — search file contents across the current project, .gitignore-aware, with per-file result groups and context snippets. Click a hit to jump there.
  • Notes search — the same search scoped to your vault's notes.
  • Filter — the same box filters the workspace tree by name, recursively.
  • Tag search — type # to filter by tags.
  • Replace all — text searches can rewrite every match across files, with a confirm and a per-file count before anything changes.

Results stream in as they're found; even a thousand-match query stays responsive.

Command palette — Cmd+K

Fuzzy match over Grove's actions, grouped: Actions (new workspace, open last terminal), Panels (toggle the workspace rail, file tree, comments), Editors (split pane, toggle chat, settings, shortcuts, project search), and File (copy the current file's path). It also searches your note tags — type # to jump straight to tag results.

New-tab picker — Ctrl+N

Not an overlay: an empty editor tab renders as a picker, with tiles for a new note, a browser tab, a terminal, a chat, or opening a file.

Cmd+P vs Cmd+K

  • Cmd+P is purpose-built for filenames and is fastest for "open this file."
  • Cmd+K is for actions: panels, panes, settings. Use it when "open this file" isn't what you want.

Indexing

  • The file index lives in memory, warms on first use, and heals itself within a few minutes if a filesystem event is missed.
  • There's no persistent text-search index: ripgrep runs live per query. It stays snappy up to very large repos.