a local markdown editor for the notes you share with ai.
a native macos markdown editor specialized for ai context management. live editor on the left (codemirror 6), rendered preview on the right (markdown-it + shiki + mermaid). minimal chrome, full catppuccin + matcha themes, macos vibrancy, orange octopus mascot. ~10 mb bundle.
built around one loop: collect notes β write β share with ai. nothing leaves your machine until you copy.
works with claude, chatgpt, gemini, your local agent β anywhere that reads plain markdown.
- live preview β debounced ~50 ms render with code blocks (shiki) and mermaid diagrams
- 5 themes β catppuccin latte / frappΓ© / macchiato / mocha + matcha (washi paper + kelly green) + system auto-switch
- reading mode β β. flips to distraction-free preview-only with iA-style typography
- command palette β βk, fuzzy-searchable, grouped by category
- find / replace β βf opens a themed codemirror search panel
- folder sidebar β load a folder of
.md, fuzzy-search across the tree, click to load - share to ai β ββ§c copies the current markdown to your clipboard, paste anywhere
- export to pdf β βp renders preview-styled html, opens system print dialog
- macos vibrancy with opt-in transparency
- auto-save off by default β βs commits. trust your fingers, not background daemons.
- fully keyboard-driven β every command has a shortcut, palette covers the rest
download the latest release β
grab marka.md.dmg β drag marka.md.app into /Applications β open.
grab marka.md_*-setup.exe β run.
Windows SmartScreen may show "Windows protected your PC". Click More info β Run anyway. marka.md is free + MIT β we don't sign Windows builds (paid certs aren't worth it for a free OSS project). Full source is right here if you'd rather build it yourself.
three flavors, pick what fits your distro:
- AppImage (works anywhere):
chmod +x marka.md_*.AppImageβ run. self-contained, no install step needed. - .deb (Debian / Ubuntu / Mint / Pop!_OS):
sudo dpkg -i marka.md_*_amd64.deb - .rpm (Fedora / RHEL / Rocky / openSUSE):
sudo dnf install marka.md-*.x86_64.rpm
no signing required on Linux β it's the freedom platform π§
requires bun (or npm), rust toolchain. on macOS: xcode command line tools. on Windows: MSVC build tools (Visual Studio installer β "Desktop development with C++"). on Linux: libwebkit2gtk-4.1-dev libsoup-3.0-dev + friends.
bun install
bun run tauri dev # native window with hmr
bun run tauri build # produces .dmg (macOS) / -setup.exe (Windows) under src-tauri/target/release/bundle/| key | does |
|---|---|
| βK | command palette |
| βO | open a .md file |
| ββ§O | open a folder of notes |
| βN | new untitled buffer |
| βS | save (manual β no autosave) |
| βB | toggle sidebar |
| β. | toggle reading mode |
| βF | find / replace in editor |
| βG | find next match |
| ββ§C | copy markdown to clipboard |
| βP | export to pdf |
| ββF | toggle fullscreen |
| β/ | help overlay |
| esc | close any popup |
| layer | choice |
|---|---|
| shell | tauri 2 (rust + webview), apple silicon target |
| frontend | react 19 Β· vite 7 Β· typescript 5.8 Β· bun |
| editor | codemirror 6 + @codemirror/lang-markdown + @codemirror/search |
| markdown | markdown-it + shiki + mermaid |
| icons | lucide-react |
| styling | css variables, no framework |
src/
βββ app.tsx # shell β state + layout
βββ main.tsx # react entry
βββ app.css # @imports + shell grid
βββ components/
β βββ primitives/ # button, icon, popover, overlay, kbd, tooltip
β βββ chrome/ # title-bar, breadcrumb, status-bar, logo
β βββ editor/ # editor, preview, splitter
β βββ files/ # sidebar, file-tree
β βββ overlays/ # palette, help, about, welcome, toast, drop
β βββ features/ # top-level barrel
βββ hooks/ # debounced, persisted-state, shortcuts, sync-scroll
βββ lib/ # markdown, theme, files, storage, commands, demo
βββ styles/ # tokens, globals + per-domain css
βββ assets/mascot/ # in-app sprites
src-tauri/
βββ src/lib.rs # rust entry + vibrancy + finder open-with
βββ tauri.conf.json # overlay title bar + bundle config
βββ capabilities/default.json # fs + opener + dialog scopes
βββ Cargo.toml
docs/
βββ auto-update.md # tauri updater wiring plan (post-notarization)
.github/workflows/release.yml # tauri-action; auto-skips signing if no certs
every folder exports its public api via index.ts. path alias @/* resolves to src/*.
shipped (v1.0):
- branded shell + mascot + welcome flow
- codemirror editor + live preview + resizable splitter + scroll sync (counter-based echo prevention)
- 5 themes (catppuccin family + matcha) + transparency
- code blocks: copy-on-hover + shiki highlighting
- mermaid diagrams
- ide-style sidebar β drag-to-move files/folders, right-click rename / new folder, ββ₯Z undo
- βK command palette grouped by category + β/ help overlay
- reading mode (β.) with iA-style typography
- find / replace (βF + βG)
- export to pdf (βP) with hardened print css
- about overlay (version + mit + github + author)
- apple-style toast (bottom-center, glass blur, auto-dismiss for info)
- title-bar window-drag + tooltip viewport clamping
- notarized macOS build signed with Apple Developer ID
- auto-updater via tauri-plugin-updater + minisign-signed bundles
- /changelog page on landing (fetched from gh releases)
planned (v1.x):
- "context tray" β multi-file bundling, β-click to stage, copy as one prompt blob
- session restore β remember last folder + open file + scroll position
- faq section on landing
- windows + linux builds
- intel mac support (currently apple silicon only)
local-first. nothing ever leaves your machine. no telemetry, no analytics, no accounts, no cloud sync. your .md files stay on disk. clipboard transfers happen only when you press ββ§C β and then they're yours, going wherever you paste them.
mit Β· matt enarle (@mattenarle10)