Skip to content

ashlrai/ashlr-md

Repository files navigation

Ashlr MD

Ashlr MD

Markdown, finally beautiful.

An open-source, AI-native Markdown app for macOS, Windows, and Linux. Double-click any .md and it's instantly beautiful — read it, edit it, export it, and understand it with free, private, on-device AI built in.

Think Preview.app, but Markdown-aware, editable, and AI-native — and cross-platform.

CI License: MIT Platform: macOS · Windows · Linux Built with Tauri

Website · Download · Contributing · Roadmap · Vision

Ashlr MD — a beautiful Markdown plan with callouts and checkboxes, plus an on-device AI assistant

Why

Your AI agents write Markdown all day — README.md, PLAN.md, research dumps. On most systems those open as a wall of raw syntax (TextEdit, Notepad) or a blank page (Preview). No app owns the simple job of making them look right instantly, especially for non-technical people. Ashlr MD does exactly that, on every platform.

Features

  • Instant, beautiful rendering — GFM, Shiki-highlighted code, Mermaid diagrams, KaTeX math, GitHub-style callouts, tables, footnotes.
  • Edit without the syntax — Typora-style WYSIWYG (Milkdown) + a lossless source mode (CodeMirror) + a clean Read view. Atomic save; external-change detection with a conflict banner.
  • Export anywhere — one-click PDF / DOCX / HTML, fully offline, no Pandoc.
  • ⌘K command palette — fuzzy, keyboard-first access to every action and your recent files.
  • Free, private, on-device AI — summarize / explain / rewrite / translate. On macOS 26+ (Apple Silicon): zero-install via Apple Foundation Models (macOS only). On Windows & Linux (and as a fallback on Mac): local Ollama → your own cloud key → optional hosted. Nothing leaves your device unless you opt in.
  • AI superpowers — select text to Explain / Summarize / Rewrite / Translate; inline AI rewrite in the editor (⌘I) with Rewrite / Fix grammar / Make concise / Expand; "Explain changes" when a file changes on disk; and chat-with-document.
  • Agent activity drawer (⌘B) — watch the folder your AI agent writes to and new Markdown files appear live; click to open instantly. The answer to "buried in agent .md files."
  • Outline navigation (⌘⇧O) — an auto table-of-contents with scrollspy for long docs.
  • Tabs — open several documents at once; the tab bar appears only when more than one is open, so the single-file view stays clean. ⌘⇧] / ⌘⇧[ to switch, ⌘W to close.
  • Find & search — find-in-document (⌘F) in both rendered and source views, find-and-replace in source (⌘⌥F), and full-text search across your recent & watched files (⌘⇧F).
  • Split view & Zen mode — edit with a live preview side-by-side (⌘\, synced scrolling), or go distraction-free with Zen mode (⌘⇧Z, Esc to exit).
  • Obsidian-compatible — reads your vault natively: [[wikilinks]] (with #heading / #^block anchors and |aliases) that resolve vault-wide and open, ![[embeds]] and partial transclusion, sized ![[image.png|300]] embeds, ==highlights==, hidden %%comments%%, and KaTeX math. Read-only JSON Canvas (.canvas) viewing with pan/zoom, plus an Open in Obsidian command to hand a note back. Never writes to your .obsidian/ config. Details: docs/OBSIDIAN.md.
  • Reading polish — word count & reading time, footnote hover previews, a path breadcrumb, and copy-link-to-heading on hover.
  • Secure by default — malicious Markdown is sanitized (no script/HTML injection), API keys live in the OS keychain (never plaintext), and a strict CSP is enforced. See SECURITY.md.
  • Agent-native review loopmdopen file.md, the mdopener:// URL scheme, and an MCP server so Claude Code / Codex / Cursor can open, read, edit, and export the live doc; the activity drawer (⌘B) surfaces new agent .md files the instant they land and "Explain changes" narrates each on-disk edit. One-click MCP setup in Settings. Full guide: docs/AGENTS.md.
  • Obsidian integration — the Open in Ashlr MD plugin sends any vault note to Ashlr MD with one click (ribbon, command, and right-click) via the mdopener:// scheme.
  • VS Code integration — the Open in Ashlr MD extension opens the active .md file in Ashlr MD from an editor title-bar button (or the command palette) via the mdopener:// scheme, with a mdopen CLI fallback.
  • Smart agent output — callouts, interactive checkboxes that save back to the file, and automatic plan / diff / multi-file detection with badges.
  • Three themes — Paper, Sepia, Midnight (light + dark) — switch live.
  • Native & instant — built on Tauri 2; a tiny native binary on every OS, no Electron bloat. MIT, local-first, no telemetry.

Platform support

Capability macOS Windows Linux
Core (render · edit · export · themes)
Default .md handler ✅ one-click (Launch Services) ✅ registers association (opens Settings to confirm) ✅ via xdg-mime
Free local AI (zero-install) ✅ Apple Foundation Models (macOS 26+, Apple Silicon) Ollama (install separately) Ollama (install separately)
mdopen CLI & mdopener:// deep link
MCP server
Command palette · activity drawer · inline AI · outline

Keyboard shortcuts

Shown with ⌘ on macOS — use Ctrl on Windows & Linux.

Action Shortcut
Command palette ⌘K
AI assistant ⌘L
Inline AI rewrite (in editor) ⌘I
Cycle theme ⌘⇧L
Open file ⌘O
Save ⌘S
Export ⌘E
Read / Edit / Source view ⌘1 / ⌘2 / ⌘3
Find in document ⌘F
Find & replace (source) ⌘⌥F
Search across files ⌘⇧F
Split preview ⌘\
Zen mode ⌘⇧Z
Next / Previous tab ⌘⇧] / ⌘⇧[
Close tab ⌘W
Agent activity drawer ⌘B
Outline ⌘⇧O
Settings ⌘,

Use it with an AI agent

# Open a file from any terminal or agent:
mdopen notes.md
open "mdopener://open?path=$PWD/notes.md"

# Let Claude Code drive the app (open / read / edit / export the current doc):
claude mcp add --scope user ashlr-md /path/to/mdopener-mcp

One-click agent setup

Open Preferences → AI agents (MCP) and click Connect to Claude Code or Connect to Cursor — no terminal required. For Codex, copy the command from the same panel. The Agent Activity drawer (⌘B) is the recommended way to watch an agent's output folder and open new .md files the moment they appear. Full guide

Download & install

Downloads are on the GitHub Releases page. Full, per-OS instructions live in docs/INSTALL.md.

Platform Artifact Package manager
macOS .dmg (drag to /Applications) brew install --cask ashlr-md
Windows .msi / NSIS .exe installer winget install ashlrai.AshlrMD
Linux .deb (Debian/Ubuntu) · .AppImage (universal) AUR: yay -S ashlr-md

Auto-update is built in on every platform.

Note: Windows code-signing is not yet set up — you may see a SmartScreen warning; click "More info → Run anyway". macOS builds are notarized. Linux AppImages ship unsigned. Homebrew / winget / AUR availability tracks the first signed release — see docs/RELEASING.md.

There's also a one-shot installer that builds from source, installs the mdopen CLI, and wires up Claude Code:

bash scripts/install.sh

Develop

Prerequisites: Rust and Bun. On macOS, also install Xcode Command Line Tools (xcode-select --install). On Windows, install the MSVC build tools. On Linux, install build-essential (Debian/Ubuntu) or equivalent, plus the Tauri Linux dependencies.

bun install
bun run tauri dev        # hot-reloading desktop app
bun run tauri dev -- file.md   # open a file on launch

Quality gates (all green in CI):

bun run typecheck        # tsc --noEmit
bunx biome check src     # lint + format
bun run test             # Vitest unit tests
cargo check --workspace --manifest-path src-tauri/Cargo.toml

The on-device AI sidecar (optional, macOS 26+) builds separately:

cd src-tauri/bins/mdopener-afm && ./build.sh

Architecture

Layer What
src/ React 19 + TS frontend — renderer (remark/rehype + Shiki/Mermaid/KaTeX), Milkdown & CodeMirror editors, AI sidebar, export, Zustand stores
src-tauri/src/ Rust core — file I/O, watcher, deep links, AI proxy (reqwest), loopback IPC, on-device AI bridge
src-tauri/bins/ mdopen CLI · mdopener-mcp MCP server · mdopener-afm Swift on-device AI sidecar
landing/ The marketing site (static, deploy-anywhere)

See docs/VISION.md for the north star and docs/RELEASING.md for the release process.

Contributing

Contributions welcome! Please read CONTRIBUTING.md. The short version: local-first, no GPL in the bundle, and verify in the real app.

License

MIT © Ashlr MD contributors

About

An open-source, AI-native Markdown app for macOS — open any .md and it's instantly beautiful, with free on-device AI and agent (MCP) integration.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors