[!important] Edit note bodies with Read/Edit/Grep — obsidian-cli complements it, it does not replace it As of Obsidian 1.13.7 the CLI has no edit command — only append / prepend / overwrite — so note bodies stay with Read/Edit/Grep.
- Body edits and bulk frontmatter rewrites → Read/Edit/Grep, or a one-off Python script in the scratchpad (not committed).
- Reading parsed frontmatter is easier via the CLI: obsidian properties path="note.md" format=json (arrays stay arrays).
- Writing frontmatter: property:set stores the value verbatim (value="[a, b]" → the literal string), so pass type=list — or, for computed values, obsidian eval code="app.fileManager.processFrontMatter(app.vault.getAbstractFileByPath('p.md'), f => { f.tags=['a','b'] }).then(() => 'done')".
- Invoke via Obsidian.com, never Obsidian.exe on Windows — Git Bash resolves a bare obsidian to the GUI binary. Full surface: the obsidian-cli skill.
[!warning] Inside a table cell, the display-text pipe MUST be escaped as \| Markdown reads the bare | as a column separator: the link is truncated mid-way (renders as garbage like ([[#3.2 Routing rules) and the row gains a spurious column.
- Applies to every wikilink on a table row, including tables nested inside callouts (> | rows).
- Outside tables — body paragraphs, bullets, plain callout lines — leave | unescaped.
- This recurs whenever a convention asks for in-page jumps ([[#full heading|see X.X]]) inside a document whose change list is itself a table — the two rules collide every time.
- Self-check after writing: Grep '\[\[' <file> and confirm no hit sits on a line starting with | or > |.
Define a block ID by appending ^block-id to any paragraph:
For lists and quotes, place the block ID on a separate line after the block:
Prefix any wikilink with ! to embed its content inline:
See EMBEDS.md for audio, video, search embeds, and external images.
Common types: note, tip, warning, info, example, quote, bug, danger, success, failure, question, abstract, todo.
See CALLOUTS.md for the full list with aliases, nesting, and custom CSS callouts.
Default properties: tags (searchable labels), aliases (alternative note names for link suggestions), cssclasses (CSS classes for styling).
See PROPERTIES.md for all property types, tag syntax rules, and advanced usage.
Tags can contain letters, numbers (not first character), underscores, hyphens, and forward slashes. Tags can also be defined in frontmatter under the tags property.
To link Mermaid nodes to Obsidian notes, add class NodeName internal-link;.
Derived from kepano/obsidian-skills (MIT, Copyright (c) 2026 Steph Ango). Modified in this repo; the upstream licence is included as LICENSE.