An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          


# Mark

## Your AI agents write Markdown. Finally, an editor that does it justice.


[![Tests](https://github.com/xronocode/mark/actions/workflows/test.yml/badge.svg)](https://github.com/xronocode/mark/actions/workflows/test.yml)
 ![Status](https://img.shields.io/badge/alpha-orange?style=flat-square)
 ![Platform](https://img.shields.io/badge/macOS%20arm64-black?style=flat-square)
 ![Size](https://img.shields.io/badge/11%20MB-brightgreen?style=flat-square)
 ![RAM](https://img.shields.io/badge/61%20MB%20RAM-brightgreen?style=flat-square)
 ![License](https://img.shields.io/badge/MIT-blue?style=flat-square)


Mark — themes, code highlighting, Mermaid diagrams, KaTeX math, tables


### 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.

---

Mark is built on personal time.

If it saves you from reading agent specs in raw terminal — or from yet another 400 MB Electron install:



Buy Me a Coffee at ko-fi.com



⭐ **Star the repo** · File issues · Send a PR


[MIT](reborn-mark/LICENSE) · **[@xronocode](https://github.com/xronocode)**