SiYuan — приватная база знаний с блочным редактором и ИИ

· 2 мин чтения
knowledge-management notes markdown docker cli
📂 Исходный код на GitHub

SiYuan — приватная система управления личными знаниями: блочный редактор, двусторонние ссылки, локальное хранение данных, CLI, API и ИИ-функции через OpenAI API.

SiYuan — приватная база знаний с блочным редактором и ИИ

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