Obsidian

Find, search and add to your Obsidian notes

palupdated 2026-09-29ProductivityIn pal's registry󰌹3 deep links

Open in pal

In pal's registry: the button shows it in pal, which asks before installing; the command does the same from a terminal. This page can't see what your pal has installed.

Obsidian: Notes: every note by title, sectioned by folder, tags and the change date on the row
Notes: every note by title, sectioned by folder, tags and the change date on the row
Obsidian: The pane: the note rendered, callout and table included, its tags, links and backlinks below
The pane: the note rendered, callout and table included, its tags, links and backlinks below
Obsidian: Search Notes: the matching line on each row, the matches bold in the pane
Search Notes: the matching line on each row, the matches bold in the pane
Obsidian: Daily Notes: today, yesterday, this week, Append to today, New note
Daily Notes: today, yesterday, this week, Append to today, New note
Obsidian: Append to today: one line, the clipboard already in it, lands at the end of today's note
Append to today: one line, the clipboard already in it, lands at the end of today's note
Obsidian: A note read in pal: callouts, lists, code and tables drawn with the tokens
A note read in pal: callouts, lists, code and tables drawn with the tokens
1 of 6

What it does

Your Obsidian vault in the panel: find any note by title, search the full text, append to today's daily note and start new notes from a template. Notes open in Obsidian or your editor, or read right in the panel.

  • Every note at the root by title, alias, tag or folder; enter opens it in Obsidian, cmd+enter in your editor
  • Full-text search across the vault as you type, the matching line under each note
  • Today's daily note, created from its template if missing; Append to today adds a line
  • New notes from a template; tags, recent notes, backlinks and outgoing links
  • Read a note in the panel with its headings, callouts, code and tables (cmd+shift+r)
  • cmd+c copies a [[wikilink]]; the list stays in step with the vault on disk

Palettes 7

  • Notesnoteslistrefreshes every 5 min

    Every note of the vault by title, alias, tag or folder, sectioned by folder; Today's note, New note (the title and the folder typed in the bar), Search notes and Random note at the top.

    • ↵Open in Obsidian (or the editor, per the setting)
    • ⌘↵Open in the editor (or Obsidian)
    • ⌘CCopy the wikilink
    • ⌘⇧RRead the note in pal
    • ⌘BWhat links to the note
    • ⌘LWhat the note links to
    • ⌘⇧CCopy the path
    • ⌘⇧AAppend the line typed in the bar
  • Search Notessearchinput

    Full-text over every note as you type: ripgrep when on PATH, a one-second scan otherwise; the matching line on the row, the matches bold in the pane.

    • ↵Open in Obsidian (or the editor, per the setting)
    • ⌘↵Open in the editor (or Obsidian)
    • ⌘CCopy the wikilink
    • ⌘⇧RRead the note in pal
    • ⌘BWhat links to the note
    • ⌘LWhat the note links to
    • ⌘⇧CCopy the path
    • ⌘⇧AAppend the line typed in the bar
  • Daily Notesdailylive

    Today's note (created from the template when missing), yesterday's, this week's; Append to today and New note, their values typed in the bar.

    • ↵Open the note; on Create today's note, create it (asks first); on Append to today and New note, with the line, or the title and folder, typed in the bar's fields
    • ⌘↵Open in the editor (or Obsidian)
    • ⌘CCopy the wikilink
    • ⌘⇧RRead the note in pal
    • ⌘BWhat links to the note
    • ⌘LWhat the note links to
    • ⌘⇧CCopy the path
    • ⌘⇧AAppend the line typed in the bar
  • Tagstagslistcatalogrefreshes every 5 min

    Every tag in the vault with how many notes carry it; Enter lists them.

    • ↵The notes with the tag
    • ⌘CCopy the tag
  • Recent Notesrecentlive

    The twenty notes changed last, newest first.

    • ↵Open in Obsidian (or the editor, per the setting)
    • ⌘↵Open in the editor (or Obsidian)
    • ⌘CCopy the wikilink
    • ⌘⇧RRead the note in pal
    • ⌘BWhat links to the note
    • ⌘LWhat the note links to
    • ⌘⇧CCopy the path
    • ⌘⇧AAppend the line typed in the bar
  • Backlinksbacklinkslistrefreshes every 5 min

    The notes that link to the note you opened last, or to the row cmd+b came from.

    • ↵Open the linking note
    • ⌘↵Open in the editor (or Obsidian)
    • ⌘CCopy the wikilink
    • ⌘⇧RRead the note in pal
    • ⌘BWhat links to the note
    • ⌘LWhat the note links to
    • ⌘⇧CCopy the path
    • ⌘⇧AAppend the line typed in the bar
  • Outgoing Linksoutgoinglistrefreshes every 5 min

    The notes the note you opened last links to, or the row cmd+l came from; a link to nothing yet offers Create the note.

    • ↵Open the linked note; on a link to nothing, create it
    • ⌘↵Open in the editor (or Obsidian)
    • ⌘CCopy the wikilink
    • ⌘⇧RRead the note in pal
    • ⌘BWhat links to the note
    • ⌘LWhat the note links to
    • ⌘⇧CCopy the path
    • ⌘⇧AAppend the line typed in the bar

Actions

  • Open in ObsidianThe note in Obsidian, through obsidian://open; first or second per the Open with setting.↵
  • Open in editorThe editor command with the file's path; the OS opener without one.⌘↵
  • Copy wikilink[[name]], or [[folder/name]] when another note shares the name.⌘C
  • Read in palThe note drawn in the panel.⌘⇧R
  • BacklinksThe notes that link to it.⌘B
  • Outgoing linksThe notes it links to; a link to nothing yet offers Create the note.⌘L
  • Copy pathThe file's absolute path.⌘⇧C
  • Append a lineThe line typed in the bar (the note row's argument) lands at the end of the note, placeholders filled; a form when picked without it.⌘⇧A
  • Create today's noteFrom the daily template; asks first.↵
  • Append to todayThe line typed in the bar lands on its own line at the end of today's note; from Today's note's cmd+enter, a form.↵
  • New noteThe title and the folder typed in the bar; the body from the template or your selection.↵
  • Notes with the tagOn a tag row: the notes carrying it.↵
  • Search in ObsidianOn the Search notes command: Obsidian's own search.⌘↵

Settings

Extension, [extensions.obsidian]

vault
empty path

The vault folder. Empty takes the vault Obsidian has open, or opened last (obsidian.json).

open_with
Obsidian select

What Enter does on a note; cmd+Enter is the other one. One of obsidian, editor.

editor
empty text

The command Open in editor runs with the file's path last (code, subl, zed). Empty opens the file with whatever the OS opens .md files with.

daily_folder
empty text

Where daily notes live, relative to the vault. Empty reads Obsidian's daily-notes plugin (.obsidian/daily-notes.json).

daily_format
empty text

The date format of a daily note's name, moment's tokens as Obsidian takes them. Empty reads the plugin; YYYY-MM-DD when it says nothing.

daily_template
empty text

The note a new daily note starts as, relative to the vault ({{date}}, {{time}}, {{title}} filled). Empty reads the plugin.

template
empty text

The note New note starts as, relative to the vault ({{title}}, {{date}}, {{time}} filled). Empty starts from your selection or the clipboard.

exclude
none list

Folders and files left out of every palette, as globs relative to the vault. Dot folders (.obsidian, .trash) are always out.

Defaults shown. Change them in pal's settings window or in the config file.

The README

Everything Obsidian does, key by key, from the extension's own README.md

Obsidian

Your Obsidian vault in the panel: every note by title at the root, sectioned by folder with its tags and change date; full-text search as you type; today's daily note, made from its template when missing, with a line appended to it from the clipboard or what you type; new notes from a template; tags with counts; what links to a note and what it links to. A note opens in Obsidian or in your editor, and reads inside the panel with its headings, callouts, lists, code and tables drawn in pal's own tokens.

palette id kind what Enter does
Notes obsidian-notes indexed, 5 min opens the note
Search Notes obsidian-search input opens the note
Daily Notes obsidian-daily live opens today's note, or creates it
Tags obsidian-tags indexed, 5 min, catalog lists the notes with the tag
Recent Notes obsidian-recent live opens the note
Backlinks obsidian-backlinks indexed, 5 min opens the linking note
Outgoing Links obsidian-outgoing indexed, 5 min opens the linked note

What it reads

The vault folder from the vault setting, or, when that is empty, the vault Obsidian has open (else opened last) in Obsidian's own obsidian.json (~/Library/Application Support/obsidian/ on macOS, ~/.config/obsidian/ on Linux). Without either, every palette is one hint row naming the setting.

Every .md under the vault, dot folders (.obsidian, .trash, .git) and the exclude globs left out. Each note gives its title (the front matter's title, else the first # heading, else the file name), its description (the front matter's, else the first body line), its tags (inline #tag and #a/b, the front matter's tags), its aliases and its [[wikilinks]], which resolve as Obsidian resolves them: a path, else the unique name, else the shortest path among namesakes, else an alias. The index is kept per file by modification time and size, so a rebuild re-reads only what changed; a watcher on the vault marks it stale on any change (a burst is one), and the next listing rebuilds it. Search runs ripgrep over the vault when rg is on PATH, else a scan in Bun that stops after a second.

The daily-notes plugin's .obsidian/daily-notes.json (folder, format, template) stands in for the daily_folder, daily_format and daily_template settings while those are empty; YYYY-MM-DD when nothing says. The format is moment's, the tokens Obsidian takes (YYYY MM DD dddd MMMM Do WW and [literal]); {{date}}, {{time}}, {{title}} and {{date:FORMAT}} are filled in a template.

What it writes, and when

Three things, each on your action and nowhere else:

  • Today's daily note, from its template, when you pick Today's note or Create today's note (which asks first) and the file is missing; also before an append when it is missing.
  • A line at the end of today's note: Append to today (the line is the row's typed argument: with the cursor on the row the bar shows the field, Tab into it, Enter appends; {selection}, {clipboard}, {date}, {time} filled in) and the append-today link. Today's note's ⌘Enter, and a pick without the value (pal run, a hotkey), ask in a form with the same field, prefilled from the clipboard.
  • A new note: New note (the title and the folder are the row's typed arguments, the folder a choice among the vault's; the body is the template setting with {{title}} and {{date}} filled, else your selection or the clipboard, and the note opens at once), the new link, and Create the note on a link to nothing in Outgoing Links (a # Title line). A title that names a note already there is refused, with the fields as a form to fix it in.

Nothing is edited or deleted. The note opened or read last is remembered in pal's storage for Backlinks and Outgoing links.

What each palette does

Notes lists every note, sectioned by folder (Vault for the top level), the description as the subtitle, up to three tags and the change date on the right; the name, the aliases, the tags and the folder are keywords, so #infra or the box finds a note too. Four commands lead: Today's note (⌘Enter appends instead), New note (title and folder typed in the bar), Search notes (⌘Enter opens Obsidian's own search) and Random note. Pushed from Tags it lists one tag's notes (a nested tag under its parent too).

On every note row: Open in Obsidian (obsidian://open, so Obsidian switches to the vault and the file) and Open in editor; which is Enter and which ⌘Enter is the open_with setting. The editor is the editor command with the file's absolute path last (code, subl, zed; a command off PATH is a toast naming the setting); empty, the OS opens the file with whatever owns .md. Copy wikilink (⌘C) writes [[name]], or [[folder/name]] when another note shares the name. Read in pal (⌘⇧R) draws the note as a view through the same markdown renderer tela's pages use: headings, lists, tasks, callouts as tinted cards, quotes and code on sunken wells, tables as aligned columns, links under their paragraph. Backlinks (⌘B) and Outgoing links (⌘L) push those palettes with the row; Copy path (⌘⇧C) is the absolute path. Marked notes (⌘-click, ⇧↓) open in the editor together (one call with every path), and Copy wikilink and Copy path put one a line; Open in Obsidian stays one note's, since its URI shows one note in the pane. Append a line (⌘⇧A) takes the line as the row's typed argument (Tab into the field in the bar; {clipboard}, {selection}, {date}, {time} filled in) and lands it at the end of the note; a pick without it asks in a form. The pane (⌘I) is the note as markdown with the front matter off, callouts as a bold lead, wikilinks as links into Obsidian (a link to nothing yet says so), then the path, the modified time, the words, the tags, the aliases, the links (an unresolved one grey) and the backlinks with their titles.

Search Notes searches the text of every note as you type, case- insensitive, the words as typed: ripgrep when installed, a scan otherwise (the empty hint says which). Rows are notes sectioned by folder, the first matching line as the subtitle, how many lines matched on the right; the pane lists the matching lines (three per note) with the match bold. A note named or titled like the query comes first, then the ones with more matches, then the newest; sixty at most.

Daily Notes is live: today's note (a Create row when missing, which asks before writing), yesterday's, the rest of the last seven days under This week, then Append to today (the line typed in the bar) and New note (the title and the folder). Tags counts every tag across the vault, most used first; Enter lists the notes, ⌘C copies the tag. Recent Notes is the twenty changed last. Backlinks and Outgoing Links are for the note you opened last, or the row ⌘B / ⌘L came from; a link to a note that does not exist yet offers Create the note.

  • pal://obsidian/open?path=infra/theater (a path with or without .md, or a name as a wikilink says it) opens the note as Enter would.
  • pal://obsidian/new?title=Trip&body=...&folder=personal creates the note and opens it; {{title}} and {{date}} in the body are filled.
  • pal://obsidian/append-today?text=... appends to today's note, created when missing; {selection}, {clipboard}, {date}, {time} are filled.

Settings

[extensions.obsidian]:

key type default what
vault path (none) The vault folder; empty takes Obsidian's open vault.
open_with obsidian / editor obsidian What Enter does; ⌘Enter is the other.
editor text (none) The editor command; empty is the OS opener.
daily_folder text (none) Daily notes folder; empty reads the plugin.
daily_format text (none) The daily note's name format; empty reads the plugin, then YYYY-MM-DD.
daily_template text (none) The daily note's template; empty reads the plugin.
template text (none) The template New note starts from.
exclude list [] Globs relative to the vault to leave out.

For the tests, PAL_OBSIDIAN_CONFIG names an obsidian.json to read and PAL_OBSIDIAN_SEARCH=scan forces the scan.

Not there

Editing a note's body (that is Obsidian's or the editor's), Obsidian's search syntax (tag:, path:; the words are matched as typed), the Periodic Notes community plugin's weekly and monthly notes, canvases, attachments.