starhunter19 downloadsSearch your vault with the qmd CLI using BM25, vector, and hybrid semantic retrieval.
An Obsidian plugin that wraps the qmd CLI so you can run BM25 / vector / hybrid (deep) semantic search directly inside your vault.
BM25 — fast exact keyword matching (optional live search as you type)Vector — embedding-based semantic similarityDeep — query expansion + reranking (3–10s, most accurate)--force optionThe qmd CLI must be installed.
# After installing qmd, register your vault as a collection
qmd collection add vault ~/Documents/YourVault
qmd update # index
qmd embed # vector embeddings (for vector / deep search)
See the qmd docs for full installation details. Desktop only on macOS / Linux (isDesktopOnly).
starhunt/star-qmdmain.js, manifest.json, styles.css from Releases<vault>/.obsidian/plugins/star-qmd/ and copy the three files there| Command | Description |
|---|---|
QMD: Search |
Open the default search modal |
QMD: Vector search |
Open the modal in vector mode |
QMD: Deep search |
Open the modal in hybrid mode |
QMD: Open sidebar |
Search view in the right sidebar |
QMD: Find similar to current note |
Use the active note's body as a vector query |
QMD: Search selected text |
Search using the text selected in the editor |
QMD: Search in {scope} |
Auto-registered per defined scope |
QMD: Open install guide |
qmd CLI install guidance modal |
QMD: Update index |
Re-index changed documents |
QMD: Refresh embeddings |
Generate/refresh vector embeddings |
When the search input is focused:
| Key | Action |
|---|---|
Enter |
Search if the query is new, otherwise open the active result |
Shift+Enter |
Newline while typing; open in a new tab while navigating results |
↑ ↓ |
Move between results |
Tab |
Cycle search mode (modal only) |
Esc |
Close (modal only) |
Useful when you want to search the same keyword within a specific folder only. Built-in scopes:
| Name | Folder prefix |
|---|---|
| LLM Wiki | 500-Wiki/ |
| Insights | Insights/ |
| Projects | 100-199 |
Add/edit freely in the settings tab. Folder names with spaces, underscores, @, +, etc. are matched via normalized comparison.
| Item | Description |
|---|---|
| Language | Plugin UI language — Auto Detect / 한국어 / English |
| QMD binary path | Location of the qmd executable (default: looked up from PATH) |
| Default search mode | BM25 / vector / deep |
| Result limit | 5–50 |
| Default collection | qmd collection name filter (empty = all) |
| Show scores | Show relevance score chips on results (per-mode colors) |
| Chunk preview | Show matched text snippets |
| Highlight query terms | Emphasize query terms in previews |
| BM25 live search | Search as you type (debounced) |
| Live search debounce (ms) | 100–1000 |
| Show modification time | File mtime on the right of result cards |
| Hover page preview | Hover a result card → Obsidian page preview |
| Index stale threshold | Show a stale badge when the last update is older than this (hours) |
| Confirm before embed refresh | Confirmation modal before refreshing embeddings |
| Search scopes | Add/remove your frequently used folder scopes |
| Default scope | Scope applied automatically when searching |
About the language setting:
Auto Detectfollows the Obsidian/browser locale. Picking한국어/Englishexplicitly changes the UI immediately, but command palette and ribbon icon names update only after restarting Obsidian.
/bin/sh -c '"$0" "$@" | cat' (argument injection is blocked by the shell's "$@" pattern).@, +, _, spaces, etc. in filenames to hyphens/lowercase, so when matching a result URI to the actual vault file we compare after normalizing to \p{L}\p{N} only.key: value or - "[[link]]" are removed as noise so only the body is shown. If the match is only in frontmatter, the snippet is left empty.# Install dependencies
npm install
# Watch mode (development)
npm run dev
# Production build (type-check + bundle)
npm run build
# Unit tests (vitest, 50 search-utils cases)
npm test
The build artifact (main.js) is in .gitignore. Ship it only with releases.
Deploy straight to a vault:
cp main.js styles.css manifest.json \
~/Documents/YourVault/.obsidian/plugins/star-qmd/
MIT