Search notes by created and modified date, links to and from a note, tag and path, in a search modal with a preview line for each result.
Search notes by created and modified date, links to and from a note, tag and path, in a search modal with a preview line for each result.
The core search of Obsidian 1.14 has file:, path:, content:, tag:, line:, block:, section:, the task operators and [property:value]. It has no operator for the date a note was made or changed, and none for links. Two forum requests ask for these: Search operators for note creation/modification date and Search operators for links, backlinks, forwardlinks. Search Operators adds them in its own modal. It does not change the core search pane.
created: and modified: take a day, a month, a year or a range. created:2026-09-01 finds the notes made on that day. created:2026-09 finds the notes of that month. created:2026-09-01..2026-09-30 includes both end days. Put >, >=, < or <= in front of a date: modified:>2026-10-01 means after that day, and created:<=2025 means in 2025 or before.
The dates are local time. By default they come from the file. If your notes keep the date in a property, such as created: 2026-09-05, set that property name in the settings.
last-7d, last-2w, last-3m and last-1y count back from now. today and yesterday work too. modified:last-7d lists the notes you changed this week, newest first.
linksto:[[Project plan]] lists every note that links to Project plan, which is the same list as its backlinks. You can type the name with or without brackets, with a folder, with an alias or with a heading: linksto:Ana, linksto:[[People/Ana|our editor]]. The plugin finds the note the same way Obsidian resolves a link. If no note has that name, the status line says so.
The command "Find notes that link to the current note" opens the modal with this operator filled in.
linkedfrom:[[Project plan]] lists the notes that Project plan links to. Add more operators to narrow the list: linkedfrom:[[Project plan]] tag:#person. The command "Find notes the current note links to" opens the modal with the current note.
Plain words must all appear in the title, the path or the text of the note. Put a phrase in quotes: "search modal". A title match ranks first. Each result shows the path, the created and modified dates, and one line of the note. When you search for words, the line is the first one with a match, and the words are marked.
tag:project also finds nested tags such as #project/search. path:meetings matches any part of the path, and file:kickoff matches the file name. sort:modified, sort:created, sort:name and sort:relevance change the order.
Put OR between two groups to get notes that match either group. Put - in front of any operator or word to exclude it: path:meetings -tag:finance. Property operators test frontmatter: [status] means the property has a value, [status:done] means it holds done, and [priority:>5] or [due:<2026-11-01] compare numbers or dates. Lists work: [attendees:Ben] finds a link to Ben in the attendees list.
Without Pro, a query with these parts lists nothing and the status line names the Pro part. You never get results that silently ignore part of your query.
Press Ctrl or Cmd + Shift + Enter in the modal. The plugin writes the results into the active note at the cursor, as a list of wiki links with the query above it. If no note is in edit mode, the list goes to the clipboard.
Press Ctrl or Cmd + S in the modal to save the query. The command "Run a saved search" lists them, and the modal opens with the one you pick. The saved searches are plain text in the settings, one per line, so you can edit them there.
When Search Operators is listed in the community directory, open Settings, then Community plugins, then Browse, and search for "Search Operators". Select Install, then Enable.
To install by hand, download main.js, manifest.json and styles.css from the latest release. Put the three files in <vault>/.obsidian/plugins/search-operators/. Restart Obsidian or reload the list of community plugins, then turn on Search Operators.
The line above the results shows the count, or a message when an operator has a problem. A bad date shows the date forms that work. An empty query shows a short list of examples.
Some queries to start with:
modified:last-7d tag:#project: project notes you changed this week.created:2026-10 path:Daily: daily notes of October.linksto:[[Ana]] created:>2026-09-01: notes made after 1 September that link to Ana.linkedfrom:[[Reading list]] sort:name: the notes your reading list links to, by name.The plugin reads each note once and keeps the text in memory until the note changes, so the second search is faster. Links come from the link index of Obsidian. It writes nothing to your notes, except when you use the Pro list command.
| Setting | What it does |
|---|---|
| Created date property | The frontmatter property with the date a note was made, for example created. Empty means the file creation time. A note without the property uses the file time. File creation times change when you copy or sync a vault, so a property is more reliable. |
| Modified date property | The same for the last change, for example updated. |
| Most results | The modal lists at most this many notes, from 20 to 500. The count is always the full count. |
| Saved searches (Pro) | One query per line. |
No. Core search keeps its own syntax. Search Operators is a separate modal with its own commands.
Sync tools and copies can reset the file creation time. Put the date in a property and set its name in the settings.
No. Only Markdown notes are searched.
tag:work match #job/work?No. It matches #work and tags below it, such as #work/admin.
No. The date, link, tag, path, file and sort operators have no limit on notes or results.
Omnisearch ranks notes by how well their words match, and it has filters for the file type and the path. It has no filter for dates or links. Use Omnisearch to find a note by its words, and Search Operators when you know when you wrote it or what it links to.
Dataview can list notes by date and by link, but you write each query in a code block in a note and it shows the list there. Search Operators is a quick search: you type, you see the list, and you open a note. Nothing goes into your notes.
It should. The plugin is not marked desktop only, and the modal uses the same suggestion list as the quick switcher. The tests run on the desktop app only, so please report a problem on a phone in the issue tracker.
A day starts at midnight in the time zone of your device. A range such as created:2026-09-01..2026-09-30 starts at the first midnight and ends at the midnight after the last day. A relative range such as modified:last-7d starts exactly seven days before the moment you type, and has no end, so a note you change while the modal is open still counts.
The core features are free and stay free. Pro features need a GitHub Sponsors sponsorship of theluckystrike: $5 a month or more, or $15 once. When you have paid $15 in total, Pro stays on. Your notes stay readable and editable with or without Pro.
GitHub handles the payment. Sponsor at https://github.com/sponsors/theluckystrike. You need no account for the free features. Pro needs the GitHub account that sponsors.
Until you select "Sign in with GitHub" in the settings, Search Operators makes no network requests. Sign in uses the GitHub device flow. Search Operators sends its public client ID and the scope read:user to https://github.com/login/device/code and shows you a code. While you enter the code at https://github.com/login/device, it asks https://github.com/login/oauth/access_token every few seconds whether sign in is done. The scope read:user is read-only access to your profile, which GitHub needs to show the sponsorship tier. It gives no access to repositories and no write access.
After sign in, Search Operators sends one query to https://api.github.com/graphql: does the signed-in account sponsor theluckystrike, at which tier, and how much it has paid theluckystrike in total. It asks again at most once every 7 days, or when you select Refresh. It sends no note content, file names or other vault data, and it has no telemetry.
Pro keeps working for 14 days without a successful check. The GitHub token stays in the secret storage of Obsidian on this device. It is not written to data.json or other vault files, so it does not sync or reach a git repository. The local storage of this device keeps your GitHub login, the tier and the time of the last check. Sign out deletes the token. You can also revoke the access in your GitHub settings, under Applications.
Report a bug or ask for a feature in the issue tracker of this repository. To support the work, use GitHub Sponsors.
npm ci
npm run build
npm test
MIT