github zhitongblog/solomd v2.3.0
SoloMD v2.3.0

latest releases: v4.11.13, v4.11.12, v4.11.11...
3 months ago

⚠️ Known regression — please install v2.3.1 instead. The file tree shows "Loading…" forever and never lists files. Root cause: a Vue 3 ref identity-check that silently dropped the second root.value = assignment in refreshRoot(). Fixed in v2.3.1.

✨ Two new heroes

🔍 Local RAG — semantic search across your vault

Press ⌘⇧F / Ctrl+Shift+F. Type a natural-language query. Results rank by meaning, not just keyword match. Search "deployment" and you can also surface paragraphs about "rolling out", "shipping", "release".

  • 100% on-device. No model file download, no network call ever — we ship a deterministic hashed character-trigram embedder that runs in our Rust process.
  • Off by default. Settings → Semantic search to opt in.
  • Index lives at <workspace>/.solomd/embeddings.sqlite — a plain SQLite file, auto-gitignored under AutoGit.
  • The biggest field-wide gap in note-taking apps right now: Obsidian, Tolaria, MarkText all lack it.

✍️ WYSIWYG live edit mode

A new fourth view mode (cycle: edit → split → liveEdit → preview). Markdown formatting renders inline as you type — Typora / Obsidian Live Preview style. The new pen-on-paper icon in the toolbar (or Ctrl+Shift+P) toggles it on. Closes #26.

  • # Heading renders larger; **bold** renders bold; markup reappears when the cursor enters the line.
  • Phase 1 covers headings, bold, italic, strikethrough, inline code, links, blockquotes, fenced code blocks — the 30% of markdown that gets used 90% of the time.

⚡ Performance & platform

  • Windows file-tree ~10× faster. Switched list_dir from per-entry metadata() (one Windows syscall each) to file_type() (reuses the bulk dir-scan's cached entry type). Massive on big folders + antivirus on-access scanning.
  • Windows portable .zip. New SoloMD_2.3.0_x64-portable.zip artifact alongside .msi / .exe — unzip and run, no installer. Closes #27.

🤖 Internal infrastructure

  • solomd-dev-mcp Tauri dev-bridge. A #[cfg(debug_assertions)]-gated localhost JSON-RPC bridge that lets Claude (or any external tool) drive the live Vue UI — clicks, DOM reads, event dispatch — for end-to-end self-test. Zero footprint in release builds. Closes the global "every client project ships with CLI + MCP for self-test" rule.

🌐 Website + docs

  • Notion-style narrative homepage (For writers / researchers / developers + a "Built different" stripe of 5 principles).
  • New /community page powered by GitHub Discussions, with giscus inline comments on every blog post.
  • /security gains a new section #5 explaining how the local RAG index handles your data (spoiler: never leaves the disk).
  • README rewritten — more concise, leads with "Local-first Markdown editor with semantic search, version history, and 14 AI providers."

📦 Downloads

Platform File
macOS (Apple Silicon + Intel) SoloMD_2.3.0_universal.dmg — notarized
Windows SoloMD_2.3.0_x64-setup.exe (NSIS) · SoloMD_2.3.0_x64_en-US.msi (MSI) · SoloMD_2.3.0_x64-portable.zip (no installer)
Linux x86_64 .AppImage · .deb · .rpm
Linux aarch64 .AppImage · .deb · .rpm

What's next

v2.4 — "Bridge to anywhere" (already in development, multi-day rollouts authorized):

  • CLI + MCP server first-class (in-app Settings → Integrations panel, MCP bundled as Tauri sidecar, CI-published solomd-mcp tarballs)
  • HTTP capture endpoint (POST localhost:7777/capture) with token auth
  • Inbox workflow (Cmd+E toggle, sidebar count badge)
  • Browser web clipper (Chrome + Firefox WebExtension)
  • iOS Shortcuts integration + public reading mode

Full diff: v2.2.1...v2.3.0


🤖 Built with parallel git-worktree agents — see ~/.claude/CLAUDE.md for the global self-test rules that drove this release.

Don't miss a new solomd release

NewReleases is sending notifications on new releases.