obsidian-markdown — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited obsidian-markdown (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill enables Claude Code to create and edit valid Obsidian Flavored Markdown, including all Obsidian-specific syntax extensions.
Obsidian uses a combination of Markdown flavors:
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.# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6| Style | Syntax | Example | Output |
|---|---|---|---|
| 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 |
Use backslash to escape special characters:
\*This won't be italic\*
\#This won't be a heading
1\. This won't be a list itemCommon characters to escape: \*, \_, \#, ` \ `, \|, \~`
[[Note Name]]
[[Note Name.md]]
[[Note Name|Display Text]][[Note Name#Heading]]
[[Note Name#Heading|Custom Text]]
[[#Heading in same note]]
[[##Search all headings in vault]][[Note Name#^block-id]]
[[Note Name#^block-id|Custom Text]]Define a block ID by adding ^block-id at the end of a paragraph:
This is a paragraph that can be linked to. ^my-block-idFor lists and quotes, add the block ID on a separate line:
> This is a quote
> With multiple lines
^quote-id[[##heading]] Search for headings containing "heading"
[[^^block]] Search for blocks containing "block"[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.
![[Note Name]]
![[Note Name#Heading]]
![[Note Name#^block-id]]![[image.png]]
![[image.png|640x480]] Width x Height
![[image.png|300]] Width only (maintains aspect ratio)
![[audio.mp3]]
![[audio.ogg]]![[document.pdf]]
![[document.pdf#page=3]]
![[document.pdf#height=400]]![[Note#^list-id]]Where the list has been defined with a block ID:
- Item 1
- Item 2
- Item 3
^list-idtag:#project status:done
> [!note]
> This is a note callout.
> [!info] Custom Title
> This callout has a custom title.
> [!tip] Title Only> [!faq]- Collapsed by default
> This content is hidden until expanded.
> [!faq]+ Expanded by default
> This content is visible but can be collapsed.> [!question] Outer callout
> > [!note] Inner callout
> > Nested content| Type | Aliases | Description |
|---|---|---|
note | - | Blue, pencil icon |
abstract | summary, tldr | Teal, clipboard icon |
info | - | Blue, info icon |
todo | - | Blue, checkbox icon |
tip | hint, important | Cyan, flame icon |
success | check, done | Green, checkmark icon |
question | help, faq | Yellow, question mark |
warning | caution, attention | Orange, warning icon |
failure | fail, missing | Red, X icon |
danger | error | Red, zap icon |
bug | - | Red, bug icon |
example | - | Purple, list icon |
quote | cite | Gray, quote icon |
.callout[data-callout="custom-type"] {
--callout-color: 255, 0, 0;
--callout-icon: lucide-alert-circle;
}- Item 1
- Item 2
- Nested item
- Another nested
- Item 3
* Also works with asterisks
+ Or plus signs1. First item
2. Second item
1. Nested numbered
2. Another nested
3. Third item
1) Alternative syntax
2) With parentheses- [ ] Incomplete task
- [x] Completed task
- [ ] Task with sub-tasks
- [ ] Subtask 1
- [x] Subtask 2> This is a blockquote.
> It can span multiple lines.
>
> And include multiple paragraphs.
>
> > Nested quotes work too.Use `backticks` for inline code.
Use double backticks for ``code with a ` backtick inside``.Plain code block
// Syntax highlighted code block function hello() { console.log("Hello, world!"); }
def greet(name): print(f"Hello, {name}!")
Use more backticks or tildes for the outer block:
Here's how to create a code block:
console.log("Hello")| Header 1 | Header 2 | Header 3 |
|----------|----------|----------|
| Cell 1 | Cell 2 | Cell 3 |
| Cell 4 | Cell 5 | Cell 6 || Left | Center | Right |
|:---------|:--------:|---------:|
| Left | Center | Right |Escape pipes with backslash:
| Column 1 | Column 2 |
|----------|----------|
| [[Link\|Display]] | ![[Image\|100]] |This is inline math: $e^{i\pi} + 1 = 0$$$
\begin{vmatrix}
a & b \\
c & d
\end{vmatrix} = ad - bc
$$$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 lettersgraph TD A[Start] --> B{Decision} B -->|Yes| C[Do this] B -->|No| D[Do that] C --> E[End] D --> E
sequenceDiagram Alice->>Bob: Hello Bob Bob-->>Alice: Hi Alice
graph TD A[Biology] B[Chemistry] A --> B class A,B internal-link;
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.]This is visible %%but this is hidden%% text.
%%
This entire block is hidden.
It won't appear in reading view.
%%---
***
___
- - -
* * *Properties use YAML frontmatter at the start of a note:
---
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
---| Type | Example |
|---|---|
| Text | title: My Title |
| Number | rating: 4.5 |
| Checkbox | completed: true |
| Date | date: 2024-01-15 |
| Date & Time | due: 2024-01-15T14:30:00 |
| List | tags: [one, two] or YAML list |
| Links | related: "[[Other Note]]" |
tags - Note tagsaliases - Alternative names for the notecssclasses - CSS classes applied to the note#tag
#nested/tag
#tag-with-dashes
#tag_with_underscores
In frontmatter:
---
tags:
- tag1
- nested/tag2
---Tags can contain:
_-/ (for nesting)Obsidian supports HTML within 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>---
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.
def process_data(items): return sorted(items, key=lambda x: x.priority)
## Architecture
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
%%~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.