강형준31 downloadsSearch note titles first, then hand the same query to the core full-text search.
An Obsidian plugin that searches note titles first, then hands the same query to the core full-text search when you need it.
Obsidian's search can sort by date, modification time, or name — but there is no "scan every title first, then look inside the notes" option. When you know the answer is in a title, it gets buried under body matches.
This plugin gives you that missing first pass.
There are two ways to use it. The first needs no setup at all.
Open Obsidian's normal search. A Title matches section appears above the usual results, listing the notes whose filename matched, ordered by where the match landed. The rest of the results are untouched below it.
🔍 meeting
──────────────────────────
TITLE MATCHES 3
Meeting notes 2026-08-19
Weekly meeting recap
Meeting room booking
──────────────────────────
Project A
…at today's meeting we…
Budget memo
…the meeting concluded…
Nothing to configure and no hotkey to learn — enable the plugin and it is there. If the section is empty, nothing matched a filename.
This part reaches into Obsidian's internals, which are not a public API. If a future Obsidian update changes them, the section quietly stops appearing and everything else keeps working.
Run the command Search titles first. A modal opens.
┌──────────────────────────────────────┐
│ meeting │
├──────────────────────────────────────┤
│ > Meeting notes 2026-08-19 Work │ ← starts with the query
│ Meeting checklist │
│ Weekly meeting recap Work │ ← starts a word
│ Allhandsmeeting agenda │ ← mid-word
├──────────────────────────────────────┤
│ 🔍 Search in file contents: meeting│ ← always last
└──────────────────────────────────────┘
Matches are ordered by where the query lands in the title:
| Rank | Rule |
|---|---|
| 1 | Sum of match tiers — start of title 0, start of a word 1, mid-word 2 |
| 2 | Shorter title first |
| 3 | Recently modified first |
| 4 | Alphabetical, then by path |
Only the filename is matched. Folder paths and aliases are not — the path shown on the right is there to tell same-named notes apart.
No hotkey is assigned by default, on purpose: Obsidian's plugin guidelines advise against default hotkeys because they collide with other plugins.
Assign your own in Settings → Hotkeys, search for Search titles first.
Ctrl/Cmd + Shift + O sits next to the built-in quick switcher and is a good fit.
Not yet listed.
main.js, manifest.json, and styles.css from the
latest release.<your vault>/.obsidian/plugins/title-first-search/.npm install
npm test # unit tests for the ranking logic
npm run build # type-check and bundle to main.js
npm run dev # build, then copy into a vault for testing
npm run dev needs to know which vault to install into. Either set
OBSIDIAN_VAULT, or create vault.local.json in the repo root:
{ "vault": "C:\path\to\MyVault" }
It only ever writes to <vault>/.obsidian/plugins/title-first-search/.
src/ranking.ts deliberately does not import obsidian, so the matching and
sorting logic can be tested as plain functions.
MIT
노트 제목(파일명) 을 먼저 훑어 보여주고, 거기서 못 찾으면 같은 검색어를 코어 본문 검색으로 넘기는 Obsidian 플러그인.
명령어는 Search titles first. 기본 단축키는 없으므로
설정 → 단축키 에서 직접 할당한다 (Ctrl + Shift + O 추천).
정렬은 매치 위치 우선이다: 제목 맨 앞 → 단어 시작 → 단어 중간 순. 같은 등급이면 짧은 제목 → 최근 수정 → 사전순.
폴더 경로와 별칭(alias)은 매칭 대상이 아니다. 오른쪽에 흐리게 뜨는 경로는 같은 이름의 노트를 구분하기 위한 표시일 뿐이다.