https://github.com/xronocode/mark
WYSIWYG Markdown editor rebuilt on Tauri 2 + Rust. 11 MB, 61 MB RAM. Spiritual successor to Mark Text.
https://github.com/xronocode/mark
electron-alternative macos markdown markdown-editor marktext native rust tauri tauri2 text-editor vue3 writing wysiwyg
Last synced: 6 days ago
JSON representation
WYSIWYG Markdown editor rebuilt on Tauri 2 + Rust. 11 MB, 61 MB RAM. Spiritual successor to Mark Text.
- Host: GitHub
- URL: https://github.com/xronocode/mark
- Owner: xronocode
- License: mit
- Created: 2026-04-23T22:23:20.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-28T07:47:57.000Z (7 days ago)
- Last Synced: 2026-05-28T08:22:31.266Z (7 days ago)
- Topics: electron-alternative, macos, markdown, markdown-editor, marktext, native, rust, tauri, tauri2, text-editor, vue3, writing, wysiwyg
- Language: JavaScript
- Homepage: https://github.com/xronocode/mark
- Size: 87.9 MB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Mark
## Your AI agents write Markdown. Finally, an editor that does it justice.
[](https://github.com/xronocode/mark/actions/workflows/test.yml)






### Install (macOS Apple Silicon)
```sh
brew tap xronocode/mark && brew install --cask mark@alpha
```
No Gatekeeper prompts. No `sudo xattr` dance. [Build from source →](#install)
> **⚠️ Alpha** — daily-driver quality for writing on Apple Silicon, but it has known gaps.
> What works has 2700+ tests and CI. What doesn't is [tracked openly](#status--v200-alpha9).
You run Claude Code. Or Aider. Or Codex. Or your own agents.
They generate *beautiful* Markdown — plans, specs, reports, Mermaid diagrams, LaTeX math, comparison tables. Then you try to **actually read it**:
> **Terminal** — tables collapse, diagrams vanish, colors don't exist.
> **VS Code / Obsidian** — 300 MB of RAM before you open a single file. You already have LLMs eating 8–16 GB.
> **Export to HTML** — burns tokens, triples prompt size, needs a browser tab per file.
Sound familiar? That's **Markdown fatigue**. Everyone building with AI agents in 2026 feels it.
Mark fixes it. **11 megabytes.** Opens in under a second. Renders everything. Gets out of your way.
---
### How it feels
```
You Mark Your agent
│ │ │
│ "open plan.md" │ │
│ ──────────────────────────▶│ │
│ │ tables, mermaid, math │
│ │ rendered live, inline │
│ read ← ── ── ── ── ── ──│ │
│ │ │
│ edit directly in Mark │ │
│ ──────────────────────────▶│ │
│ │──── file saved ────────────▶│
│ │ │
│ │◀─── agent updates file ─────│
│ │ live reload, no refresh │
│ see changes instantly ◀──│ │
│ │ │
```
One window. No browser. No context switch. The human-in-the-loop just works.
---
### Set up your agent in 30 seconds
Add this to your agent's system prompt, `CLAUDE.md`, `.aider.conf.yml`, or whatever config your agent reads:
```markdown
When you produce a plan, spec, report, or any document longer than ~50 lines,
write it to a .md file and open it in the user's editor:
open -a Mark .md # macOS
The user will read and edit directly in Mark (a lightweight WYSIWYG Markdown
editor with live file-watcher reload). When you see the file has changed on
disk, read the updated version — the user left feedback or corrections inline.
Treat the diff as your next instruction.
```
That's it. Your agent writes → Mark renders → you edit → the agent picks up the diff.
Use case: review a plan before the agent executes
```
You: "Write an implementation plan for the new auth module."
Agent writes plan.md, runs `open -a Mark plan.md`.
You see a beautifully rendered doc with Mermaid diagrams and tables.
You delete step 3, rewrite step 5, add a note: "— use JWT, not sessions".
Save.
Agent detects the change:
"I see you removed step 3 and updated step 5 to use JWT. Proceeding with
the revised plan."
```
Use case: structured feedback on a report
```
You: "Analyze our API latency data and give me a report."
Agent writes report.md with tables, charts, and recommendations.
Opens in Mark — you see everything rendered inline.
You add a line at the bottom:
"— Good analysis. But ignore the /health endpoint, it skews the p99.
Re-run without it."
Agent reads the update, re-runs the analysis, appends the new results
to the same file. Mark live-reloads. You see the diff without switching
windows.
```
Use case: knowledge base your agent maintains
```
Add to your agent config:
Maintain a living knowledge base in docs/kb.md.
After each significant decision, append a dated entry.
The user may reorganize or annotate entries in Mark —
respect their edits as authoritative.
Open docs/kb.md in Mark once. Leave it open.
Every time the agent appends, Mark live-reloads.
You curate, the agent accumulates. One file, two authors.
```
Use case: spec review with Mermaid diagrams
```
You: "Design the data flow for the new ingestion pipeline."
Agent writes spec.md:
## Data Flow
```mermaid
graph LR
A[S3 Upload] --> B[Lambda Trigger]
B --> C{Validate}
C -->|pass| D[Transform]
C -->|fail| E[Dead Letter Queue]
D --> F[Write to Postgres]
```
In the terminal this is raw text. In Mark it's a rendered diagram.
You drag the DLQ branch, add a retry step, save.
The agent sees your edit and adjusts the implementation.
```
---
### 11 MB. Not 200 MB.
| | **Mark** | Mark Text | Typora | Obsidian | iA Writer |
|:---|:---:|:---:|:---:|:---:|:---:|
| **App size** | **11 MB** | 200 MB | 100 MB | 300 MB | 30 MB |
| **RAM at idle** | **61 MB** | 400 MB | 200 MB | 250 MB | 50 MB |
| **True inline WYSIWYG** | **Yes** | Yes | Yes | No | Partial |
| **Mermaid + KaTeX + Vega** | **All three** | Yes | Partial | Plugins | No |
| **Live file-watcher reload** | **Yes** | No | No | Yes | No |
| **Themes** | **33** | 6 | CSS | CSS | 3 |
| **Open source** | **MIT** | MIT | No | No | No |
| **Price** | **Free** | Free | $15 | $50/yr | $50 |
| **Native macOS** | **WKWebView** | Chromium | Chromium | Chromium | AppKit |
No Chromium. No Node.js. No Electron. Just your system WebView doing what it was designed to do.
---
### But what about the AI-native tools?
The 2025–2026 wave brought a crop of tools built specifically for AI-agent workflows. Here's how Mark compares:
| Tool | What it is | Where Mark differs |
|:---|:---|:---|
| **glow / mdcat** | Terminal-based MD renderers | No images, no Mermaid, no editing. Great for quick glances — not for 200-line specs with diagrams. |
| **leaf** | Rust TUI viewer with watch mode | Still a terminal. No inline WYSIWYG, no rich rendering. |
| **Ferrite** | Rust + egui editor | Split-view, not inline WYSIWYG. Different UX paradigm. |
| **Marky** | Tauri CLI viewer (`marky plan.md`) | Viewer only, no editing. Mark does both. |
| **Ritemark** | MD editor + built-in terminal | Electron-based, heavier footprint. |
| **Obsidian** | Knowledge base with plugins | 300 MB, plugin ecosystem needed for basics. Overkill for reading agent output. |
Mark sits in a specific gap: **native + lightweight + full WYSIWYG + file-watcher + edit-in-place**. If you need a vault or a second brain, use Obsidian. If you need to read and edit what your agents write without burning RAM — that's Mark.
---
### Built by AI agents. For AI agents.
This project is its own proof of concept.
The entire Tauri rewrite — **30+ Rust modules, 2620 tests**, typed IPC, native menu, spellchecker, auto-updater — was architected and shipped by one developer with AI agents using the **GRACE methodology** (Graph-RAG Anchored Code Engineering).
Structured plans. Module contracts. Knowledge graphs. Agents executing against verifiable specs.
One person. AI agents. A native desktop app that rivals what teams of five ship.
> *Mark is the tool that was missing from the workflow that built it.*
---
### What's inside
**The essentials** — true inline WYSIWYG (muya engine), multi-tab editing, folder sidebar, find in file & folder
**The rendering** — Mermaid v11 diagrams, KaTeX math, Vega charts — all inline, no preview pane
**The native feel** — system WKWebView, macOS menu bar, NSSpellChecker, real Cmd+shortcuts, ad-hoc code signing
**The agent workflow** — file-watcher live reload, dirty-tab protection (Save/Discard/Cancel), preview mode on Finder open
**The trust** — no telemetry, no cloud, no account, no plugin marketplace. Files are files. 2620 tests. MIT licensed.
---
### Status — v2.0.0-alpha.9
Daily-driver quality for routine Markdown on Apple Silicon.
**Editing**
| Feature | Status |
|:---|:---:|
| True inline WYSIWYG (muya engine) | ✅ |
| Multi-tab editing | ✅ |
| Open Folder + sidebar file tree | ✅ |
| Mermaid v11 / KaTeX / Vega inline rendering | ✅ |
| Inline diff view (CodeMirror MergeView) | ✅ |
| Find in file (Cmd+F) | 🔶 Beta |
| Find in folder (in-process ripgrep) | 🔶 Beta |
| Search context lines + include/exclude globs | Planned |
**File handling**
| Feature | Status |
|:---|:---:|
| Save / Save As / Open | ✅ |
| Dirty-tab close prompt (Save / Discard / Cancel) | ✅ |
| External-edit live reload (file-watcher) | ✅ |
| Auto-detect file encoding (UTF-8, windows-1251, Shift_JIS, …) | ✅ |
| v1 preferences migration (5-store, idempotent) | ✅ |
| Recent documents | ✅ |
| Preserve source encoding on save | Planned |
| Manual encoding picker | Planned |
| File move / rename commands | ✅ |
| Print (Cmd+P → system dialog) | ✅ |
| Export as HTML | ✅ |
**Appearance & UX**
| Feature | Status |
|:---|:---:|
| 33 themes + custom CSS | ✅ |
| Live theme sync across windows | ✅ |
| Preview mode on Finder double-click | ✅ |
| Set as default `.md` handler | ✅ |
| System font enumeration | ✅ |
| Trackpad pinch-to-zoom | ✅ |
| Window geometry persistence | ✅ |
| Monospace font filter for code editor | Planned |
**Native macOS**
| Feature | Status |
|:---|:---:|
| System WKWebView (no Chromium) | ✅ |
| Native menu bar + Cmd+shortcuts | ✅ |
| Spell-check via NSSpellChecker | ✅ |
| Screenshot capture (macOS screencapture) | ✅ |
| Ad-hoc code signing (no Developer account) | ✅ |
| Global shortcuts (Cmd+Shift+M show window) | 🔶 In progress |
| Auto-update via Homebrew cask (ed25519 signed) | ✅ |
**CLI & integration**
| Feature | Status |
|:---|:---:|
| CLI flags (--safe-mode, --debug, --new-window) | ✅ |
| `open -a Mark file.md` from terminal / agents | ✅ |
| Pandoc export (HTML, PDF) | ✅ Requires Pandoc |
| Pandoc progress indicator | Planned |
| Image upload (PicGo, smms, aliyun) | Planned |
**Platform**
| Feature | Status |
|:---|:---:|
| macOS Apple Silicon | ✅ |
| macOS Intel | Untested |
| Linux | Planned |
| Windows | Planned |
| Multi-window support | Planned |
> Alpha is alpha. What works has **2700+ tests** and CI. What doesn't is tracked openly with a target milestone.
---
### Install
**One command:**
```sh
brew tap xronocode/mark && brew install --cask mark@alpha
```
Gatekeeper handled automatically. No `sudo xattr` dance. No $99/year Apple Developer account.
Electron stable channel (frozen at v1.2.3, security fixes only)
```sh
brew tap xronocode/mark && brew install --cask mark
```
Both casks coexist. When v2.0 stable ships, `mark` rolls forward to Tauri.
Build from source
Rust 1.79+ · Node 20 LTS · Xcode CLI Tools
```sh
git clone https://github.com/xronocode/mark.git && cd mark/reborn-mark
npm ci
npm run tauri dev # hot-reload
npm run tauri build # release
```
```sh
npm test # 374 renderer tests
cd src-tauri && cargo test --bin mark # 418 Rust tests
npm run test:e2e # Playwright
```
---
### Acknowledgements
Mark wouldn't exist without the people who built the foundation:
- **[@Jocs](https://github.com/Jocs)** — creator of [Mark Text](https://github.com/marktext/marktext) (54k+ ⭐). The muya WYSIWYG engine, the theme system, and the entire UX paradigm that makes inline Markdown editing feel right. Everything Mark does starts with his work.
- **[@Tkaixiang](https://github.com/Tkaixiang)** — maintainer of the [community fork](https://github.com/Tkaixiang/marktext) that kept Mark Text alive with critical security fixes (CVE-2023-2318), crash fixes, and the Mermaid v11 upgrade. Mark's Electron stable channel is downstream of his fork.
- **The Mark Text community** — 54,000+ stargazers, hundreds of contributors, and years of issues and PRs that shaped what a good Markdown editor should be.
- **The Tauri team** — for building a framework that makes 11 MB native apps possible without Chromium.
Mark is what Mark Text looks like **without Electron, without the bloat, and with an AI-agent workflow in mind**. We stand on the shoulders of giants — and we say thank you.
---
### Contributing
PRs welcome. Fork → branch from `main` → run tests → open a PR. CI gates merge on macOS + Linux. For larger changes, open an issue first.
---