Заметочник поддерживает обратные ссылки и граф знаний, дерево файлов, лайв-превью, работу с несколькими базами знаний, анализ данных с помощью аналога Dataview, мгновенный поиск связных и похожих заметок, историю изменений внутри каждой заметки и многое другое, о чем расскажу в статье.

Прилагаю описание проекта на Github и страницу релиза с установщиком для Windows. Да, протестировать его пока можно только на винде.
Aquilum пока не пытается заменить Obsidian во всех сценариях. Это активно развиваемый Windows-прототип local-first заметочника.
Зачем создавался заметочник Aquilum
Я фанат Obsidian, но меня невероятно задолбало, что он ест так много ОЗУ. Особенно это мешает, когда открыто несколько тяжелых приложений, и память особенно ценна.
На моём компьютере Obsidian заметно увеличивает нагрузку при запуске и особенно тяжело работает с большими хранилищами и несколькими тяжёлыми приложениями.
Ниже я разместил скриншот с потреблением ресурсов Obsidian и Aquilum. Я реализовал на Rust аналоги привычных возможностей Obsidian: Dataview-подобные запросы, граф, backlinks, историю, задачи и другие функции, поэтому в моем случае условия максимально похожие.
Видно, что Obsidian может потреблять гигабайт с лишним памяти, в то время как аквилум кушает всего 27 мегабайт! Т.е. я еще занизил показатели в заголовке статьи...

Разница в том, что обсидиан тянет за собой отдельный браузерный движок, который и нагружает систему. Я решил действовать иначе и написать заметочник на Tauri, чтобы расход ресурсов был минимален. Это позволило ограничить потребление ОЗУ в 27Мб, а установщик запаковать в 11Мб дискового пространства.
Также мне не нравится, что у всех плагинов в Obsidian разрозненный визуальный дизайн. Я сам дизайнер, поэтому в глаза мне постоянно бьет ключом этот нюанс. Хочется единой дизайн-системы и контроля над токенами (отступами, размерами и цветами). Плюс для меня разработка объемного продукта стала хорошей практикой, так как в данный момент работаю я в команде дизайн-систем.
А еще мне хотелось открытости и портативности, чтобы все данные всегда были у меня! В обсидиане некоторые плагины не всегда очевидно хранят данные (это характерно для табличных плагинов). В аквилуме же все данные хранятся в заметках, что означает полную портативность базы знаний.
Обзор функционала
Aquilum использует CodeMirror 6 — тот же редакторский движок, который используется в Obsidian. Поэтому базовые ощущения от редактирования Markdown во многом знакомы пользователям Obsidian.
Далее рассмотрим весь функционал приложения, разбитый по разделам.
Основные визуальные элементы:
Маркеры списков - с подсветкой строки с помощью символов !, &, ~ или $
Виджеты - их сейчас несколько в приложении, и о них расскажу дальше
Цитаты - их можно добавлять прямо из читалки, о которой также расскажу ниже

Таблицы
В редакторе есть удобные Markdown-таблицы с расширенными возможностями. В них можно объединять и разделять ячейки, менять порядок строк и столбцов вручную, а также использовать форматирование текста прямо внутри ячеек.
Контекстное меню позволяет быстро создавать таблицы, удалять отдельные строки и столбцы или удалять таблицу целиком. Все основные операции — включая объединение и разъединение ячеек, доступны непосредственно из этого меню.
Ниже я разместил пример таблицы:

Вот так выглядит код таблицы со скриншота выше:
| <!--q-empty--> | ываыва | | <!--q-empty--> | ыав | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | | --- | :---: | --- | --- | --- | --- | --- | --- | --- | | ghbdtn | ыав | | [[книга]] | | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | | **dsfsdываf** | | | ^^ | ^^ | <!--q-empty--> | ^^ | <!--q-empty--> | <!--q-empty--> | | ^^ | ^^ | ^^ | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | ываываываыва | <!--q-empty--> | <!--q-empty--> | | выа | ыав | | kjhgkjhgkjhgk | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | | ыва | | | <!--q-empty--> | | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-empty--> | <!--q-table:{"merges":[[0,1,0,2],[1,1,1,2],[1,3,2,4],[1,6,2,6],[2,0,3,2],[4,1,4,2],[5,0,5,2],[5,3,5,4]],"rows":[111,28,28,41,191,40,45],"cols":[123,60,141,120,100,65,145,60,60]}-->
Поиск по базе знаний
Для меня было важно, чтобы поиск работал мгновенно даже на базе с миллионом заметок. Это центральная часть всего приложения, которая должна быть надежной и молниеносной. В итоге тысяча полноценных заметок обрабатывается за 1-2 мс на моей машине, и момент поиска вообще незаметен глазу. Также поиск поддерживает горячие клавиши для быстрого открытия или создания заметки.
При этом совпадения подсвечиваются, а общее количество совпадений выводится справа сверху в карточке источника.
Ниже размещен скрин того, как это выглядит:

Отображение медиа
Приложение поддерживает отображение фото и видео, а также кадрирование и центрирование. Вы можете скопировать изображение из нужного источника, а затем вставить на холст, и исходник автоматически поместится в папку Files, а само изображение появится на холсте.

При этом все настройки изображения хранятся в Markdown формате:

Виджеты, страницы книги и читалка
В приложении поддерживаются виджеты, внутри которых в перспективе можно помещать любую информацию, которая должна быть визуально выстроена в единый блок.
Например, сейчас есть виджеты книги, которые вы можете увидеть на скриншоте ниже:

Вы можете создать заметку книги: загрузить обложку, вписать название, автора, а также прикрепить файл самой книги, после чего с помощью конструкции виджета сформировать таблицу из прочитанных книг. Пример такой конструкции можно посмотреть ниже:
> [!book] [[? Победители недр]] > [!book] [[? Книга-тренажер для вашего мозга]] > [!book] [[? Как убедить кого угодно в чем угодно]] > [!book] [[? 20 тысяч лье под водой]] > [!book] [[? Краткая история почти всего на свете]] > [!book] [[? Марсианские хроники]] > [!book] [[? Плененная вселенная]] > [!book] [[? Господин из Сан-Франциско]] > [!book] [[? Олеся]] > [!book] [[? Поединок]] > [!book] [[? Думай]]
Мне очень хотелось, чтобы все мои прочитанные книги хранились в едином файле с прогрессом, названием и автором. Для этого и предназначен данный блок.
И, да, читать книгу можно не выходя из приложения!

Вы можете читать книгу в любом формате и цитировать текст, выделяя его. При цитировании текст сразу же появляется внизу заметки со ссылкой на конкретный фрагмент в книге, и вы в любой момент можете вернуться к нему!
Метаданные и frontmatter и шаблоны
В заметочнике также есть блок frontmatter, внутри которого вы можете разместить различную информацию.
Например, можно указать дату и время создания, отображение обложки страницы или книги, теги, рейтинг книги. Также имеются и технические поля, например, прогресс прочтения, привязанный к размеру файла книги. Это значит, что вы можете открыть книгу через Aquilum на любом устройстве, и чтение начнется именно оттуда, откуда вы начали! Все сделано для того, чтобы все данные были у вас!

Настройки, корзина и переключение хранилищ
Также имеются настройки приложения, с помощью которых вы можете гибко кастомизировть приложение.
Сейчас доступны базовые настройки внешнего вида, языка, шрифтов и стартовой страницы; расширенная система тем находится в разработке.

Также есть корзина, в которую попадают удаленные файлы. В обсидиане я, бывало, по случайности сносил очень важные заметки, и они полностью пропадали! В аквилуме эта проблема исправлена - заметки всегда попадают в корзину!

Если вам нужно работать с несколькими хранилищами, то вы можете добавлять их и переключать через удобное модальное окно. Через MCP доступна команда переключений баз знаний, чтобы модель открыла вам нужную заметку.

MCP server и работа с ИИ моделями
Для меня было важно, чтобы я мог автоматизировать работу с заметками через MCP, потому что иногда нужно, например, сменить формат даты во всех заметках или переносить заметки между базами знаний, с чем очень сильно помогает автоматизация, особенно когда на работе много задач.

Приложение поддерживает подключение к Claude Code, Codex CLI и Gemini Antigravity. Агенты могут искать информацию через мгновенный BM25F поиск, смотреть связи между заметками, а также редактировать заметки в нескольких базах знаний одновременно!
Это очень сильно ускоряет работу с базами знаний проекта, потому что все инструменты работают из коробки и не требуют дополнительной настройки или написания кастомных скриптов.
История изменений заметки
Еще одним преимуществом является встроенное версионирование, позволяющее откатывать ваши правки и смотреть эволюцию ваших мыслей. То же самое работает и с правками ИИ-агента, который может удалить важную для вас информацию. Теперь вы всегда можете вернуть утраченное!

Граф знаний
Я хотел сделать граф не декоративной визуализацией, а рабочим инструментом навигации и анализа базы знаний.
Он работает с любым количеством заметок мгновенно, а также позволяет отображать тепловую карту изменения и создания заметок в базе знаний. Т.е. теперь вы можете смотреть, какие разделы давно не обновлялись, а над какими вы работаете прямо сейчас.
Плюс можно отфильтровать заметки по дате создания, что может быть удобно для анализа.

Работа с задачами
Работа с задачами пока находится на раннем этапе, но уже поддерживает базовые Markdown-чекбоксы и запросы по их состоянию.

Dataview и работа с данными
Приложение поддерживает написание кастомных скриптов прямо в теле заметки, чтобы работать с данными. Синтаксис очень похож на тот, что есть в плагине Dataview в обсидиане, но все же переработан для простоты и расширен под мои задачи, а также переписан на Rust и мгновенно откликается на изменения в системе.

Вот пример всех трех блоков со скриншота выше:
Последние заметки
```dataview TABLE WITHOUT ID link(file.link, title) AS "Последние заметки", dateformat(file.ctime, "d MMM") AS "Дата" WHERE file.ctime >= (date(today) - dur(1 week)) SORT file.ctime DESC LIMIT 10 ```
Стата заметок
```dataview TABLE WITHOUT ID item.name AS "Стата заметок", count(rows.file.ctime, item.span) AS "Всего", delta(count(rows.file.ctime, item.span), count(rows.file.ctime, previous(item.span))) AS "Динамика" FROM "" GROUP BY "" FLATTEN list( object("name", "Сегодня", "span", span(today, now)), object("name", "Неделя", "span", span(today - dur(1 week), now)), object("name", "Месяц", "span", span(today - dur(1 month), now)), object("name", "Год", "span", span(today - dur(1 year), now)), object("name", "За всё время", "span", ever) ) AS item ```
Невыполненные задачи
```dataview TASK TITLE "Невыполненные задачи" WHERE !completed SORT file.mtime DESC LIMIT 10 ```
Лайв-превью и удобство использования
Честно признаться, я уже давно не запускал обсидиан и искренне кайфую от работы в своем заметочнике мечты. Он не идеален, но уже поддерживает необходимые для меня функции, а лайв-превью позволяет бесшовно работать со скриптовыми блоками и быстро править форматирование Markdown.
Там, куда выпоставите каретку (курсор), отобразится форматирование, и вы сможете редактировать буллиты, символы жирности текста, код, уровень заголовков и все, что как-то влияет на внешний вид текста.

Техническая часть
Rust + Tauri 2;
React + TypeScript;
CodeMirror 6;
Markdown как основной формат хранения;
Yjs для локальной модели документа;
SQLite для состояния приложения;
BM25F для полнотекстового поиска;
Windows как текущая платформа.
Заключение
Aquilum пока находится в активной разработке. Уже сейчас он закрывает мой основной сценарий работы с Markdown-базой знаний: редактирование, поиск, связи между заметками, книги, задачи, история изменений и автоматизация через MCP. В следующих версиях я планирую улучшить совместимость, добавить синхронизацию и мультиплеер, а также продолжить работу над расширяемостью и производительностью.
Проект можно скачать для Windows со страницы релизов GitHub. Буду рад отзывам, особенно от пользователей Obsidian, которые работают с большими базами знаний.
Если у вас появится фидбек, то связаться со мной можно в тг
Комментарии (22)

orki
04.10.2026 10:13Я прогрелся с заголовка и пошел на гитхаб. Нет сорцов, но есть скриншоты в мейн бранче и .exe в релизе. Четырехкратная ярость.
Keks650
Очень круто, спасибо! Было бы классно прикрутить синхронизацию между несколькими устройствами из коробки. Может через web-dav или что-то такое
dima_yiu Автор
Спасибо! Сделаю чуть позже, как только изучу доступные решения
sanchas
Для Obsidian помнится был плагин для git. Возможно было бы неплохо сюда тоже добавить нечто похожее. Чисто моё видение - добавить в настройках адрес git-репозитория и ветку. И 3 -кнопки в интерфейсе (commit, push и pull). При нажатии на commit появляется окно в котором можно ввести commit-message (по умолчанию подставляется просто текущая дата и время). push - отправляет сделанный commit(ы) в удаленный репозиторий, pull - подтягивает изменения из него. Заметки для которых произошел merge-конфликт подсветить красным.