Documentation

Start writing with oh-my-md

A fast, native desktop Markdown editor designed for local files and documents that scale to hundreds of thousands of lines. Choose your package on the download page.

Quick start & workspaces

oh-my-md is entirely local-first. There are no cloud vaults, forced sync accounts, or proprietary databases. Everything lives directly in plain Markdown files on your disk.

Single file mode

Double-click any .md or .markdown file from Finder or Windows Explorer to open it immediately with minimal footprint.

Folder workspace

Mount any local directory as a workspace to unlock the file tree explorer, full-folder search, document outline panel, and multi-tab editing.

Local asset rule: Pasted and dragged images are saved automatically into an adjacent assets/ folder relative to your Markdown document, keeping links portable and Git-friendly.

Live Preview & source mode

Traditional split-pane editors waste half your display showing duplicates. oh-my-md provides true in-place rendering inspired by modern word processors, backed by the robust CodeMirror 6 engine:

  • Live Preview: Markdown syntax markers (such as asterisks, brackets, or math delimiters) naturally fade out as you write, rendering styled text, tables, and blocks in place while remaining fully editable.
  • Source Mode: Flip to raw, unrendered Markdown with full syntax highlighting anytime with ⌘ E (or Ctrl + E).

Mode switching is instantaneous because it simply mounts or unmounts CodeMirror decoration layers without rebuilding the underlying document model.

Supported Markdown & rich blocks

Full conformance to CommonMark and GitHub Flavored Markdown (GFM), alongside rich technical content blocks:

GFM Tables & Task Lists

Rendered interactively with clean cell alignment, strikethrough, and clickable task checkmarks.

KaTeX Math Blocks

Inline math $E=mc^2$ and centered display blocks $$...$$ rendered in real time with LaTeX accuracy.

Mermaid Diagrams

Flowcharts, sequence diagrams, and architecture maps rendered directly inside ```mermaid fenced blocks.

Shiki Code Highlighting

Accurate syntax highlighting powered by VS Code themes, preserving your active light/dark palette.

Core keyboard shortcuts

Every command is discoverable through the Command Palette (⇧ ⌘ P / Ctrl + Shift + P). Key common actions:

Action macOS Windows / Linux
Toggle Live Preview / Source mode Switch between in-place render and raw markdown ⌘ E Ctrl + E
Command Palette Search and run all available actions ⇧ ⌘ P Ctrl + Shift + P
Bold text ⌘ B Ctrl + B
Italic text ⌘ I Ctrl + I
Insert Link ⌘ K Ctrl + K
Headings 1 to 6 ⌘ 1 – 6 Ctrl + 1 – 6
Typewriter / Focus mode ⌥ ⌘ T Alt + Ctrl + T

Large-document performance architecture

One core promise of oh-my-md: you should never have to split a file because your editor gets sluggish.

Unlike Electron-based editors that render the entire document DOM, oh-my-md utilizes CodeMirror 6's viewport virtualization paired with a lightweight Tauri 2 Rust native host:

  • Viewport-windowed rendering: Only the lines visible on your screen are rendered into the DOM. Complex math and diagrams outside the screen are measured and held in memory without taxing your GPU.
  • Sub-millisecond mode toggling: Switching between Live and Source modes only builds decoration seeds around the cursor, keeping transitions instant even on 100,000+ line files.
  • Deterministic durability: Native file saves use guarded atomic writes to prevent data loss or silent external file overwrites.

Troubleshooting & platforms

Current packages are available for macOS Universal, Windows x64, and Linux x64:

  • HTML Export: Available across macOS, Windows, and Linux.
  • PDF & PNG Export: Currently available on macOS via native WebView print rendering.

Unsigned community build notice: The v0.0.1 preview binaries are not code-signed. On macOS, right-click and choose "Open", or run xattr -cr /Applications/oh-my-md.app if blocked by Gatekeeper. On Windows, click "More info" and "Run anyway" in Microsoft Defender SmartScreen.

Still encountering an issue? Check the main README and the manual testing notes, or head over to the Support Hub to file a bug report with reproducible steps.