Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

MyST Reader

YOAV PALTIYOAV PALTI2 downloads

Render MyST Markdown admonitions, math, figures, roles, and nested directives directly in your notes while preserving source files.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates6

Render MyST Markdown directly in your Obsidian notes while keeping your Jupyter Book and Sphinx source unchanged. Designed for technical notes, equations, and multilingual course material, including Hebrew.

Install before community approval

  1. Download main.js, manifest.json, and styles.css from the latest GitHub release, or extract the release ZIP.
  2. Create <your vault>/.obsidian/plugins/myst-reader/ and put the three files directly inside it.
  3. Restart Obsidian. Under Settings → Community plugins, enable MyST Reader. Community plugins must be allowed in your vault.
  4. Open a Markdown note as usual. Supported MyST blocks render automatically in Reading view and Live Preview. No extra pane, ribbon button, or command is needed.

The folder must be called myst-reader. The plugin supports desktop and mobile APIs; a physical mobile device has not yet been tested.

Open a note as usual

Feature Reading view Live Preview
Backtick-fenced supported directives Yes Yes
Colon-fenced supported directives No Yes
Nested supported directives Inside a processed backtick directive Yes
Standard dollar-delimited math Obsidian native Obsidian native
Supported inline roles Inside processed directives Inside processed directives
MyST label anchors and local reference links Inside processed directives Inside processed directives
Source editing Obsidian native Move the cursor into a block or click Edit

In Live Preview, supported directives render as callouts, equations, or other preview blocks when the cursor is outside them. Move the cursor into a block or use its Edit button to expose the source. Source mode always shows the original Markdown.

The separate pane from versions 1.0.0–1.0.2 has been removed. On upgrade, a saved legacy pane is closed if the same file is already open, or converted to a normal note if it was the only view of that file.

Example

```{admonition} מערכות LTI
:class: tip

$$T\{x(t)\}=x(t)\ast h(t)$$
$$x(t)\ast h(t)=\int_{-\infty}^{\infty}x(\tau)h(t-\tau)\,d\tau$$
```

The directive becomes a native tip callout containing rendered math. The source file is never rewritten.

Colon fences work in Live Preview:

::::{note} An outer note

:::{warning} Nested warning
Keep an eye on the units.
:::
::::

Supported syntax

  • Admonitions: admonition, note, tip, hint, important, warning, caution, attention, danger, error, seealso, todo, topic, and sidebar.
  • :class: tip and related admonition types; dropdown and :class: dropdown become collapsible callouts. :open: expands them initially.
  • math, with :label: or :name: anchors; dollar math is handled by Obsidian's MathJax renderer.
  • figure and image, with relative image paths, alt text, and figure captions.
  • code, code-block, and code-cell display code. They never execute code.
  • Simple list-table directives, with zero or one header row and one-line cells; table wraps a Markdown table.
  • rubric, epigraph, and pull-quote.
  • Top-level raw HTML, either inline or loaded with :file: from a vault HTML file relative to the current note. Scripts and HTTPS libraries run in an isolated iframe in both Reading view and Live Preview.
  • Inline {math} / {m}, {code}, {file}, {command}, {kbd}, {guilabel}, {ref}, {eq}, {numref}, and {doc} roles. Explicit link text such as {ref}`See this <my-label>` is supported.
  • Standalone (my-label)= labels inside processed directives.

See the demo note for a complete example.

Scope and limitations

This renderer supports a documented subset of MyST, not the complete MyST parser or a Jupyter/Sphinx runtime. Build your book with its normal toolchain for authoritative output.

Unknown directives and roles remain unchanged. Includes, non-HTML raw directives, nested raw HTML, notebook execution, bibliography resolution, Sphinx domains, tab sets, grids, YAML directive options, cross-document label indexing, automatic equation/figure numbering, and inline roles outside processed directives are not implemented. ref, eq, and numref create local anchor links and do not compute numbers. Image sizing and layout options are not implemented. Invalid or unclosed directives remain readable as source. Inline roles within indented code, fenced code, and frontmatter are preserved. More than 32 nested directive levels fall back to source.

Reading view can recover custom titles when Obsidian supplies source section information; otherwise it uses the directive's default title. Live Preview has the full source and custom titles.

Interactive HTML

```{raw} html
:file: interactives/frequency-response.html
```

The example reads interactives/frequency-response.html relative to the note's folder. The file must be inside the vault and end in .html or .htm. Changes to the HTML file reload its frame automatically. Missing or invalid files show an explanatory message.

HTML can contain inline JavaScript and load libraries from absolute HTTPS URLs. Fragments that reference MathJax or contain LaTeX delimiters automatically receive MathJax 3.2.2 from jsDelivr, unless they already include a MathJax script loader. This supplies the runtime normally provided by Jupyter Book. Internet access is needed for remote resources, including this math runtime; self-contained HTML can work offline. Relative companion assets are not resolved from the HTML file, so use self-contained content or absolute HTTPS URLs. The frame resizes to its content and retains scrolling for very long documents. Raw HTML formats other than html stay readable as source.

Privacy

MyST Reader does not write to notes, read files outside the vault, or collect telemetry. It reads HTML files explicitly referenced by raw directives. Raw HTML scripts execute inside an iframe with sandbox="allow-scripts" and without allow-same-origin; they cannot access Obsidian's DOM, vault APIs, or application storage. Only embed HTML you trust: its scripts and external resources can contact third-party servers, which receive ordinary network information such as your IP address. The iframe sends no referrer. Other Markdown rendering is delegated to Obsidian, including its ordinary handling of remote images and links. Code cells and code blocks remain display-only.

Development

Requires Node.js 22.18+ or 24+, npm, and Obsidian 1.7.2 or newer. The plugin uses public Obsidian APIs only; the development Node requirement does not apply to users installing the bundled plugin.

npm ci
npm run check
npm run package

npm run dev watches source changes. The CommonJS bundle is intentionally unminified for review. npm run package creates the three release assets under dist/myst-reader/; ZIP that directory for manual installation.

Release and community registration

The repository must be public with manifest.json, README.md, and LICENSE at its root. Create a GitHub release tagged exactly as the manifest's version (no v) and attach main.js, manifest.json, and styles.css. The included release workflow does this for a pushed version tag after running checks.

Submit through Obsidian Community using an Obsidian account linked to the repository owner's GitHub account. Community availability depends on Obsidian's review. See the official submission guide.

License

MIT. This is an independent implementation; it does not incorporate code from other MyST plugins.

HealthExcellent
ReviewSatisfactory
About
Render supported MyST Markdown blocks automatically in your normal Obsidian notes. Admonitions, LaTeX math, figures, nested directives, and roles inside directives work in Reading view and Live Preview. Keep Jupyter Book and Sphinx source unchanged and edit blocks in place. Supports multilingual content, including Hebrew. No separate pane or command is required.
MarkdownLaTeXFormatting
Details
Current version
1.0.5
Last updated
7 hours ago
Created
8 hours ago
Updates
6 releases
Downloads
2
Compatible with
Obsidian 1.7.2+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
YOAV PALTIYOAV PALTIyoav-palti
GitHubyoav-palti
  1. Community
  2. Plugins
  3. Markdown
  4. MyST Reader

Related plugins

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

Image Captions

Add captions to images with inline Markdown and link support. The caption format is compatible with the Commonmark spec and other Markdown applications.

PanGu

Add spaces between Chinese characters and English alphabet. A boon for typographically compulsive people.

Blur

Create obfuscated blocks of text.

Markdown Formatting Assistant

A formatting sidebar for Markdown and a command line interface to facilitate a faster workflow.

Fix Math

Convert LaTeX equations from ChatGPT and AI assistants to the correct Markdown format: block equations to display math, inline to inline math.

Columns

Create columns in Markdown.

Admonition

Admonition block-styled content.

Latex Suite

Make typesetting LaTeX math as fast as handwriting through snippets, text expansion, and editor enhancements.

Custom Frames

Turn web apps into panes using iframes with custom styling. Also comes with presets for Google Keep, Todoist and more.