etaiso19 downloadsQuickly find a tag in your vault, then jump to a note that uses it.
A keyboard-first Quick Switcher for tags. Fuzzy-find any tag in your vault, then jump straight to a note that uses it. Built for navigation, not tag management — if you've ever wished Cmd+O could search tags as well as files, this fills that gap.

Obsidian's built-in Quick Switcher finds files and headings, but there's no first-class way to find a tag. Tag Fuzzy Find fills that gap:
It honors Obsidian's nested-tag semantics: choosing #project surfaces notes tagged #project/work/urgent too.
Backspace on an empty query takes you back to the tag picker, with your previous query preserved.#) as the first character in the built-in Cmd+O switcher reroutes you straight into Tag Fuzzy Find. Works with :, @, !, >, ? if # collides with your file names.#project includes #project/work, #project/work/urgent, etc.Enter opens in current pane, Cmd/Ctrl+Enter opens in a new tab, Shift+Enter opens in a split, Esc closes.Settings → Community plugins → Browse → search Tag Fuzzy Find → Install → Enable.
Add the repo URL etaiso/obsidian-tag-fuzzy-find in BRAT and it will install the latest release.
main.js and manifest.json from the latest release.<your-vault>/.obsidian/plugins/obsidian-tag-fuzzy-find/.main.js and manifest.json into it.Either way works:
Cmd/Ctrl+P). Bind a hotkey in Settings → Hotkeys for fastest access.Cmd/Ctrl+O to open the built-in Quick Switcher, then type the configured trigger character (default #). The switcher reroutes to Tag Fuzzy Find with the remaining text pre-filled.| Key | Action |
|---|---|
Enter |
Open the highlighted note in the current pane |
Cmd/Ctrl+Enter |
Open in a new tab |
Shift+Enter |
Open in a split |
Backspace (when query is empty) |
Return to the tag picker |
Esc |
Close |
| Setting | What it does | Default |
|---|---|---|
| Initial sort | Order of tags before you type. Recent-then-usage / Most-used / Alphabetical / Empty until typing. | Recent-then-usage |
| Quick Switcher trigger | First character to type in the Quick Switcher to open Tag Fuzzy Find. | # |
| Integrate with Quick Switcher | Toggle the Cmd+O interop. |
On |
| Recent tags to remember | Size of the recent-tags list (0 disables it). | 10 |
| Clear recent tags | One-shot button to wipe the recent list. | — |
Built with TypeScript + esbuild + vitest. No runtime dependencies beyond Obsidian itself.
git clone https://github.com/etaiso/obsidian-tag-fuzzy-find.git
cd obsidian-tag-fuzzy-find
npm install
npm run dev # esbuild watch — rewrites main.js on save
~/Documents/TagFuzzyFindTestVault.mkdir -p ~/Documents/TagFuzzyFindTestVault/.obsidian/plugins
ln -s "$(pwd)" ~/Documents/TagFuzzyFindTestVault/.obsidian/plugins/obsidian-tag-fuzzy-find
main.js rewrite.npx tsx scripts/seed-vault.ts ~/Documents/TagFuzzyFindTestVault
For richer, demo-friendly content (realistic note titles and tag hierarchies — useful when recording screenshots or a GIF), use the demo seed instead in a dedicated vault:npx tsx scripts/seed-demo-vault.ts ~/Documents/TagFuzzyFindDemoVault
npm test # vitest — pure-logic suites for settings, recent tags, tag index
npm run typecheck # tsc --noEmit
Obsidian has no headless runtime, so modal behavior and the Quick Switcher hook are verified manually against the matrix in docs/test-plan.md.
version in manifest.json and package.json (keep them in sync).CHANGELOG.md.0.2.0, not v0.2.0) and push the tag — the GitHub Actions release workflow will produce a draft release with main.js and manifest.json attached.MIT © Etai Solomon