Auch verfügbar in: DE Deutsch

Command Palette (Ctrl + K)

Inhalt

The search bar in the top right of the header opens a modal with two sections: local results + web search.

Opening

  • Click the search bar
  • Keyboard shortcut Ctrl + K (Windows/Linux) or Cmd + K (Mac)
  • Esc closes
  • ↑/↓ navigates, Enter opens, hover changes the selection

Local results

Local search covers your Mesh data:

Source What is found?
Services Name + URL + description
Boards Board name + slug
Quick Links Label + URL
Widgets Label + kind

Implemented in apps/web/src/hooks/useLocalSearch.ts. Substring search, case-insensitive, no fuzzy matching (may come in v2.0).

When there are no local results OR the user presses Enter: forwarded to the configured engines.

Default engines:

  • Google (hotkey g) — https://www.google.com/search?q={q}
  • DuckDuckGo (hotkey d) — https://duckduckgo.com/?q={q}
  • Brave Search (hotkey b) — https://search.brave.com/search?q={q}

URL template with placeholder {q} (URL-encoded substitution).

Customising engines

Admin → System → Search → add / edit / delete engine.

Fields:

  • name — display name
  • urlTemplate — with {q}
  • icon — URL to a logo (optional)
  • hotkey — one letter (e.g. g) — typing g foo starts Google directly
  • sortOrder — display order

Opening with a URL

http://mesh.example.com/?q=Frigate opens the Mesh UI with a pre-filled search term. Handy for bookmarks or browser search engine setup.

No local result? Default engine

If there is no local match and you press Enter, the defaultEngineId engine is used. Default is Google.

Using the search component externally

The component lives in apps/web/src/components/layout/HeaderSearch.tsx. Self-contained, Radix Dialog, no external dependencies beyond lucide-react. Could theoretically be embedded in isolation — currently only used in the header.