Obsidian Markdown logo

Obsidian Markdown

CommunityPopular
anbeime
obsidian-markdown

技术写作员与内容创作者在构建Obsidian知识库时,当需要编写带双向链接、Callout或Frontmatter的复杂笔记,使用此技能可精准生成标准Markdown文档,完美支持wikilinks与嵌入,大幅提升知识管理与排版效率!

Overview

Publisheranbeime
Repositoryskill
Skill nameobsidian-markdown
Stars
6.9K
Forks
645
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by anbeime on GitHub. Read the source before you install it.

Installation

Install the Obsidian Markdown AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/anbeime/skill.git /tmp/skill
mkdir -p .claude/skills
cp -r /tmp/skill/skills/obsidian-skills-integrated/obsidian-markdown .claude/skills/obsidian-markdown
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Obsidian Markdown in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Obsidian Markdown on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Obsidian Markdown is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Obsidian Flavored Markdown Skill

This skill enables skills-compatible agents to create and edit valid Obsidian Flavored Markdown, including all Obsidian-specific syntax extensions.

Overview

Obsidian uses a combination of Markdown flavors:

Basic Formatting

Paragraphs and Line Breaks

markdown
This is a paragraph.

This is another paragraph (blank line between creates separate paragraphs).

For a line break within a paragraph, add two spaces at the end  
or use Shift+Enter.

Headings

markdown
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6

Text Formatting

StyleSyntaxExampleOutput
Bold**text** or __text__**Bold**Bold
Italic*text* or _text_*Italic*Italic
Bold + Italic***text******Both***Both
Strikethrough~~text~~~~Striked~~Striked
Highlight==text====Highlighted====Highlighted==
Inline code`code``code`code

Escaping Formatting

Use backslash to escape special characters:

markdown
\*This won't be italic\*
\#This won't be a heading
1\. This won't be a list item

Common characters to escape: \*, \_, \#, \`, \|, \~

Internal Links (Wikilinks)

Basic Links

markdown
[[Note Name]]
[[Note Name.md]]
[[Note Name|Display Text]]

Link to Headings

markdown
[[Note Name#Heading]]
[[Note Name#Heading|Custom Text]]
[[#Heading in same note]]
[[##Search all headings in vault]]

Link to Blocks

markdown
[[Note Name#^block-id]]
[[Note Name#^block-id|Custom Text]]

Define a block ID by adding ^block-id at the end of a paragraph:

markdown
This is a paragraph that can be linked to. ^my-block-id

For lists and quotes, add the block ID on a separate line:

markdown
> This is a quote
> With multiple lines

^quote-id

Search Links

markdown
[[##heading]]     Search for headings containing "heading"
[[^^block]]       Search for blocks containing "block"

Markdown-Style Links

markdown
[Display Text](Note%20Name.md)
[Display Text](Note%20Name.md#Heading)
[Display Text](https://example.com)
[Note](obsidian://open?vault=VaultName&file=Note.md)

Note: Spaces must be URL-encoded as %20 in Markdown links.

Embeds

Embed Notes

markdown
![[Note Name]]
![[Note Name#Heading]]
![[Note Name#^block-id]]

Embed Images

markdown
![[image.png]]
![[image.png|640x480]]    Width x Height
![[image.png|300]]        Width only (maintains aspect ratio)

External Images

markdown
![Alt text](https://example.com/image.png)
![Alt text|300](https://example.com/image.png)

Embed Audio

markdown
![[audio.mp3]]
![[audio.ogg]]

Embed PDF

markdown
![[document.pdf]]
![[document.pdf#page=3]]
![[document.pdf#height=400]]

Embed Lists

markdown
![[Note#^list-id]]

Where the list has been defined with a block ID:

markdown
- Item 1
- Item 2
- Item 3

^list-id

Embed Search Results

markdown
```query
tag:#project status:done
```

Callouts

Basic Callout

markdown
> [!note]
> This is a note callout.

> [!info] Custom Title
> This callout has a custom title.

> [!tip] Title Only

Foldable Callouts

markdown
> [!faq]- Collapsed by default
> This content is hidden until expanded.

> [!faq]+ Expanded by default
> This content is visible but can be collapsed.

Nested Callouts

markdown
> [!question] Outer callout
> > [!note] Inner callout
> > Nested content

Supported Callout Types

TypeAliasesDescription
note-Blue, pencil icon
abstractsummary, tldrTeal, clipboard icon
info-Blue, info icon
todo-Blue, checkbox icon
tiphint, importantCyan, flame icon
successcheck, doneGreen, checkmark icon
questionhelp, faqYellow, question mark
warningcaution, attentionOrange, warning icon
failurefail, missingRed, X icon
dangererrorRed, zap icon
bug-Red, bug icon
example-Purple, list icon
quoteciteGray, quote icon

Custom Callouts (CSS)

css
.callout[data-callout="custom-type"] {
  --callout-color: 255, 0, 0;
  --callout-icon: lucide-alert-circle;
}

Lists

Unordered Lists

markdown
- Item 1
- Item 2
  - Nested item
  - Another nested
- Item 3

* Also works with asterisks
+ Or plus signs

Ordered Lists

markdown
1. First item
2. Second item
   1. Nested numbered
   2. Another nested
3. Third item

1) Alternative syntax
2) With parentheses

Task Lists

markdown
- [ ] Incomplete task
- [x] Completed task
- [ ] Task with sub-tasks
  - [ ] Subtask 1
  - [x] Subtask 2

Quotes

markdown
> This is a blockquote.
> It can span multiple lines.
>
> And include multiple paragraphs.
>
> > Nested quotes work too.

Code

Inline Code

markdown
Use `backticks` for inline code.
Use double backticks for ``code with a ` backtick inside``.

Code Blocks

markdown
```
Plain code block
```

```javascript
// Syntax highlighted code block
function hello() {
  console.log("Hello, world!");
}
```

```python
# Python example
def greet(name):
    print(f"Hello, {name}!")
```

Nesting Code Blocks

Use more backticks or tildes for the outer block:

markdown
````markdown
Here's how to create a code block:
```js
console.log("Hello")
```
````

Tables

markdown
| Header 1 | Header 2 | Header 3 |
|----------|----------|----------|
| Cell 1   | Cell 2   | Cell 3   |
| Cell 4   | Cell 5   | Cell 6   |

Alignment

markdown
| Left     | Center   | Right    |
|:---------|:--------:|---------:|
| Left     | Center   | Right    |

Using Pipes in Tables

Escape pipes with backslash:

markdown
| Column 1 | Column 2 |
|----------|----------|
| [[Link\|Display]] | ![[Image\|100]] |

Math (LaTeX)

Inline Math

markdown
This is inline math: $e^{i\pi} + 1 = 0$

Block Math

markdown
$$
\begin{vmatrix}
a & b \\
c & d
\end{vmatrix} = ad - bc
$$

Common Math Syntax

markdown
$x^2$              Superscript
$x_i$              Subscript
$\frac{a}{b}$      Fraction
$\sqrt{x}$         Square root
$\sum_{i=1}^{n}$   Summation
$\int_a^b$         Integral
$\alpha, \beta$    Greek letters

Diagrams (Mermaid)

markdown
```mermaid
graph TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Do this]
    B -->|No| D[Do that]
    C --> E[End]
    D --> E
```

Sequence Diagrams

markdown
```mermaid
sequenceDiagram
    Alice->>Bob: Hello Bob
    Bob-->>Alice: Hi Alice
```

Linking in Diagrams

markdown
```mermaid
graph TD
    A[Biology]
    B[Chemistry]
    A --> B
    class A,B internal-link;
```

Footnotes

markdown
This sentence has a footnote[^1].

[^1]: This is the footnote content.

You can also use named footnotes[^note].

[^note]: Named footnotes still appear as numbers.

Inline footnotes are also supported.^[This is an inline footnote.]

Comments

markdown
This is visible %%but this is hidden%% text.

%%
This entire block is hidden.
It won't appear in reading view.
%%

Horizontal Rules

markdown
---
***
___
- - -
* * *

Properties (Frontmatter)

Properties use YAML frontmatter at the start of a note:

yaml
---
title: My Note Title
date: 2024-01-15
tags:
  - project
  - important
aliases:
  - My Note
  - Alternative Name
cssclasses:
  - custom-class
status: in-progress
rating: 4.5
completed: false
due: 2024-02-01T14:30:00
---

Property Types

TypeExample
Texttitle: My Title
Numberrating: 4.5
Checkboxcompleted: true
Datedate: 2024-01-15
Date & Timedue: 2024-01-15T14:30:00
Listtags: [one, two] or YAML list
Linksrelated: "[[Other Note]]"

Default Properties

  • tags - Note tags
  • aliases - Alternative names for the note
  • cssclasses - CSS classes applied to the note

Tags

markdown
#tag
#nested/tag
#tag-with-dashes
#tag_with_underscores

In frontmatter:
---
tags:
  - tag1
  - nested/tag2
---

Tags can contain:

  • Letters (any language)
  • Numbers (not as first character)
  • Underscores _
  • Hyphens -
  • Forward slashes / (for nesting)

HTML Content

Obsidian supports HTML within Markdown:

markdown
<div class="custom-container">
  <span style="color: red;">Colored text</span>
</div>

<details>
  <summary>Click to expand</summary>
  Hidden content here.
</details>

<kbd>Ctrl</kbd> + <kbd>C</kbd>

Complete Example

markdown
---
title: Project Alpha
date: 2024-01-15
tags:
  - project
  - active
status: in-progress
priority: high
---

# Project Alpha

## Overview

This project aims to [[improve workflow]] using modern techniques.

> [!important] Key Deadline
> The first milestone is due on ==January 30th==.

## Tasks

- [x] Initial planning
- [x] Resource allocation
- [ ] Development phase
  - [ ] Backend implementation
  - [ ] Frontend design
- [ ] Testing
- [ ] Deployment

## Technical Notes

The main algorithm uses the formula $O(n \log n)$ for sorting.

```python
def process_data(items):
    return sorted(items, key=lambda x: x.priority)
```

## Architecture

```mermaid
graph LR
    A[Input] --> B[Process]
    B --> C[Output]
    B --> D[Cache]
```

## Related Documents

- ![[Meeting Notes 2024-01-10#Decisions]]
- [[Budget Allocation|Budget]]
- [[Team Members]]

## References

For more details, see the official documentation[^1].

[^1]: https://example.com/docs

%%
Internal notes:
- Review with team on Friday
- Consider alternative approaches
%%

References

Frequently asked questions

What does the Obsidian Markdown AI skill do?

技术写作员与内容创作者在构建Obsidian知识库时,当需要编写带双向链接、Callout或Frontmatter的复杂笔记,使用此技能可精准生成标准Markdown文档,完美支持wikilinks与嵌入,大幅提升知识管理与排版效率!

Why use Obsidian Markdown on TypingMind?

Because you install it once and use it with any model. Obsidian Markdown is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Obsidian Markdown in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/anbeime/skill/tree/main/skills/obsidian-skills-integrated/obsidian-markdown. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Obsidian Markdown?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Obsidian Markdown?

As many as you like. As long as a model supports skills, you can use Obsidian Markdown with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Obsidian Markdown AI skill free?

It is published on GitHub by anbeime. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇