A powerful Obsidian plugin that enables fuzzy searching through tags in your vault with an intuitive quickswitcher-like interface.
- Fuzzy Tag Search: Search for tags with a flexible, forgiving search algorithm that matches partial queries
- Hierarchical Tag Support: Works seamlessly with nested tags like
area/travel,project/work/learning - Quickswitcher-Like UI: Familiar modal interface similar to Obsidian's built-in quickswitcher
- Real-Time Suggestions: Suggestions update as you type for instant feedback
- Smart Ranking: Results are ranked by:
- Match quality (consecutive matches score higher)
- Match position (matches at the beginning/word boundaries score higher)
- Tag frequency (frequently used tags rank higher)
- Tag length (shorter tags with equal match quality rank higher)
- Direct Search Integration: Selected tags automatically open Obsidian's built-in search with the appropriate search expression
To install the plugin, you need two files: main.js and manifest.json.
-
Get the files:
- Download
main.jsandmanifest.jsonfrom the latest release (or build them from source)
- Download
-
Create the plugin directory:
- Open your vault folder
- Navigate to
.obsidian/plugins/(create thepluginsfolder if needed) - Create a new folder named
obsidian-tag-fuzzy-finder
-
Add the plugin files:
- Copy
main.jsandmanifest.jsoninto theobsidian-tag-fuzzy-finderfolder - Your final structure should be:
your-vault/ └── .obsidian/ └── plugins/ └── obsidian-tag-fuzzy-finder/ ├── main.js └── manifest.json
- Copy
-
Enable the plugin:
- Restart Obsidian
- Go to Settings → Community plugins → Installed plugins
- Find "Tag Fuzzy Finder" and toggle it on
git clone https://github.com/yourusername/obsidian-tag-fuzzy-finder.git
cd obsidian-tag-fuzzy-finder
npm install
npm run build
# Then follow installation steps aboveFor development with live reload:
npm run dev- Open the command palette (
Cmd+Pon Mac,Ctrl+Pon Windows/Linux) - Search for and select "Open Tag Fuzzy Finder"
- Alternatively, set a custom hotkey in Obsidian settings for quick access
- Type in the search box to filter tags
- As you type, matching tags appear in real-time with the best matches at the top
- Use arrow keys to navigate through suggestions
- Press
Enteror click to select a tag
When you select a tag, the Obsidian search pane opens with a search expression matching that tag. For example:
- Selecting
area/travelopens search with:tag:#area/travel - Selecting
importantopens search with:tag:#important
This will show all notes that have been tagged with the selected tag.
The plugin consists of several key components:
- TagCollector: Scans the vault and extracts tags from YAML frontmatter and inline tags
- TagManager: Manages tag caching and cache invalidation when the vault changes
- FuzzyMatcher: Implements the fuzzy matching algorithm with intelligent scoring
- TagFuzzyFinderModal: Provides the user interface for searching and selecting tags
- Node.js (v16 or higher)
- npm or yarn
npm installTo build and watch for changes:
npm run devTo create a production bundle:
npm run buildRun the comprehensive test suite:
npm testRun tests in watch mode:
npm run test:watchGenerate coverage report:
npm run test:coverage- Tag Collection: Scans entire vault once and caches results
- Cache Invalidation: Automatically updates when files are created, deleted, or modified
- Debouncing: Cache updates are debounced to avoid excessive re-collection
- Fuzzy Matching: Efficiently scores and ranks results in real-time