GitHub

A snappy offline-first markdown editor featuring:

  • live preview via marked.js
  • images support: add with drag-and-drop or paste from clipboard
  • syntax highlighting via CodeMirror
  • user-friendly shortcuts

It runs as a local web server, you access it in your browser.

Screenshot of ZenMarked in action

ZenMarked being used to update its own README

Installation

You can install with:

pip install zenmarked

If you use uv, you can install it with:

uv tool install zenmarked

Or skip installation and just use it through uvx like so: uvx zenmarked

Usage

zenmarked [FILE.md] [options]
Argument Description
FILE.md Optional. File to open on start (created if it doesn't exist). Its directory becomes the working directory.
Option Description
--port PORT Port to listen on (default: auto-assign)
--image-dir PATH Directory for uploaded images (default: images/ inside working dir)
--no-autosave Disable auto-save (use Ctrl+S only)
--theme THEME Color theme: light or dark (default: dark)
--mode MODE View mode: split, edit, or preview (default: split)
--no-browser Don't auto-open browser on start

Examples

# Open CWD — sidebar shows all .md files, create/edit freely
zenmarked
# Open a specific file
zenmarked notes.md
# Light theme, custom port
zenmarked journal.md --theme light --port 8080
# Open in preview-only mode (editor hidden)
zenmarked draft.md --mode preview
# Custom image directory, no autosave
zenmarked docs/readme.md --image-dir docs/assets/imgs --no-autosave

Screenshots

Screenshot of zenmarked in dark mode

Dark mode

Features

  • 3-column layout: sidebar (file list + image gallery) + editor + live preview
  • View modes: split (editor + preview), edit (editor only), or preview (preview only) — toggle via the segmented control in the sidebar or cycle with Ctrl+\
  • Markdown syntax highlight via CodeMirror
  • Live preview via marked.js, updates as you type
  • Auto-save enabled by default, Ctrl+S to save manually at any time
  • Image support: drag-and-drop, click drop zone, or paste from clipboard
  • Image insertion modal: alt text, caption, alignment, custom width
  • Click image in preview to edit its properties
  • Rename image right-click image in the gallery to rename it
    • references are updated automatically across all .md files in the working dir
  • Smart URL paste: select text in editor, paste a URL → auto-creates a markdown link
  • Light / Dark themes

Image paths

Images are stored in ./images/ (relative to the working directory) by default, and inserted into markdown as ./images/filename.png.

The image target directory can be overriden through option --image-dir PATH

Keyboard shortcuts

Shortcut Action
Ctrl+S Save current file
Alt+N Create new file
Ctrl+\ Cycle view mode (split → edit → preview)
Escape Close modals
Ctrl+B Bold
Ctrl+I Italic
Ctrl+E Inline code
Ctrl+K Insert link
Ctrl+Shift+7 Ordered list
Ctrl+Shift+8 Unordered list
Ctrl+Shift+. Blockquote

Read the original on github.com ↗