Title First Search

approved

by 강형준

Search note titles first, then hand the same query to the core full-text search. - This plugin has not been manually reviewed by Obsidian staff.

29 downloadsUpdated 23d agoMIT

Title First 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.

How it works

There are two ways to use it. The first needs no setup at all.

1. In the core search panel

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.

2. The title-only modal

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
└──────────────────────────────────────┘
  • Titles are matched by substring, not fuzzy — what you type is what you get.
  • Every space-separated token must appear in the filename, in any order.
  • The last row is always there. Pick it and the core search panel opens with the same query, so nothing is lost when the title pass comes up short.
  • With an empty query you get your 10 most recently modified notes.

Ranking

Matches are ordered by where the query lands in the title:

RankRule
1Sum of match tiers — start of title 0, start of a word 1, mid-word 2
2Shorter title first
3Recently modified first
4Alphabetical, 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.

Hotkey

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.

Installation

From the community plugin list

Not yet listed.

Manual

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. Put them in <your vault>/.obsidian/plugins/title-first-search/.
  3. Reload Obsidian, then enable the plugin under Settings → Community plugins.

Development

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.

License

MIT


한국어

노트 제목(파일명) 을 먼저 훑어 보여주고, 거기서 못 찾으면 같은 검색어를 코어 본문 검색으로 넘기는 Obsidian 플러그인.

명령어는 Search titles first. 기본 단축키는 없으므로 설정 → 단축키 에서 직접 할당한다 (Ctrl + Shift + O 추천).

  • 제목은 fuzzy 가 아니라 부분 문자열 로 매칭한다. 친 대로 나온다.
  • 공백으로 나눈 토큰이 전부 파일명에 있어야 한다. 순서는 상관없다.
  • 목록 맨 아래 "본문에서 검색" 항목은 항상 있다. 고르면 코어 검색 패널이 같은 검색어로 열린다.
  • 검색어가 비면 최근 수정한 노트 10개를 보여준다.

정렬은 매치 위치 우선이다: 제목 맨 앞 → 단어 시작 → 단어 중간 순. 같은 등급이면 짧은 제목 → 최근 수정 → 사전순.

폴더 경로와 별칭(alias)은 매칭 대상이 아니다. 오른쪽에 흐리게 뜨는 경로는 같은 이름의 노트를 구분하기 위한 표시일 뿐이다.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.