SiYuan — приватная база знаний с блочным редактором и ИИ
📂 Исходный код на GitHubSiYuan — приватная система управления личными знаниями: блочный редактор, двусторонние ссылки, локальное хранение данных, CLI, API и ИИ-функции через OpenAI API.
SiYuan — система управления личными знаниями (personal knowledge management) с открытым кодом. Главный принцип проекта — приватность: все данные хранятся локально, в вашей рабочей папке. Заметки устроены как блоки, связанные двусторонними ссылками. Редактор работает в режиме Markdown WYSIWYG: вы видите готовое оформление сразу, без исходного кода. Проект развивает команда B3log, код распространяется по лицензии AGPLv3.
Система интересна не только как альтернатива Obsidian или Notion. У неё есть HTTP API, встроенный CLI и система плагинов. Поэтому SiYuan хорошо подходит для автоматизации и скриптов. Девиз проекта — «From thought to insight, with agents» — прямо говорит о курсе на работу с ИИ-агентами.
Блоки вместо страниц
Основная единица контента в SiYuan — блок. Абзац, элемент списка, формула или строка таблицы — всё это блоки. Блоки можно ссылать друг на друга, и связи работают в обе стороны: в каждом блоке видны обратные ссылки.
Другие возможности работы с блоками:
- пользовательские атрибуты у каждого блока;
- встроенные SQL-запросы — можно собрать страницу из результатов запроса к своим заметкам;
- протокол
siyuan://для ссылок на конкретные блоки из других приложений.
Возможности редактора
Редактор блочный и поддерживает большие документы — до миллиона слов. Что в нём есть:
- математические формулы, графики, блок-схемы, диаграммы Ганта, временные диаграммы и даже нотные записи;
- zoom-in на отдельный блок — фокус на подразделе документа, как в бесконечном холсте;
- outline для списков;
- веб-клиппинг: сохранение фрагментов страниц через расширение для Chrome и Edge;
- аннотации к PDF с привязкой к заметкам.
Кроме редактора, в SiYuan есть:
- вкладки и перетаскивание окон для разделения экрана;
- шаблоны и фрагменты на JavaScript и CSS;
- карточки с интервальным повторением для запоминания;
- таблицы в режиме базы данных (table view);
- Tesseract OCR — распознавание текста в изображениях.
ИИ-функции
В SiYuan встроена поддержка ИИ: письмо и чат с вопросами и ответами работают через OpenAI API. Можно подключить свой ключ и использовать модель прямо в редакторе. Для сайта об ИИ-ассистированной разработке это главный мостик: база знаний, к которой можно обращаться и через API, и через CLI.
CLI: доступ к данным без сервера
Встроенный CLI даёт прямой доступ к рабочему пространству. Запускать сервер не нужно. Несколько примеров:
# List all notebooks
siyuan notebook list -w ~/SiYuan
# Full-text search with JSON output
siyuan search "keyword" -w ~/SiYuan -f json
# Search inside asset files (PDF/Word/Excel/txt etc.)
siyuan search "phrase" --asset -w ~/SiYuan
siyuan search "phrase" --asset --ext pdf --ext docx -w ~/SiYuan
# Export a document as Markdown
siyuan export md --id <block-id> -w ~/SiYuan
Команды покрывают почти всё приложение:
| Категория | Команды |
|---|---|
| Блокноты и документы | notebook, document, dailynote |
| Контент | block, attr, outline |
| Метаданные | tag, bookmark, template |
| Поиск | search, sql — полнотекстовый, семантический, по вложениям и SQL |
| Ссылки | ref — обратные ссылки и упоминания |
| Импорт и экспорт | export, import, inbox — Markdown, HTML, Word |
| Данные | repo, history, sync — снапшоты, версии, синхронизация |
| База данных | database — управление таблицами |
| Сервер | serve — запуск HTTP-сервера ядра |
Для скриптов полезны две детали. Во-первых, вывод в формате JSON через флаг -f json. Во-вторых, большинство команд, которые меняют данные, поддерживают --dry-run — можно посмотреть результат, ничего не трогая.
API и плагины
У ядра есть HTTP API. Через него можно автоматизировать работу с заметками из внешних программ и скриптов. Поверх API построена система плагинов: отдельный проект petal отвечает за плагинное API, а bazaar — это маркетплейс сообщества. Готовые расширения собраны в списке Awesome SiYuan.
Развёртывание
SiYuan работает на всех основных платформах: Windows, macOS, Linux, Android, iOS и HarmonyOS. Приложения распространяются через магазины — App Store, Google Play, F-Droid и Microsoft Store, — а также установочными пакетами.
Для сервера есть Docker-образ b3log/siyuan. Пример запуска:
docker run -d \
-v /siyuan/workspace:/siyuan/workspace \
-p 6806:6806 \
-e PUID=1001 -e PGID=1002 \
b3log/siyuan \
serve \
--workspace=/siyuan/workspace/ \
--accessAuthCode=xxx
Что важно знать:
- параметр
--accessAuthCodeзадаёт пароль экрана блокировки. Его обязательно нужно поменять, иначе доступ к данным получит кто угодно; - с версии 3.7.0 подкоманду
serveнужно передавать явно; - переменные
PUIDиPGIDзадают пользователя внутри контейнера. Так решаются проблемы с правами на примонтированные папки; - вместо пароля можно настроить вход через OIDC — поддерживаются Google, Microsoft, GitHub и свой провайдер.
Для Kubernetes есть Helm-чарт от сообщества. В документации подчёркивают правило «одно рабочее пространство — один писатель»: нельзя запускать несколько экземпляров на одной папке, даже если хранилище поддерживает запись с нескольких узлов.
У Docker-версии есть ограничения. Она работает только в браузере. Настольные и мобильные приложения к ней подключиться не могут. Экспорт в PDF, HTML и Word недоступен, как и импорт Markdown-файлов.
Как хранятся данные
Все данные лежат в папке data внутри рабочего пространства:
assets— вложения: картинки, PDF и другие файлы;templates— шаблоны;widgets— виджеты;plugins— плагины;snippets— фрагменты кода;emojis— изображения эмодзи;storage— условия запросов, раскладки, карточки;public— общедоступные данные.
Остальные папки — это блокноты пользователя. Каждый документ хранится в файле с расширением .sy, формат — обычный JSON. Данные можно просто скопировать — они остаются доступными без приложения.
Синхронизация через сторонние облачные диски не поддерживается: так данные можно повредить. Вместо этого SiYuan предлагает собственный механизм — зашифрованный репозиторий данных и облачную синхронизацию из состава платной подписки.
Экосистема
Ядро SiYuan написано на Go, интерфейс — на TypeScript. Проект состоит из нескольких репозиториев:
| Проект | Назначение |
|---|---|
| lute | движок редактора |
| dejavu | репозиторий данных и синхронизация |
| petal | API плагинов |
| riff | интервальное повторение |
| siyuan-chrome | расширение для Chrome и Edge |
| siyuan-android | приложение для Android |
| siyuan-ios | приложение для iOS |
| siyuan-harmony | приложение для HarmonyOS |
| bazaar | маркетплейс сообщества |
История изменений ведётся в файле CHANGELOG.md. Документация для пользователей доступна онлайн, есть англоязычный форум сообщества.
Лицензия и цена
Код открыт под AGPLv3. Большинство функций бесплатны, в том числе для коммерческого использования. Платными остаются отдельные возможности — в основном облачная синхронизация и часть облачных сервисов. Подробности — на странице Pricing.
Источник: https://github.com/siyuan-note/siyuan