by zhitongblog
Provides a local‑first markdown editing environment that integrates directly with large language models via a bundled MCP server, supporting AI‑powered rewrite, per‑note git commits, encrypted GitHub sync, and rich authoring features such as WYSIWYG editing, KaTeX, Mermaid, and semantic search.
SoloMD combines a full‑featured markdown editor with an MCP endpoint, allowing AI agents (Claude Code, Codex, Cursor, etc.) to read and write the same vault of .md files that you edit locally. All data, keys, and history stay on your machine; no remote SoloMD service is involved.
solomd mcp-config to emit a JSON snippet that LLM clients can copy, then invoke solomd agent "<prompt>" to let the AI act on your vault.solomd‑mcp) exposing 13 tools, including 5 SoloMD‑only utilities (autogit_log, autogit_diff, autogit_rollback, sync_status, share_url).⌘S creates a local git commit inside the workspace; no external git required.⌘⇧F), wikilinks/backlinks, Pandoc export, slideshow mode.Q: Do I need an internet connection for AI features? A: Yes, the LLM calls are made directly from your machine to the provider you configure; SoloMD never proxies the traffic.
Q: Will SoloMD open any network ports?
A: No. The MCP server communicates only via stdio; it is read‑only unless you start it with --allow-write.
Q: Where are my API keys stored? A: In the OS keychain (macOS Keychain, Windows Credential Manager, or Linux libsecret). They are never written to disk or localStorage.
Q: Can I use SoloMD on a mobile device? A: Yes, there is a native iPad app available through the App Store.
Q: How does encryption work for sync? A: Files are encrypted locally with Argon2id‑derived keys and XChaCha20‑Poly1305 before being pushed to the remote git repository.
Q: Is there a way to run SoloMD without the bundled MCP server? A: The editor works independently; the MCP server is optional and only needed for AI agents that require direct vault access.
A markdown editor — and the bridge to your LLM.
🇨🇳 中文 README →
Download · Website · Security · FAQ · 中文站点
Your notes live in a folder. SoloMD is the editor on top — and the MCP endpoint Claude Code, Codex CLI, and Cursor can drive directly. Same .md files, two ways in.
Built on Tauri 2 + Vue 3 + CodeMirror 6. Universal macOS dmg ~32 MB. Free, MIT, no subscription, no SoloMD-hosted servers. Your notes, AI keys, embeddings index, and git history all stay on your machine.
The editor. WYSIWYG live edit (Typora-style), tabs + split panes, KaTeX + Mermaid, image paste to _assets/, slideshow mode (⌘⌥P), Vim mode, Hunspell + CJK proofread, semantic search (⌘⇧F), wikilinks + backlinks, Pandoc export. CJK encodings (GBK / Big5 / Shift-JIS) auto-detected.
The endpoint. A bundled solomd-mcp binary exposes the same vault to any MCP client — 13 tools out of the box, including 5 SoloMD-only ones (autogit_log, autogit_diff, autogit_rollback, sync_status, share_url) that no other markdown server has. Plus a solomd agent <prompt> CLI that hands off to Claude Code / Codex CLI with the MCP pre-wired.
| Feature | |
|---|---|
| AI rewrite, BYOK | 14 providers — OpenAI · Claude · Gemini · DeepSeek · Qwen · GLM · Kimi · Doubao · SiliconFlow · OpenRouter · Mistral · Groq · xAI · Ollama. Direct vendor calls. Keys in OS keychain. |
| GitHub-backed sync | Push your vault to a private GitHub repo on every save. Optional E2EE (Argon2id + XChaCha20-Poly1305). GitLab / Gitea / any HTTPS git URL works too. |
| AutoGit per note | Every ⌘S is a commit in a local .git inside the workspace. libgit2 vendored, no system git needed. Never auto-pushed. |
| MCP server bundled | solomd-mcp ships in the install. 13 tools (8 generic + 5 SoloMD-only). stdio only, no network port. Read-only by default; --allow-write opt-in. |
| Cloud-folder mode | If your vault lives in ~/Library/Mobile Documents/... or ~/Dropbox/..., SoloMD detects it and adds cross-device session restore on top — the OS already does the file sync. |
| Public read-only share | Command palette → copy solomd.app/share/?repo=...&path=... link. Renders any file in your public GitHub repo, no SoloMD account needed to view. |
After installing SoloMD on macOS / Linux:
# One-shot: print the MCP config snippet for your AI client.
solomd mcp-config
{
"mcpServers": {
"solomd": {
"command": "/Applications/SoloMD.app/Contents/Resources/solomd-mcp",
"args": ["--workspace", "/Users/me/Documents/SoloMD"]
}
}
}
Or just run an agent task end-to-end:
# Hands the prompt to claude / codex (whichever is on PATH) with
# solomd-mcp pre-wired, --allow-write enabled.
solomd agent "rewrite this week of dailies into a weekly review and commit it"
Path-traversal guarded; no network port; the LLM only sees what you point the workspace at.
Latest release: v3.6.2.
brew install --cask zhitongblog/solomd/solomd
Or download the dmg directly:
https://github.com/zhitongblog/solomd/releases/latest/download/SoloMD_3.6.2_universal.dmg
Or one-line shell install:
curl -fsSL https://solomd.app/install.sh | bash
SoloMD_3.6.2_x64_en-US.msiSoloMD_3.6.2_x64-setup.exe (NSIS)SoloMD_3.6.2_x64-portable.zip — no installerirm https://solomd.app/install.ps1 | iex
.AppImage (universal), .deb (Debian/Ubuntu), .rpm (Fedora/RHEL) — both architectures from the releases page.App Store — same engine, native iPad UI.
| SoloMD | Obsidian | Typora | Tolaria | |
|---|---|---|---|---|
| License | MIT | proprietary (free) | paid ($14.99) | AGPL |
| Stack | Tauri 2 (Rust + WebView) | Electron | Electron | Tauri 2 |
| Platforms | macOS · Win · Linux · iPad | macOS · Win · Linux · iOS · Android | macOS · Win · Linux | macOS · Linux |
| Installer | ~32 MB (mac) / ~10 MB (win) | ~120 MB | ~95 MB | ~25 MB |
| MCP server | ✅ bundled, 13 tools, 5 SoloMD-only | ❌ (community plugins) | ❌ | ✅ generic |
| Built-in AI rewrite | ✅ 14 BYOK providers | plugin only | ❌ | via external MCP |
| GitHub-backed sync | ✅ | ❌ (Obsidian Sync $96/yr) | ❌ | ❌ |
| End-to-end encryption | ✅ on your repo | ✅ on Obsidian's servers | ❌ | ❌ |
| Local RAG / semantic search | ✅ off by default | plugin only | ❌ | ❌ |
| Version history per note | ✅ AutoGit | plugin only | ❌ | ✅ |
| CJK encodings (GBK / Big5) | ✅ auto-detect | ❌ | ❌ | ❌ |
Detailed breakdowns: vs Obsidian · vs Typora · vs Tolaria · vs Marktext.
Pure client-side. Your .md files stay in the folder you chose. API keys live in the OS keychain (macOS Keychain / Windows Credential Manager / Linux libsecret), never in localStorage or any config file. AI requests go direct from your machine to the provider you picked — no SoloMD relay. RAG embeddings and the AutoGit repo are local-only. The MCP server speaks stdio, never opens a network port. The whole codebase is MIT and auditable.
E2EE sync uses Argon2id (RFC9106 default params) → XChaCha20-Poly1305 with deterministic nonces and path-as-AAD. Plaintext stays on your devices; the remote sees only ciphertext. Failed sync.json parsing is fail-closed — refuses to push rather than degrading to plaintext (a v3.0.x audit fix).
Full writeup: https://solomd.app/security.
Prereqs: Rust (stable), Node 18+, pnpm.
git clone https://github.com/zhitongblog/solomd.git
cd solomd/app
pnpm install
pnpm tauri dev # dev with hot reload
pnpm tauri build # release artifacts → src-tauri/target/release/bundle/
Linux additionally needs libdbus-1-dev for the keychain backend.
The MCP server is a separate crate at mcp-server/; the dev MCP harness used for end-to-end testing lives at dev-mcp/.
Issues and PRs welcome — open one. For a sense of direction, see docs/roadmap.md.
One maintainer, two front doors. Async on GitHub Discussions. Real-time chat:
MIT © 2026 xiangdong li. SoloMD stands on Tauri 2, Vue 3, CodeMirror 6, markdown-it, KaTeX, Mermaid, libgit2, Pandoc, Hunspell, keyring-rs, and rmcp. Sponsor on GitHub Sponsors or via solomd.app/#sponsor.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by modelcontextprotocol
A basic implementation of persistent memory using a local knowledge graph. This lets Claude remember information about the user across chats.
by topoteretes
Provides dynamic memory for AI agents through modular ECL (Extract, Cognify, Load) pipelines, enabling seamless integration with graph and vector stores using minimal code.
by basicmachines-co
Enables persistent, local‑first knowledge management by allowing LLMs to read and write Markdown files during natural conversations, building a traversable knowledge graph that stays under the user’s control.
by agentset-ai
Provides an open‑source platform to build, evaluate, and ship production‑ready retrieval‑augmented generation (RAG) and agentic applications, offering end‑to‑end tooling from ingestion to hosting.
by smithery-ai
Provides read and search capabilities for Markdown notes in an Obsidian vault for Claude Desktop and other MCP clients.
by chatmcp
Summarize chat messages by querying a local chat database and returning concise overviews.
by dmayboroda
Provides on‑premises conversational retrieval‑augmented generation (RAG) with configurable Docker containers, supporting fully local execution, ChatGPT‑based custom GPTs, and Anthropic Claude integration.
by qdrant
Provides a Model Context Protocol server that stores and retrieves semantic memories using Qdrant vector search, acting as a semantic memory layer.
by doobidoo
Provides a universal memory service with semantic search, intelligent memory triggers, OAuth‑enabled team collaboration, and multi‑client support for Claude Desktop, Claude Code, VS Code, Cursor and over a dozen AI applications.