perplexity-cli
🧠 A simple command-line client for the Perplexity API. Ask questions and receive answers directly from the terminal! 🚀🚀🚀
20KB Markdown-native WYSIWYG editor for React, built for AI streaming, human editing, huge files, macOS, Web, and agent…
A WYSIWYG Markdown editor powered by a from-scratch, Markdown-native engine of about 20 KB.
Built for fast human editing, huge Markdown files, live synchronization, and streaming AI output.
Download for Mac: Apple Silicon · Intel
DOMD's WYSIWYG editing happens directly on Markdown.
The Markdown document itself is the editing source of truth.
It is not built on top of ProseMirror, Slate, Lexical, or any general-purpose rich-text framework. Parsing, rendering, editing, undo/redo, streaming AI injection, and chunked file loading are all modeled as deterministic state changes inside the kernel.
Rendering happens only where changes occur, and the entire editing stack fits in about 20 KB after Brotli compression.
DOMD supports conflict-free merging within a paragraph instead of treating each paragraph as a single last-write-wins value. Two devices can edit different parts of the same paragraph offline, exchange their saved states later, and preserve both changes. Offline state exchange and real-time synchronization share the same CRDT foundation, but can be adopted independently.
The editor kernel itself is CRDT-agnostic. It emits a structured operation stream for ordinary edits; an optional CRDT plugin observes that stream, translates each change into transactions on nested Yjs shared types, and maintains a mergeable Y.Doc replica. Yjs encodes that replica as document updates that can be persisted, transferred, and applied in any order. Because the CRDT boundary is an adapter around the operation stream, product and interaction code does not need to be rebuilt around Yjs: a completed editor feature can opt in by attaching the plugin.
Try the split-screen CRDT merge playground
DOMD can keep multiple editors on the same Markdown document synchronized as they type. Fine-grained edits flow to other replicas, concurrent changes converge through Yjs, and remote cursor presence can travel alongside the content. Incoming changes are replayed only onto the affected nodes instead of replacing the document, preserving DOMD's localized rendering behavior during live editing.
The kernel exposes three integration points for this path: subscribeRenderDataOps emits local editing operations, applyExternalRenderDataOps incrementally applies remote operations, and cursor snapshots and subscriptions expose presence data. The optional realtime-sync adapter translates between these APIs and nested Yjs shared types, providing a reusable synchronization, convergence, and presence layer. It is independent of business workflows and product state, so different editing products can adopt it without rewriting DOMD's input, history, or rendering systems.
Try the real-time sync playground
AI models emit Markdown token by token, often splitting in the middle of syntax. DOMD ingests those streams chunk by chunk and renders them live.
Open fences, half-built tables, and partial lists render correctly mid-stream, then absorb their real terminators without flicker when they arrive. Comfortable at any chunk size, through 20,000-line documents and beyond.
DOMD can also be used as a Markdown-native input surface for comments, prompts, CMS fields, chat boxes, issue forms, or anywhere users write structured text.
Markdown renders while typing, while the underlying value stays Markdown. For chat-style inputs, Enter can submit and Shift + Enter can insert a new line.
A 5 KB note and a 1 MB document open at virtually the same perceptual speed.
This is rendered WYSIWYG Markdown, not a plain-text viewer.
In Finder, press space — DOMD's own Quick Look extension takes over rendering.
The Mac app is designed to feel lightweight and native. Loading a rendered .md feels close to the system opening a .txt.
A plain Markdown file workflow — no project tree, no sidebar, no tabs, no bundled sync service, no account. Files stay on your device.
Download for macOS: Apple Silicon · Intel
Open the editor and start writing WYSIWYG in the browser — or drag a .md straight onto the page to edit it in place. Everything runs locally; files never leave your device.
The macOS build ships with a command-line tool domd-cli that lets agents drive the window directly.
This turns DOMD into a local Markdown rendering surface for agents, scripts, launchers, and automation tools.
It supports opening new windows, streaming writes, and rewriting selections. A model's streaming response can be piped straight into domd-cli insert — tokens land in the document as they arrive and render as rich text in real time.
The demo at the top of the page was recorded from an Alfred workflow that calls the GPT API and streams the response incrementally into the document.
npm install npm run dev
For native macOS development:
npm run tauri dev
Windows native builds are not currently supported.
See CONTRIBUTING.md for full setup and contribution notes.
DOMD is a product-first project. The application layer, including the macOS app, web app, helper libraries, and DOMD kernel plugins, is open-source under the MIT License for learning, personal use, contribution, and transparency.
The core editor engine is independently published on npm as @do-md/core-react and separately licensed under the PolyForm Noncommercial 1.0.0 license. The package provides DOMD's Markdown editing and rendering capabilities.
You may use @do-md/core-react for evaluation, personal projects, non-commercial projects, including non-commercial open-source projects, experiments, and prototypes.
Commercial use requires prior written authorization. This includes commercial embedding, SaaS/product integration, redistribution, or offering DOMD as part of a paid product, SDK, editor component, or hosted service.
For commercial licensing, please contact the project author.
more like this
🧠 A simple command-line client for the Perplexity API. Ask questions and receive answers directly from the terminal! 🚀🚀🚀
Comprehensive analytics dashboard for AI coding agents — Cursor, Windsurf, Claude Code, VS Code Copilot, Zed, Antigravi…
Free open-source Cloudflare R2 desktop client and S3 GUI for macOS, Windows, and Linux. Manage Cloudflare R2, AWS S3, M…
search projects, people, and tags