Help & documentation
Everything you need to get productive with Simple MD in about ten minutes. If you're stuck on something not covered here, the troubleshooting section has the most common gotchas.
The promise: your .md files stay files. Anything Simple MD does to a document — formatting, charts, math, AI edits — round-trips back to plain Markdown on disk.
Simple MD is open source · github.com/robrighter/simple-md
Install & first run
Grab a build from the downloads page for your platform:
- macOS — universal
.dmgfor Apple Silicon and Intel. Drag Simple MD.app into Applications. - Windows ARM64 — for Surface Pro X, Copilot+ PCs, and other ARM-based machines. Native, no emulation.
- Windows x86_64 — for 64-bit Intel and AMD processors. MSI installer, signed.
On first launch you'll see a welcome document. Simple MD doesn't ask for an account, an email, or a license key. Just open a folder or a file and start writing.
A quick tour
The window is two columns:
- Left rail — workspace tree and a unified Recents list. Right-click any file or folder for rename / delete.
- Main column — a thin top bar with file actions and mode tabs, then the tab strip, then the document, then the status bar.
The status bar at the bottom shows the last action, dirty indicator, current mode, word/line/character counts, and the file path. If the document came from an HTTPS URL, the path is a clickable link that opens the source.
Workspaces & files
A workspace is just a folder Simple MD knows about. You can have several open at once.
- Open a folder — click Open in the top bar, or drop a folder onto the window.
- Create a note — click New ▾ → Note. Simple MD appends
.mdif you forgot. - Create a folder — New ▾ → Folder.
- Rename / delete — right-click any tree entry. Workspace roots can only be removed (the underlying folder is left untouched).
- Standalone files — open a single
.mdwithout adding its parent folder. - Scratchpads — click the + on the tab strip for a temporary unsaved buffer. Saving prompts for a filename.
Recognized extensions
Simple MD treats .md, .markdown, .mdown, and .mkd as Markdown. Other extensions are ignored in the workspace tree even if they happen to contain Markdown.
The four modes
The mode tabs are in the top bar. Each open document remembers its mode independently, so you can have a draft in Text and a finished doc in Display at the same time.
Display
Read-only render. GitHub-flavored Markdown, syntax-highlighted code, KaTeX math, and inline charts. Use this when you're proofing, presenting, or just want a calm reading view.
Text
Pure Markdown source in CodeMirror 6. Syntax highlighting, list continuation, bracket matching, and a monospaced editing surface. Power-users live here.
Hybrid
True WYSIWYG. Type into the rendered view and Markdown is generated underneath, losslessly. Powered by Milkdown and ProseMirror. Best for prose-heavy writing.
Heads-up: Hybrid mode keys on the active document. Switching documents remounts the editor with fresh state, so your cursor jumps to the start. Switching modes on the same document is fine.
Split
Source on the left, rendered preview on the right. The two panes scroll together. Useful when you're tuning a tricky table or a chart spec.
Math with KaTeX
Inline math goes between dollar signs:
The mass-energy relation is $E = mc^2$.
Block math uses double dollars:
$$
\int_{-\infty}^{\infty} e^{-x^2}\,dx = \sqrt{\pi}
$$
KaTeX is bundled — Simple MD does not download fonts at runtime. Bad LaTeX renders red inline rather than breaking the document.
Inline charts
A fenced chart block is a JSON spec that renders as a real chart in Display, Hybrid, and the preview half of Split:
```chart
{
"type": "bar",
"title": "Q2 revenue by region",
"data": [
{ "region": "NA", "revenue": 482 },
{ "region": "EU", "revenue": 311 },
{ "region": "APAC", "revenue": 207 }
]
}
```
Supported types: bar, line, area, and pie. Simple MD infers the x-axis key and series when you omit them, so most blocks are just { "type": "bar", "data": [...] }. A bad spec renders an inline error panel — never throws.
HTTPS import
Click Import… in the top bar and paste any HTTPS URL ending in a Markdown file. GitHub blob URLs are auto-rewritten to raw.githubusercontent.com.
Imported documents open as read-only buffers identified by their URL. Save them with Save to land them in your workspace.
Safety guard rails:
- HTTPS only — plain HTTP is rejected.
- 10 MB cap on the response.
- 30-second timeout, max 5 redirects.
- Content-type or extension or heuristic must look like Markdown.
Local AI assistant
The AI assistant is opt-in and entirely local. Click the AI callout in the top bar to open the right-edge panel. The first time, you'll be asked to:
- Accept Google's Gemma terms of use (one-time, stored locally).
- Choose a model variant.
- Download it (one click, with a progress bar).
Variants
- Gemma 4 E2B (Q8_0) — about 5 GB. Higher quality, more memory.
- Gemma 4 E4B (Q4_K_M) — about 2.5 GB. Lighter, faster, still very capable.
Using it
The active document is auto-injected as context on every turn. After each assistant reply you have three actions:
- Insert — drops the reply at the cursor.
- Append — adds the reply at the end of the document.
- Replace — replaces the current selection (if any), and shows a side-by-side diff first because it's destructive.
Insert / Replace fall back to Append when the editor isn't mounted (i.e. you're in Display mode) — Simple MD shows a status pill explaining why.
Network policy: the only network call the AI feature makes is the initial model download from a public HuggingFace mirror. Inference happens against a local llama-server sidecar on a random free port. Nothing leaves the machine.
Keyboard shortcuts
Modifier is ⌘ on macOS and Ctrl on Windows.
Default app for .md files
Simple MD registers itself as a handler for .md, .markdown, .mdown, and .mkd. To make it your default:
macOS
- Right-click a
.mdfile in Finder, choose Get Info. - Under Open with, pick Simple MD.
- Click Change All… to apply to every
.mdfile.
Windows
- Right-click a
.mdfile in Explorer, choose Open with → Choose another app. - Pick Simple MD and check Always use this app.
Once associated, double-clicking a Markdown file opens it in Simple MD even if the app isn't running. Drag-and-drop onto the dock / taskbar icon also works.
Privacy & data
- No telemetry. Simple MD does not phone home. There's no analytics SDK, no crash uploader, no opt-out toggle for "anonymous usage."
- No accounts. No sign-in, no license key, no email capture.
- No cloud sync. Your files live on your disk. Use any sync tool you like (iCloud, Dropbox, Syncthing) — Simple MD doesn't care.
- Sandboxed network. The only outbound calls are HTTPS imports you initiate and the optional one-time AI model download.
App-state metadata (recents, last-opened workspaces, AI license acceptance, AI model selection) lives in your OS's per-app data directory and never leaves the machine.
Troubleshooting
The app says my Markdown file is "missing"
Simple MD watches the filesystem and surfaces external changes via a banner above the document. If a file is moved or deleted by another tool, the tab will show a missing indicator. Reopen from the sidebar tree or use Recents.
An HTTPS import won't open
Common causes:
- The URL is HTTP, not HTTPS — Simple MD only fetches over TLS.
- The response is larger than 10 MB.
- The server returned a non-Markdown content type and the URL doesn't end in a Markdown extension.
- The host blocks non-browser User-Agents — try saving the file locally and opening it instead.
The AI panel is stuck on "Starting…"
Simple MD spawns llama-server and polls /health for up to 60 seconds. If the process dies before that, you'll see the tail of its stderr. Most often this is:
- Not enough RAM — try the smaller E4B variant.
- Model file corrupted mid-download — open the Models dialog and re-download. (Resumable downloads are on the roadmap; for now, retry restarts from scratch.)
- Antivirus quarantined the sidecar — whitelist the Simple MD app folder.
The Hybrid editor lost my cursor when I switched documents
Expected — the Hybrid editor remounts per document, so cursor position resets to the start. Switching modes on the same document keeps the cursor.
A chart block won't render
A bad chart JSON spec renders an inline red chart-error panel with the parser's complaint. Common issues are trailing commas, missing data arrays, or a type outside bar | line | area | pie.
Where are my settings stored?
- macOS:
~/Library/Application Support/Simple MD/ - Windows:
%APPDATA%\Simple MD\
The folder contains ai-settings.json, downloaded model files (models/*.gguf), and any other per-app metadata. Deleting the folder is a clean reset.
Still stuck? File an issue at github.com/robrighter/simple-md/issues with your OS, app version, and a short reproduction. Logs from ~/Library/Logs/Simple MD/ (macOS) or %LOCALAPPDATA%\Simple MD\logs\ (Windows) help a lot.