Skip to content

Latest commit

 

History

History
171 lines (114 loc) · 16.6 KB

File metadata and controls

171 lines (114 loc) · 16.6 KB

SoloMD

Редактор, у якому живуть агенти.

Latest release License: MIT Downloads Website

🌐 English · 中文 · 日本語 · 한국어 · Deutsch · Français · Español · Português · Italiano · Polski · Nederlands · Türkçe · Svenska

Завантажити v4.0 · Допис до релізу · Сайт · Безпека

SoloMD Editor

Ваші нотатки живуть у теці. SoloMD — це редактор поверх неї, з першокласним агентським інтерфейсом усередині редактора та MCP-точкою входу, якою Claude Code / Cursor можуть керувати ззовні. Ті самі .md-файли. Спілкуйтеся зі своїм сховищем у чаті. Плануйте recipes, що виконуються, коли вас немає за клавіатурою. Передавайте те саме сховище будь-якому MCP-клієнту.

Побудовано на Tauri 2 + Vue 3 + CodeMirror 6. Універсальний macOS dmg ~32 МБ. Безкоштовно, MIT, без підписок, без серверів, що хостить SoloMD. Ваші нотатки, AI-ключі, індекс embeddings та історія Git — усе залишається на вашій машині.

Три половини одного продукту

Редактор. WYSIWYG-редагування наживо (стиль Typora), вкладки + розділені панелі, KaTeX + Mermaid, вставка зображень у _assets/, режим слайд-шоу (⌘⌥P), Vim-режим, Hunspell + перевірка орфографії CJK, семантичний пошук (⌘⇧F), wikilinks + зворотні посилання, експорт через Pandoc. Кодування CJK (GBK / Big5 / Shift-JIS) визначаються автоматично.

Точка входу. Поставлений у комплекті бінарник solomd-mcp відкриває те саме сховище будь-якому MCP-клієнту — 13 інструментів за замовчуванням, у тому числі 5 власних SoloMD (autogit_log, autogit_diff, autogit_rollback, sync_status, share_url), яких немає в жодному іншому Markdown-сервері. v4.0 додає федерацію --workspace path1 --workspace path2 — одна MCP-сесія, багато сховищ. Плюс CLI solomd agent <prompt>, який передає Claude Code / Codex CLI із заздалегідь підключеним MCP.

Агентський інтерфейс (v4.0). Панель агента праворуч: чат зі сховищем у режимі стрімінгу, цитати [[wikilink]], картки викликів інструментів inline, кнопки Вставити / Копіювати скидають відповідь у активну нотатку. Плюс декларативні recipes як YAML у <workspace>/.solomd/agents/*.yml — тригери cron / on-save / on-commit / on-tag-add / ручні. Кожна записувальна дія агента потрапляє у власну гілку AutoGit, яку ви приймаєте або відхиляєте, перш ніж вона торкнеться main; типовий write-cap 5; відмовляється стартувати, якщо робоче дерево брудне; повторюваний trace.jsonl на запуск з MCP-інструментом read_agent_trace.

Функція
Панель агента (v4.0) Чат зі сховищем у режимі стрімінгу нарівні з Outline / Backlinks / Tags / History. Картки викликів інструментів розгортаються inline; відповідь Вставити / Копіювати до активного редактора; журнал запусків зберігається як чистий Markdown у .solomd/agent-runs/.
Заплановані recipes (v4.0) YAML-завдання у вашому сховищі. Пісочниця гілки AutoGit + UI accept/reject перед мерджем. Write-cap на запуск (за замовчуванням 5, максимум 50). Кулінарна книга з 11 recipes у дереві.
Повторюваний trace (v4.0) trace.jsonl на крок (prompt / model_call / tool_call / tool_result / git_commit). Replay-from-step перемотує і запускає знову.
Федерація робочих просторів (v4.0) solomd-mcp --workspace path1 --workspace path2. Одна сесія Claude Desktop, багато сховищ. UI MCP-профілів у Налаштування → Інтеграції.
Ollama першокласно (v4.0) Авто-визначення на localhost:11434. Три пресети моделей (qwen2.5:1.5b/7b/14b). Recipe-alias provider: local для автономних циклів без хмари.
AI-переписування, BYOK 14 провайдерів — OpenAI · Claude · Gemini · DeepSeek · Qwen · GLM · Kimi · Doubao · SiliconFlow · OpenRouter · Mistral · Groq · xAI · Ollama. Прямі виклики до постачальників. Ключі в OS-keychain.
Синхронізація через GitHub Push сховища до приватного репозиторію GitHub при кожному збереженні. Опціональне E2EE (Argon2id + XChaCha20-Poly1305). GitLab / Gitea / будь-який HTTPS git URL також працює.
AutoGit на нотатку Кожний ⌘S — це коміт у локальний .git у робочому просторі. libgit2 у комплекті, системний git не потрібен. Ніколи не пушиться автоматично.
MCP-сервер у комплекті solomd-mcp входить у поставку. 13 інструментів (8 загальних + 5 власних SoloMD). Лише stdio, без мережевого порту. Лише для читання за замовчуванням; opt-in --allow-write.
REST API (v4.0) Лише localhost, авторизація за токеном. Та сама поверхня, що й MCP, для клієнтів, які ще не говорять MCP — Alfred / Raycast / n8n / власні скрипти.
Лічильник вартості BYOK (v4.0) Поточний лічильник використання токенів на провайдера, opt-in. Налаштування → Інтеграції.
Режим хмарної теки Якщо ваше сховище в ~/Library/Mobile Documents/... або ~/Dropbox/..., SoloMD це визначає й додає відновлення сесії між пристроями — синхронізацію файлів уже виконує OS.
Публічне обмеження лише для читання Палітра команд → скопіюйте посилання solomd.app/share/?repo=...&path=.... Рендерить будь-який файл у вашому публічному GitHub-репо, перегляд не потребує облікового запису SoloMD.

Використання

Після встановлення SoloMD на macOS / Linux:

1. Спілкуйтеся зі сховищем у чаті. Відкрийте панель агента праворуч (⌘⇧P → "View: Toggle Agent Panel", якщо приховано). Стрімований мульти-діалог по ваших нотатках; картки викликів інструментів показують кожне читання/запис inline. Відповідь занадто довга? Вставити скидає її у активну нотатку на позицію курсора (замінює виділення); Копіювати до буфера обміну.

2. Заплануйте recipe. Налаштування → Recipes → перегляньте кулінарну книгу. Готові 11 стартових: тижневий огляд, щоденний підсумок, витяг TODO, прохід перекладу, чищення цитат, агент перевірки орфографії CJK, детектор link rot, нормалізатор frontmatter, outline-у-блог, прохід рефакторингу, щотижневий триаж тегів. Встановіть один, відредагуйте промпт, запустіть.

3. Керуйте тим самим сховищем з іншого LLM-клієнта. В один рух:

# Вивести фрагмент конфігурації MCP для вашого AI-клієнта.
solomd mcp-config
{
  "mcpServers": {
    "solomd": {
      "command": "/Applications/SoloMD.app/Contents/Resources/solomd-mcp",
      "args": ["--workspace", "/Users/me/Documents/SoloMD"]
    }
  }
}

Вставте у Claude Desktop / Cursor / тощо. Для федерації кількох сховищ повторіть --workspace:

"args": [
  "--workspace", "/Users/me/Documents/SoloMD",
  "--workspace", "/Users/me/Documents/work-notes"
]

4. Або передайте промпт безпосередньо до claude / codex CLI:

solomd agent "перепиши щоденні нотатки цього тижня в тижневий огляд і закоміть його"

Захищено від path traversal. Без мережевого порту. LLM бачить лише те, на що ви спрямували робочий простір.

Встановлення

Останній реліз: v4.0.0.

macOS — універсальний dmg (Apple Silicon + Intel, підписаний + нотаризований)

brew install --cask zhitongblog/solomd/solomd

Або завантажте dmg напряму:

https://github.com/zhitongblog/solomd/releases/latest/download/SoloMD_4.0.0_universal.dmg

Або встановлення shell-командою в один рядок:

curl -fsSL https://solomd.app/install.sh | bash

Windows — x64

irm https://solomd.app/install.ps1 | iex
winget install solomd

Linux — x86_64 + aarch64

  • .AppImage (універсальний), .deb (Debian/Ubuntu), .rpm (Fedora/RHEL) — обидві архітектури зі сторінки релізів.
  • Користувачі Arch: solomd-bin в AUR.

iPad

App Store — той самий двигун, нативний UI iPad.

Приватність і безпека

Чисто клієнтська сторона. Ваші .md-файли залишаються в обраній вами теці. API-ключі живуть в OS-keychain (macOS Keychain / Windows Credential Manager / Linux libsecret), ніколи в localStorage або файлі конфігурації. AI-запити йдуть з вашої машини напряму до обраного провайдера — без релею SoloMD. Embeddings RAG та репозиторій AutoGit — лише локальні. MCP-сервер говорить через stdio, ніколи не відкриває мережевий порт. Уся кодова база MIT і піддається аудиту.

Запобіжники безпеки агентів (v4.0). Кожен запуск recipe стартує на власній гілці AutoGit — ваш main залишається недоторканим, поки ви не натиснете Прийняти на diff. Write-cap на запуск (за замовчуванням 5, жорсткий максимум 50) запобігає циклам, що пішли врозніс. Recipe-runner відмовляється стартувати, якщо робоче дерево брудне (жоден агентський коміт не змете ваш WIP). Захист від path traversal заздалегідь відхиляє сегменти .. та абсолютні шляхи в кожній точці входу Tauri / MCP / REST, яка приймає шлях, наданий користувачем.

E2EE-синхронізація використовує Argon2id (стандартні параметри RFC9106) → XChaCha20-Poly1305 з детермінованими nonce та шляхом як AAD. Відкритий текст залишається на ваших пристроях; remote бачить лише шифротекст. Невдалий парсинг sync.json — fail-closed: відмовляє в push, замість деградації до відкритого тексту (виправлення з аудиту 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
pnpm tauri dev      # dev з hot reload
pnpm tauri build    # релізні артефакти → src-tauri/target/release/bundle/

Linux також потребує libdbus-1-dev для keychain-бекенду.

MCP-сервер — окремий crate в mcp-server/; dev-MCP-harness для end-to-end-тестів живе в dev-mcp/. Точка входу для end-to-end-тестів: scripts/v4-self-test.sh (запустіть з --with-release --with-ollama --with-ui для повного покриття).

Внесок

Issues та PR вітаються — відкрийте один. Щоб відчути напрям, дивіться docs/roadmap.md. Журнал збірки v4.0 — на solomd.app/blog/v4-0-0-how-we-built-it/ — починайте звідти, якщо хочете зрозуміти інженерні принципи перед надсиланням PR.

Контакти

Один підтримувач, двоє вхідних дверей. Асинхронно — GitHub Discussions. Чат у реальному часі:

  • Telegram (міжнародний): @SOLOMDAPP — анонси релізів + чат
  • WeChat (中文): скануйте, щоб додати мене — у нотатці "SoloMD"

Ліцензія та подяки

MIT © 2026 xiangdong li. SoloMD стоїть на Tauri 2, Vue 3, CodeMirror 6, markdown-it, KaTeX, Mermaid, libgit2, Pandoc, Hunspell, keyring-rs та rmcp. Спонсорство на GitHub Sponsors або через solomd.app/#sponsor.