{"id":49693999,"url":"https://github.com/xronocode/mark","last_synced_at":"2026-05-28T09:01:14.529Z","repository":{"id":353706973,"uuid":"1219450893","full_name":"xronocode/mark","owner":"xronocode","description":"WYSIWYG Markdown editor rebuilt on Tauri 2 + Rust. 11 MB, 61 MB RAM. Spiritual successor to Mark Text.","archived":false,"fork":false,"pushed_at":"2026-05-28T07:47:57.000Z","size":92176,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-28T08:22:31.266Z","etag":null,"topics":["electron-alternative","macos","markdown","markdown-editor","marktext","native","rust","tauri","tauri2","text-editor","vue3","writing","wysiwyg"],"latest_commit_sha":null,"homepage":"https://github.com/xronocode/mark","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xronocode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"ko_fi":"xronocode"}},"created_at":"2026-04-23T22:23:20.000Z","updated_at":"2026-05-28T07:47:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/xronocode/mark","commit_stats":null,"previous_names":["xronocode/mark"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/xronocode/mark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xronocode%2Fmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xronocode%2Fmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xronocode%2Fmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xronocode%2Fmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xronocode","download_url":"https://codeload.github.com/xronocode/mark/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xronocode%2Fmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33601380,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["electron-alternative","macos","markdown","markdown-editor","marktext","native","rust","tauri","tauri2","text-editor","vue3","writing","wysiwyg"],"created_at":"2026-05-07T21:03:57.359Z","updated_at":"2026-05-28T09:01:14.519Z","avatar_url":"https://github.com/xronocode.png","language":"JavaScript","funding_links":["https://ko-fi.com/xronocode"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cbr\u003e\n\n# Mark\n\n## Your AI agents write Markdown. Finally, an editor that does it justice.\n\n\u003cbr\u003e\n\n[![Tests](https://github.com/xronocode/mark/actions/workflows/test.yml/badge.svg)](https://github.com/xronocode/mark/actions/workflows/test.yml)\n\u0026ensp;![Status](https://img.shields.io/badge/alpha-orange?style=flat-square)\n\u0026ensp;![Platform](https://img.shields.io/badge/macOS%20arm64-black?style=flat-square)\n\u0026ensp;![Size](https://img.shields.io/badge/11%20MB-brightgreen?style=flat-square)\n\u0026ensp;![RAM](https://img.shields.io/badge/61%20MB%20RAM-brightgreen?style=flat-square)\n\u0026ensp;![License](https://img.shields.io/badge/MIT-blue?style=flat-square)\n\n\u003cbr\u003e\n\n\u003cimg src=\"screenshots/mark-showcase.webp\" alt=\"Mark — themes, code highlighting, Mermaid diagrams, KaTeX math, tables\" width=\"820\"\u003e\n\n\u003cbr\u003e\n\n### Install (macOS Apple Silicon)\n\n```sh\nbrew tap xronocode/mark \u0026\u0026 brew install --cask mark@alpha\n```\n\nNo Gatekeeper prompts. No `sudo xattr` dance. [Build from source →](#install)\n\n\u003e **⚠️ Alpha** — daily-driver quality for writing on Apple Silicon, but it has known gaps.\u003cbr\u003e\n\u003e What works has 2700+ tests and CI. What doesn't is [tracked openly](#status--v200-alpha9).\n\n\u003cbr\u003e\n\n\u003c/div\u003e\n\nYou run Claude Code. Or Aider. Or Codex. Or your own agents.\n\nThey generate *beautiful* Markdown — plans, specs, reports, Mermaid diagrams, LaTeX math, comparison tables. Then you try to **actually read it**:\n\n\u003e **Terminal** — tables collapse, diagrams vanish, colors don't exist.\u003cbr\u003e\n\u003e **VS Code / Obsidian** — 300 MB of RAM before you open a single file. You already have LLMs eating 8–16 GB.\u003cbr\u003e\n\u003e **Export to HTML** — burns tokens, triples prompt size, needs a browser tab per file.\u003cbr\u003e\n\nSound familiar? That's **Markdown fatigue**. Everyone building with AI agents in 2026 feels it.\n\nMark fixes it. **11 megabytes.** Opens in under a second. Renders everything. Gets out of your way.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### How it feels\n\n\u003c/div\u003e\n\n```\n  You                          Mark                        Your agent\n   │                            │                             │\n   │   \"open plan.md\"           │                             │\n   │ ──────────────────────────▶│                             │\n   │                            │  tables, mermaid, math      │\n   │                            │  rendered live, inline       │\n   │   read ← ── ── ── ── ── ──│                             │\n   │                            │                             │\n   │   edit directly in Mark    │                             │\n   │ ──────────────────────────▶│                             │\n   │                            │──── file saved ────────────▶│\n   │                            │                             │\n   │                            │◀─── agent updates file ─────│\n   │                            │  live reload, no refresh    │\n   │   see changes instantly ◀──│                             │\n   │                            │                             │\n```\n\nOne window. No browser. No context switch. The human-in-the-loop just works.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### Set up your agent in 30 seconds\n\n\u003c/div\u003e\n\nAdd this to your agent's system prompt, `CLAUDE.md`, `.aider.conf.yml`, or whatever config your agent reads:\n\n```markdown\nWhen you produce a plan, spec, report, or any document longer than ~50 lines,\nwrite it to a .md file and open it in the user's editor:\n\n    open -a Mark \u003cfile\u003e.md        # macOS\n\nThe user will read and edit directly in Mark (a lightweight WYSIWYG Markdown\neditor with live file-watcher reload). When you see the file has changed on\ndisk, read the updated version — the user left feedback or corrections inline.\nTreat the diff as your next instruction.\n```\n\nThat's it. Your agent writes → Mark renders → you edit → the agent picks up the diff.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eUse case: review a plan before the agent executes\u003c/b\u003e\u003c/summary\u003e\n\n```\nYou: \"Write an implementation plan for the new auth module.\"\n\nAgent writes plan.md, runs `open -a Mark plan.md`.\n\nYou see a beautifully rendered doc with Mermaid diagrams and tables.\nYou delete step 3, rewrite step 5, add a note: \"— use JWT, not sessions\".\nSave.\n\nAgent detects the change:\n\"I see you removed step 3 and updated step 5 to use JWT. Proceeding with\nthe revised plan.\"\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eUse case: structured feedback on a report\u003c/b\u003e\u003c/summary\u003e\n\n```\nYou: \"Analyze our API latency data and give me a report.\"\n\nAgent writes report.md with tables, charts, and recommendations.\nOpens in Mark — you see everything rendered inline.\n\nYou add a line at the bottom:\n\"— Good analysis. But ignore the /health endpoint, it skews the p99.\n   Re-run without it.\"\n\nAgent reads the update, re-runs the analysis, appends the new results\nto the same file. Mark live-reloads. You see the diff without switching\nwindows.\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eUse case: knowledge base your agent maintains\u003c/b\u003e\u003c/summary\u003e\n\n```\nAdd to your agent config:\n\n    Maintain a living knowledge base in docs/kb.md.\n    After each significant decision, append a dated entry.\n    The user may reorganize or annotate entries in Mark —\n    respect their edits as authoritative.\n\nOpen docs/kb.md in Mark once. Leave it open.\nEvery time the agent appends, Mark live-reloads.\nYou curate, the agent accumulates. One file, two authors.\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eUse case: spec review with Mermaid diagrams\u003c/b\u003e\u003c/summary\u003e\n\n```\nYou: \"Design the data flow for the new ingestion pipeline.\"\n\nAgent writes spec.md:\n\n    ## Data Flow\n    ```mermaid\n    graph LR\n      A[S3 Upload] --\u003e B[Lambda Trigger]\n      B --\u003e C{Validate}\n      C --\u003e|pass| D[Transform]\n      C --\u003e|fail| E[Dead Letter Queue]\n      D --\u003e F[Write to Postgres]\n    ```\n\nIn the terminal this is raw text. In Mark it's a rendered diagram.\nYou drag the DLQ branch, add a retry step, save.\nThe agent sees your edit and adjusts the implementation.\n```\n\n\u003c/details\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### 11 MB. Not 200 MB.\n\n\u003c/div\u003e\n\n|  | **Mark** | Mark Text | Typora | Obsidian | iA Writer |\n|:---|:---:|:---:|:---:|:---:|:---:|\n| **App size** | **11 MB** | 200 MB | 100 MB | 300 MB | 30 MB |\n| **RAM at idle** | **61 MB** | 400 MB | 200 MB | 250 MB | 50 MB |\n| **True inline WYSIWYG** | **Yes** | Yes | Yes | No | Partial |\n| **Mermaid + KaTeX + Vega** | **All three** | Yes | Partial | Plugins | No |\n| **Live file-watcher reload** | **Yes** | No | No | Yes | No |\n| **Themes** | **33** | 6 | CSS | CSS | 3 |\n| **Open source** | **MIT** | MIT | No | No | No |\n| **Price** | **Free** | Free | $15 | $50/yr | $50 |\n| **Native macOS** | **WKWebView** | Chromium | Chromium | Chromium | AppKit |\n\nNo Chromium. No Node.js. No Electron. Just your system WebView doing what it was designed to do.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### But what about the AI-native tools?\n\n\u003c/div\u003e\n\nThe 2025–2026 wave brought a crop of tools built specifically for AI-agent workflows. Here's how Mark compares:\n\n| Tool | What it is | Where Mark differs |\n|:---|:---|:---|\n| **glow / mdcat** | Terminal-based MD renderers | No images, no Mermaid, no editing. Great for quick glances — not for 200-line specs with diagrams. |\n| **leaf** | Rust TUI viewer with watch mode | Still a terminal. No inline WYSIWYG, no rich rendering. |\n| **Ferrite** | Rust + egui editor | Split-view, not inline WYSIWYG. Different UX paradigm. |\n| **Marky** | Tauri CLI viewer (`marky plan.md`) | Viewer only, no editing. Mark does both. |\n| **Ritemark** | MD editor + built-in terminal | Electron-based, heavier footprint. |\n| **Obsidian** | Knowledge base with plugins | 300 MB, plugin ecosystem needed for basics. Overkill for reading agent output. |\n\nMark 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.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### Built by AI agents. For AI agents.\n\n\u003c/div\u003e\n\nThis project is its own proof of concept.\n\nThe 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).\n\nStructured plans. Module contracts. Knowledge graphs. Agents executing against verifiable specs.\n\nOne person. AI agents. A native desktop app that rivals what teams of five ship.\n\n\u003e *Mark is the tool that was missing from the workflow that built it.*\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### What's inside\n\n\u003c/div\u003e\n\n**The essentials** — true inline WYSIWYG (muya engine), multi-tab editing, folder sidebar, find in file \u0026 folder\n\n**The rendering** — Mermaid v11 diagrams, KaTeX math, Vega charts — all inline, no preview pane\n\n**The native feel** — system WKWebView, macOS menu bar, NSSpellChecker, real Cmd+shortcuts, ad-hoc code signing\n\n**The agent workflow** — file-watcher live reload, dirty-tab protection (Save/Discard/Cancel), preview mode on Finder open\n\n**The trust** — no telemetry, no cloud, no account, no plugin marketplace. Files are files. 2620 tests. MIT licensed.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### Status — v2.0.0-alpha.9\n\n\u003c/div\u003e\n\nDaily-driver quality for routine Markdown on Apple Silicon.\n\n**Editing**\n\n| Feature | Status |\n|:---|:---:|\n| True inline WYSIWYG (muya engine) | ✅ |\n| Multi-tab editing | ✅ |\n| Open Folder + sidebar file tree | ✅ |\n| Mermaid v11 / KaTeX / Vega inline rendering | ✅ |\n| Inline diff view (CodeMirror MergeView) | ✅ |\n| Find in file (Cmd+F) | 🔶 Beta |\n| Find in folder (in-process ripgrep) | 🔶 Beta |\n| Search context lines + include/exclude globs | Planned |\n\n**File handling**\n\n| Feature | Status |\n|:---|:---:|\n| Save / Save As / Open | ✅ |\n| Dirty-tab close prompt (Save / Discard / Cancel) | ✅ |\n| External-edit live reload (file-watcher) | ✅ |\n| Auto-detect file encoding (UTF-8, windows-1251, Shift_JIS, …) | ✅ |\n| v1 preferences migration (5-store, idempotent) | ✅ |\n| Recent documents | ✅ |\n| Preserve source encoding on save | Planned |\n| Manual encoding picker | Planned |\n| File move / rename commands | ✅ |\n| Print (Cmd+P → system dialog) | ✅ |\n| Export as HTML | ✅ |\n\n**Appearance \u0026 UX**\n\n| Feature | Status |\n|:---|:---:|\n| 33 themes + custom CSS | ✅ |\n| Live theme sync across windows | ✅ |\n| Preview mode on Finder double-click | ✅ |\n| Set as default `.md` handler | ✅ |\n| System font enumeration | ✅ |\n| Trackpad pinch-to-zoom | ✅ |\n| Window geometry persistence | ✅ |\n| Monospace font filter for code editor | Planned |\n\n**Native macOS**\n\n| Feature | Status |\n|:---|:---:|\n| System WKWebView (no Chromium) | ✅ |\n| Native menu bar + Cmd+shortcuts | ✅ |\n| Spell-check via NSSpellChecker | ✅ |\n| Screenshot capture (macOS screencapture) | ✅ |\n| Ad-hoc code signing (no Developer account) | ✅ |\n| Global shortcuts (Cmd+Shift+M show window) | 🔶 In progress |\n| Auto-update via Homebrew cask (ed25519 signed) | ✅ |\n\n**CLI \u0026 integration**\n\n| Feature | Status |\n|:---|:---:|\n| CLI flags (--safe-mode, --debug, --new-window) | ✅ |\n| `open -a Mark file.md` from terminal / agents | ✅ |\n| Pandoc export (HTML, PDF) | ✅ Requires Pandoc |\n| Pandoc progress indicator | Planned |\n| Image upload (PicGo, smms, aliyun) | Planned |\n\n**Platform**\n\n| Feature | Status |\n|:---|:---:|\n| macOS Apple Silicon | ✅ |\n| macOS Intel | Untested |\n| Linux | Planned |\n| Windows | Planned |\n| Multi-window support | Planned |\n\n\u003e Alpha is alpha. What works has **2700+ tests** and CI. What doesn't is tracked openly with a target milestone.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### Install\n\n\u003c/div\u003e\n\n**One command:**\n\n```sh\nbrew tap xronocode/mark \u0026\u0026 brew install --cask mark@alpha\n```\n\nGatekeeper handled automatically. No `sudo xattr` dance. No $99/year Apple Developer account.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eElectron stable channel\u003c/b\u003e (frozen at v1.2.3, security fixes only)\u003c/summary\u003e\n\n```sh\nbrew tap xronocode/mark \u0026\u0026 brew install --cask mark\n```\n\nBoth casks coexist. When v2.0 stable ships, `mark` rolls forward to Tauri.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eBuild from source\u003c/b\u003e\u003c/summary\u003e\n\nRust 1.79+ · Node 20 LTS · Xcode CLI Tools\n\n```sh\ngit clone https://github.com/xronocode/mark.git \u0026\u0026 cd mark/reborn-mark\nnpm ci\nnpm run tauri dev       # hot-reload\nnpm run tauri build     # release\n```\n\n```sh\nnpm test                                    # 374 renderer tests\ncd src-tauri \u0026\u0026 cargo test --bin mark       # 418 Rust tests\nnpm run test:e2e                            # Playwright\n```\n\n\u003c/details\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### Acknowledgements\n\n\u003c/div\u003e\n\nMark wouldn't exist without the people who built the foundation:\n\n- **[@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.\n- **[@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.\n- **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.\n- **The Tauri team** — for building a framework that makes 11 MB native apps possible without Chromium.\n\nMark 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.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### Contributing\n\n\u003c/div\u003e\n\nPRs welcome. Fork → branch from `main` → run tests → open a PR. CI gates merge on macOS + Linux. For larger changes, open an issue first.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\nMark is built on personal time.\n\nIf it saves you from reading agent specs in raw terminal — or from yet another 400 MB Electron install:\n\n\u003cbr\u003e\n\n\u003ca href=\"https://ko-fi.com/xronocode\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://ko-fi.com/img/githubbutton_sm.svg\" alt=\"Buy Me a Coffee at ko-fi.com\" /\u003e\n\u003c/a\u003e\n\n\u003cbr\u003e\u003cbr\u003e\n\n⭐ **Star the repo** · File issues · Send a PR\n\n\u003cbr\u003e\n\n[MIT](reborn-mark/LICENSE) · **[@xronocode](https://github.com/xronocode)**\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxronocode%2Fmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxronocode%2Fmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxronocode%2Fmark/lists"}