zhitongblog/solomd
요약
SoloMD는 에이전트 인터페이스가 통합된 마크다운 기반의 로컬 에디터입니다. MCP 엔드포인트를 통해 Claude Code나 Cursor와 같은 외부 도구와 연동되며, 모든 데이터와 인덱스를 사용자 기기에 안전하게 보관합니다.
핵심 포인트
- MCP 엔드포인트를 제공하여 외부 AI 클라이언트와 보관함 공유 가능
- Tauri 2와 Vue 3 기반의 가볍고 빠른 로컬 실행 환경
- YAML 기반의 선언적 에이전트 레시피(recipes) 기능 지원
- AutoGit 브랜치를 통한 안전한 AI 쓰기 작업 제어
에이전트가 상주하는 에디터.
🌐 中文 · 日本語 · 한국어 · Deutsch · Français · Español · Português · Italiano · Polski · Nederlands · Türkçe · Svenska · Українська · 🪞 Gitee mirror → (중국에서 더 빠른 다운로드 가능)
Download v4.0 · Launch post · How we built it · Website · Security
당신의 노트는 폴더에 저장됩니다. SoloMD는 그 위에 구축된 에디터입니다. 에디터 내부에는 일급 에이전트 인터페이스 (agent surface)가 있으며, 외부에서는 Claude Code / Cursor가 구동할 수 있는 MCP 엔드포인트 (endpoint)를 제공합니다. 동일한 .md 파일을 사용합니다. 당신의 보관함 (vault)과 채팅하세요. 키보드 앞에 없을 때 실행될 레시피 (recipes)를 예약하세요. 동일한 보관함을 어떤 MCP 클라이언트에게도 전달할 수 있습니다.
Tauri 2 + Vue 3 + CodeMirror 6를 기반으로 구축되었습니다. 범용 macOS dmg 파일 크기는 약 32 MB입니다. 무료이며, MIT 라이선스이고, 구독이 필요 없으며, SoloMD가 호스팅하는 서버도 없습니다. 당신의 노트, AI 키, 임베딩 인덱스 (embeddings index), 그리고 git 히스토리는 모두 당신의 기기에 머뭅니다.
에디터 (The editor). WYSIWYG 실시간 편집 (Typora 스타일), 탭 + 분할 창 (split panes), KaTeX + Mermaid, _assets/로 이미지 붙여넣기, 슬라이드쇼 모드 (⌘⌥P), Vim 모드, Hunspell + CJK 교정, 시맨틱 검색 (semantic search, ⌘⇧F), 위키링크 (wikilinks) + 백링크 (backlinks), Pandoc 내보내기. CJK 인코딩 (GBK / Big5 / Shift-JIS) 자동 감지.
엔드포인트 (The endpoint). 번들로 포함된 solomd-mcp 바이너리는 어떤 MCP 클라이언트에게도 동일한 보관함을 노출합니다. 다른 마크다운 서버에는 없는 5개의 SoloMD 전용 도구 (autogit_log, autogit_diff, autogit_rollback, sync_status, share_url)를 포함하여 총 13개의 도구를 즉시 사용할 수 있습니다. v4.0에서는 --workspace path1 --workspace path2 연합 (federation) 기능이 추가되어, 하나의 MCP 세션으로 여러 보관함을 다룰 수 있습니다. 또한 MCP가 사전 연결된 상태로 Claude Code / Codex CLI에 작업을 넘겨주는 solomd agent <prompt> CLI를 제공합니다.
에이전트 인터페이스 (The agent surface, v4.0). 우측 에이전트 패널: 보관함과 스트리밍 채팅, [[wikilink]] 인용, 인라인 도구 호출 (tool-call) 카드, Insert / Copy 버튼을 통해 답변을 활성 노트에 바로 삽입할 수 있습니다. 또한 <workspace>/.solomd/agents/*.yml에 YAML 형식으로 선언적인 **레시피 (recipes)**를 작성할 수 있습니다 — cron / on-save / on-commit / on-tag-add 지원.
/ 수동 트리거 (manual triggers). 모든 에이전트의 쓰기 작업은 main 브랜치에 반영되기 전, 사용자가 수락하거나 거부할 수 있는 고유의 AutoGit 브랜치에 기록됩니다.
; 쓰기 제한 (write-cap) 기본값 5; 작업 트리 (working tree)가 더러운(dirty) 상태일 때는 시작을 거부함; 실행당 read_agent_trace로 확인할 수 있는 재현 가능한 trace.jsonl.
MCP 도구.
| 기능 | |
|---|---|
| 에이전트 패널 (Agent Panel) (v4.0) | Outline / Backlinks / Tags / History와 대등한 스트리밍 방식의 chat-with-vault. 도구 호출 (Tool-call) 카드는 인라인으로 확장됩니다. 응답은 삽입(Insert) / 활성 에디터로 복사(Copy to active editor)가 가능하며, 실행 기록은 .solomd/agent-runs/ 아래에 일반 마크다운 (plain markdown) 형식으로 유지됩니다. |
| 예약된 레시피 (Scheduled recipes) (v4.0) | 보관소 (vault) 내의 YAML 작업 (jobs). AutoGit 브랜치 샌드박스 + 병합 전 수락/거부 UI. 실행당 쓰기 제한 (write-cap) (기본값 5, 최대 50). 11개의 레시피로 구성된 쿡북 (cookbook)이 트리 내에 포함되어 있습니다. |
| 재현 가능한 트레이스 (Replayable trace) (v4.0) | 단계별 trace.jsonl (prompt / model_call / tool_call / tool_result / git_commit). 특정 단계부터 재현 (Replay-from-step)하여 되감기 및 재실행이 가능합니다. |
| 워크스페이스 연합 (Workspace federation) (v4.0) | solomd-mcp --workspace path1 --workspace path2. 하나의 Claude Desktop 세션으로 여러 개의 보관소 (vaults)를 사용합니다. MCP 프로필은 설정(Settings) → 통합(Integrations) UI에서 관리합니다. |
| Ollama 우선 지원 (Ollama first-class) (v4.0) | localhost:11434에서 자동 감지. 세 가지 모델 프리셋 (qwen2.5:1.5b/7b/14b). 클라우드 비용이 전혀 들지 않는 자율 루프 (autonomous loops)를 위해 provider: local 레시피 별칭을 제공합니다. |
| AI 재작성, BYOK (Bring Your Own Key) | 14개의 제공업체 — OpenAI · Claude · Gemini · DeepSeek · Qwen · GLM · Kimi · Doubao · SiliconFlow · OpenRouter · Mistral · Groq · xAI · Ollama. 벤더에 직접 호출합니다. 키는 OS 키체인 (keychain)에 저장됩니다. |
| GitHub 기반 동기화 | 저장할 때마다 보관소를 개인 GitHub 리포지토리 (private GitHub repo)로 푸시합니다. 선택적 종단간 암호화 (E2EE) (Argon2id + XChaCha20-Poly1305)를 지원합니다. GitLab / Gitea / 모든 HTTPS git URL도 작동합니다. |
| 노트별 AutoGit | 모든 ⌘S는 워크스페이스 내부의 로컬 .git에 커밋됩니다. libgit2가 포함되어 있어 시스템 git이 필요하지 않습니다. 자동으로 푸시되지 않습니다. |
| MCP 서버 포함 | solomd-mcp가 설치 시 함께 제공됩니다. 13개의 도구 (8개의 범용 도구 + 5개의 SoloMD 전용 도구). stdio 전용이며 네트워크 포트는 사용하지 않습니다. 기본적으로 읽기 전용이며, --allow-write 옵션으로 쓰기 권한을 선택할 수 있습니다. |
| REST API (v4.0) | 로컬호스트 (Localhost) 전용, 토큰 인증 사용. |
아직 MCP를 지원하지 않는 클라이언트(Alfred / Raycast / n8n / 사용자 정의 스크립트 등)를 위해 MCP와 동일한 인터페이스를 제공합니다. |
BYOK 비용 측정기 (v4.0) |
제공자별 실행 토큰 사용량 카운터, 선택 사항 (opt-in). 설정(Settings) → 통합(Integrations).
클라우드 폴더 모드 |
Vault가 ~/Library/Mobile Documents/... 또는 ~/Dropbox/...에 있는 경우, SoloMD가 이를 감지하여 기기 간 세션 복구 기능을 추가합니다. 파일 동기화는 OS가 이미 수행합니다.
공개 읽기 전용 공유 |
커맨드 팔레트(Command palette) → solomd.app/share/?repo=...&path=... 링크 복사. 공개 GitHub 저장소의 모든 파일을 렌더링하며, 보기 위해 SoloMD 계정이 필요하지 않습니다.
macOS / Linux에 SoloMD를 설치한 후:
1. Vault와 채팅하기. 오른쪽의 에이전트 패널(Agent Panel)을 엽니다 (숨겨져 있다면 ⌘⇧P → "View: Toggle Agent Panel"). 사용자의 노트와 함께 스트리밍 방식의 멀티턴(multi-turn) 대화가 가능하며, 도구 호출(tool-call) 카드는 모든 읽기/쓰기 작업을 인라인으로 보여줍니다. 답변이 너무 긴가요? Insert를 누르면 커서가 있는 활성 노트에 내용을 삽입(선택 영역 교체)하고, Copy를 누르면 클립보드에 복사됩니다.
2. 레시피(Recipe) 예약하기. 설정(Settings) → 레시피(Recipes) → 요리책 찾아보기(Browse cookbook). 11개의 스타터가 준비되어 있습니다: 주간 검토(weekly review), 일일 요약(daily summary), TODO 추출(TODO extraction), 번역 작업(translation pass), 인용 정리(citation cleanup), CJK 교정 에이전트(CJK proofread agent), 링크 유실 탐지기(link-rot detector), 프론트매터 정규화(frontmatter normalizer), 개요를 블로그로 변환(outline-to-blog), 리팩토링 작업(refactor pass), 주간 태그 분류(weekly tag triage). 하나를 설치하고, 프롬프트를 편집한 뒤 실행하세요.
3. 다른 LLM 클라이언트에서 동일한 Vault 사용하기. 한 번에 해결하기:
# AI 클라이언트를 위한 MCP 설정 스니펫을 출력합니다.
solomd mcp-config
{
"mcpServers": {
"solomd": {
...
Claude Desktop / Cursor 등에 붙여넣으세요. 멀티 Vault 연합(multi-vault federation)을 위해 --workspace를 반복합니다:
"args": [
"--workspace", "/Users/me/Documents/SoloMD",
"--workspace", "/Users/me/Documents/work-notes"
...
4. 또는 claude / codex CLI에 직접 프롬프트 전달하기:
solomd agent "rewrite this week of dailies into a weekly review and commit it"
경로 탐색(Path-traversal)이 보호됩니다. 네트워크 포트가 없습니다. LLM은 사용자가 워크스페이스(workspace)로 지정한 내용만 볼 수 있습니다.
최신 릴리스: v4.0.0.
brew install --cask zhitongblog/solomd/solomd
또는 dmg를 직접 다운로드하세요:
또는 한 줄 셸 (shell) 설치:
curl -fsSL https://solomd.app/install.sh | bash
SoloMD_4.0.0_x64_en-US.msi
SoloMD_4.0.0_x64-setup.exe
(NSIS)SoloMD_4.0.0_x64-portable.zip
— 설치 프로그램 없음
irm https://solomd.app/install.ps1 | iex
winget install solomd
.AppImage
(universal),.deb
(Debian/Ubuntu),.rpm
(Fedora/RHEL) — 릴리스 (releases) 페이지에서 두 아키텍처 모두 제공됩니다. - Arch 사용자:
solomd-bin
AUR에서 사용 가능.
App Store — 동일한 엔진, 네이티브 iPad UI.
번들로 포함된 solomd-mcp 서버는 모든 마크다운 (Markdown) 파일 폴더를 대상으로 실행됩니다 — Claude / Cursor / Cline / Continue / Zed에서 여러분의 볼트 (vault)를 제어하기 위해 SoloMD 자체를 설치할 필요는 없습니다. 각 클라이언트를 위한 스니펫 (snippets)을 설치하세요:
| 클라이언트 (Client) | 설정 스니펫 (Config snippet) |
|---|---|
| Claude Desktop | marketplace/client-docs/claude-desktop.md |
| Claude Code | marketplace/client-docs/claude-code.md |
| Cursor | marketplace/client-docs/cursor.md |
| Cline (VS Code) | marketplace/client-docs/cline.md |
| Continue.dev | marketplace/client-docs/continue.md |
| Zed | marketplace/client-docs/zed.md |
다음과 같이 제공됩니다:
스킬 팩 (Skill Pack)— 11개의 참조 에이전트 레시피 (Agent Recipes) (주간 검토, 할 일 추출, 링크 제안 등)가 포함되어 있으며, <vault>/.solomd/agents/에 바로 넣을 수 있습니다. 모든 릴리스에 포함되어 있습니다.
Claude Code 스킬 (Claude Code Skill)— SKILL.md + install.sh가 포함되어 있으며, solomd-mcp를 ~/.claude/mcp.json에 연결하고 패턴 및 스타터 레시피와 함께 13개의 도구를 Claude Code에 노출합니다.
Smithery— marketplace/smithery/에 있는 smithery.yaml + Dockerfile (제출 대기 중).
Awesome MCP Servers— 세 개의 가장 큰 커뮤니티 인덱스 (punkpeye/, appcypher/, wong2/awesome-mcp-servers, 합계 약 14k 포크)에 대한 PR 항목이 marketplace/awesome-mcp/에 포함되어 있습니다.
전체 개요 + 제출 상태: marketplace/README.md.
| SoloMD v4.0 | Obsidian | Typora | Tolaria |
|---|---|---|---|
| License | MIT | proprietary (free) | paid ($14.99) |
| Stack | Tauri 2 (Rust + WebView) | Electron | Electron |
| Platforms | macOS · Win · Linux · iPad | macOS · Win · Linux · iOS · Android | macOS · Win · Linux |
| Installer | ~32 MB (mac) / ~10 MB (win) | ~120 MB | ~95 MB |
| Inline Agent Panel | ✅ v4.0 | 🟡 paid plugins (Smart Composer / Copilot) | ❌ |
| Scheduled agent recipes | ✅ v4.0 | ❌ | ❌ |
| AutoGit branch sandbox + accept/reject | ✅ v4.0 | ❌ | ❌ |
| Replayable agent trace | ✅ v4.0 | ❌ | ❌ |
| Multi-workspace MCP federation | ✅ v4.0 | ❌ | ❌ |
| MCP server bundled | ✅ 13 tools, 5 SoloMD-only | ❌ (community plugins) | ❌ |
| Built-in AI rewrite | ✅ 14 BYOK providers | plugin only | ❌ |
| GitHub-backed sync | ✅ | ❌ (Obsidian Sync $96/yr) | ❌ |
| End-to-end encryption | ✅ on your repo | ✅ on Obsidian's servers | ❌ |
| ... | |||
| 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.
Agent safety rails (v4.0). Every recipe run starts on its own AutoGit branch — your main stays untouched until you click Accept on the diff. Per-run write-cap (default 5, hard ceiling 50) prevents runaway loops. Recipe runner refuses to start when the working tree is dirty (no agent commit will ever sweep your work-in-progress). Path-traversal guards reject ..
사용자가 제공한 경로를 허용하는 모든 Tauri / MCP / REST 엔드포인트에서 .. 세그먼트와 절대 경로 (absolute paths)를 사전에 차단하여 경로 탐색 (Path-traversal) 방어 기능을 수행합니다.
종단간 암호화 (E2EE) 동기화는 Argon2id (RFC9106 기본 파라미터)를 사용하며, 결정론적 논스 (deterministic nonces) 및 경로를 추가 인증 데이터 (path-as-AAD)로 사용하는 XChaCha20-Poly1305를 사용합니다. 평문 (Plaintext)은 사용자의 기기에만 머물며, 원격 서버는 암호문 (ciphertext)만 볼 수 있습니다. sync.json 파싱 실패 시에는 'fail-closed' 방식으로 동작하며, 평문으로 강등되는 대신 푸시를 거부합니다 (v3.0.x 감사 수정 사항).
전체 기술 보고서: https://solomd.app/security.
사전 요구 사항: Rust (stable), Node 18+, pnpm.
git clone https://github.com/zhitongblog/solomd.git
cd solomd/app
pnpm install
...
Linux의 경우 키체인 (keychain) 백엔드를 위해 추가로 libdbus-1-dev가 필요합니다.
MCP 서버는 mcp-server/에 있는 별도의 크레이트 (crate)이며, 엔드 투 엔드 (end-to-end) 테스트에 사용되는 개발용 MCP 하네스 (harness)는 dev-mcp/에 위치합니다. 엔드 투 엔드 테스트 진입점은 scripts/v4-self-test.sh입니다 (전체 커버리지를 위해 --with-release --with-ollama --with-ui 옵션과 함께 실행하세요).
이슈 (Issues) 및 풀 리퀘스트 (PRs)를 환영합니다 — 직접 생성해 주세요. 방향성을 파악하려면 docs/roadmap.md를 참조하세요. v4.0 빌드 로그는 solomd.app/blog/v4-0-0-how-we-built-it/ 에 있으며, PR을 보내기 전에 엔지니어링 원칙을 이해하고 싶다면 여기서부터 시작하세요.
한 명의 유지 관리자, 두 개의 소통 창구. GitHub Discussions를 통해 비동기식으로 소통하세요. 실시간 채팅:
Telegram (국제): @SOLOMDAPP — 릴리스 공지 + 채팅
WeChat (중국어): QR 코드를 스캔하여 추가하세요 —
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기