Двусторонняя синхронизация задач между Obsidian (плагин Tasks) и Singularity — кроссплатформенным планировщиком с привычками, канбаном и учётом времени.
| Возможность | Описание |
|---|---|
| 🔄 Двусторонняя синхронизация | Задачи синхронизируются в обе стороны — изменения в Obsidian отражаются в Singularity и наоборот |
| 📋 Боковая панель | Просмотр и управление задачами Singularity прямо в Obsidian — группировка по проектам, чекбоксы, фильтры |
| ✅ Привычки (3 состояния) | Настраиваемый трекер с тремя состояниями (не сделано / наполовину / полностью), цвета из Singularity |
| 📝 Встраиваемая панель привычек | Встраивайте интерактивный трекер привычек в любую заметку через блок ```singularity-habits |
| 🔔 Уведомления | ⏰ напоминание + #notify/30 смещение от ⏰ — напоминания синхронизируются в Singularity |
| 📁 Файлы проектов | Задачи хранятся в файлах проектов (/project/*.md) — файл определяет принадлежность к проекту |
| 📝 Описания проектов | Описание проекта из Singularity синхронизируется в секцию #### 📝 Notes файла проекта |
| 📄 Шаблон проекта | Настраиваемый шаблон для новых файлов проектов: {{title}}, {{singularity-id}}, {{date}}, {{emoji}}, {{note}} |
| 🗑️ Soft-delete | Удаление задач или файлов проектов в Obsidian мягко удаляет их в Singularity |
| ⚡ Приоритеты | 🔺⏫🔼🔽⏬ ↔ 0 / 1 / 2 |
| 🗂️ Разрешение конфликтов | 4 стратегии: последняя версия / Obsidian / Singularity / вручную — при стратегии «вручную» открывается диалог с визуальным сравнением обеих версий задачи |
| 🔒 SecretStorage | Ключ API хранится в защищённом хранилище Obsidian, никогда — в открытом виде |
| ⏱️ Статус-бар | Время последней синхронизации отображается в строке состояния |
| 📱 Мобильная поддержка | Работает на десктопе и мобильных устройствах |
- Плагин Obsidian Tasks должен быть установлен и включён. Singularity Sync использует формат задач плагина Tasks — эмодзи дат (
➕🛫⏳📅✅❌) и маркеры приоритетов (🔺⏫🔼🔽⏬) парсятся по стандарту Tasks.
- Установите плагин BRAT из магазина Community Plugins
- Добавьте
https://github.com/nodeus/singularity-syncв BRAT - Включите Singularity Sync в Community Plugins
Скопируйте main.js, manifest.json, styles.css в .obsidian/plugins/singularity-sync/.
- Получите API-ключ в личном кабинете Singularity
- Откройте Настройки → Singularity Sync в Obsidian
- Введите API-ключ и базовый URL (по умолчанию:
https://api.singularity-app.com/v2) - Запустите Singularity Sync: Синхронизировать из палитры команд (или нажмите иконку на ленте)
- Откройте панель Singularity через иконку на ленте или палитру команд
Синхронизируются только задачи с тегом #todo. Ожидаемый формат:
- [ ] #todo Название задачи #теги ➕ YYYY-MM-DD ⏰ YYYY-MM-DD HH:mm 🛫 YYYY-MM-DD ⏳ YYYY-MM-DD 📅 YYYY-MM-DD 🔼 #notify/30 #notifyСтандартный порядок: #todo → описание → теги → ➕ → ⏰ → 🛫 → ⏳ → 📅 → ✅ → ❌ → приоритет → #notify теги.
Время допускается только в ⏰ (напоминание). Все остальные эмодзи дат (🛫⏳📅) — только дата (совместимость с Obsidian Tasks Plugin).
Проекты: принадлежность к проекту определяется файлом, не тегом.
- Задачи в
/project/Мой Проект.md→ принадлежат проекту "Мой Проект" - Задачи в
/tasks/tasks.md→ входящие (без проекта) - Тег
#имя-проектав строке задачи не требуется
Каждый файл проекта (/project/<имя>.md) содержит singularity-id в frontmatter, связывающий его с проектом в Singularity:
---
singularity-id: 550e8400-e29b-41d4-a716-446655440000
---ID проставляется автоматически при создании файла. Не удаляйте и не изменяйте его вручную.
| Позиция | Эмодзи | Значение | Формат |
|---|---|---|---|
| 1 | ➕ |
Дата создания | YYYY-MM-DD |
| 2 | ⏰ |
Напоминание | YYYY-MM-DD HH:mm |
| 3 | 🛫 |
Дата старта | YYYY-MM-DD |
| 4 | ⏳ |
Запланированная дата | YYYY-MM-DD |
| 5 | 📅 |
Дедлайн | YYYY-MM-DD |
| 6 | ✅ |
Дата выполнения | авто |
| 7 | ❌ |
Дата отмены | авто |
Эмодзи приоритета (🔺⏫🔼🔽⏬) ставится после эмодзи дат, перед тегами #notify. ⏰ — единственный эмодзи с временем, остальные — только дата.
| Obsidian | Singularity |
|---|---|
🔺 ⏫ |
0 (высокий) |
🔼 |
1 (средний) |
🔽 ⏬ |
2 (низкий) |
#notify — смещение от ⏰ (время напоминания), НЕ от дедлайна.
| Тег | Значение |
|---|---|
#notify или #notify/0 |
Напомнить ровно в время ⏰ |
#notify/30 |
За 30 минут до ⏰ |
#notify/1h |
За 1 час до ⏰ |
#notify/5h |
За 5 часов до ⏰ |
#notify/1d |
За 1 день до ⏰ |
Если ⏰ задан без #notify → отправляется notifies: [0] (напомнить в время ⏰). Если ⏰ нет → уведомления не отправляются.
| Obsidian | Singularity | Правило |
|---|---|---|
➕ |
createdDate + start (запасной) |
Используется как start, если нет 🛫 |
⏰ |
start (дата+время) |
Время напоминания |
🛫 |
start (только дата) |
Переопределяет ➕ |
⏳ |
start (дата+время) |
Переопределяет 🛫 |
📅 |
deadline (дата) |
— |
✅ |
checked: 1 + архив |
Завершает задачу |
| Правило | Описание |
|---|---|
| Сопоставление задач | Сначала по externalId (БД плагина), затем по нормализованному заголовку |
| Soft-delete | Удаление последней синхронизированной #todo из файла мягко удаляет задачу в Singularity. Удаление файла проекта удаляет весь проект |
| Переименование | Переименование проекта в Singularity автоматически переименовывает .md файл в Obsidian |
| Теги с пробелами | Теги с пробелами из Singularity конвертируются: #my tag → #my_tag |
Когда Разрешение конфликтов установлено в manual, конфликты не решаются автоматически — плагин открывает диалог с обеими версиями задачи:
- Обе версии показаны построчно (статус, приоритет, проект, теги, даты, уведомления) в едином порядке
- Расходящиеся поля подсвечиваются бейджем
⚠️ , сверху — сводка различий - Действия: Obsidian (оставить версию Obsidian), Singularity (оставить версию Singularity), Пропустить (решить на следующей синхронизации) и Создать новую в Singularity при неоднозначном сопоставлении задач
- Даты отображаются в вашем локальном часовом поясе
| Параметр | По умолчанию | Описание |
|---|---|---|
| Base URL | https://api.singularity-app.com/v2 |
Адрес API Singularity |
| Файл задач | /tasks/tasks.md |
Файл для входящих задач (без проекта) |
| Папка проектов | /project |
Папка с файлами проектов — один .md на проект |
| Маркер секции задач | #### 📝 Tasks |
Заголовок для секции задач в файлах проектов |
| Маркер секции описания | #### 📝 Notes |
Заголовок для секции описания проекта (синхронизируется из Singularity) |
| Шаблон проекта | (пусто) | Шаблон для новых файлов проектов. Плейсхолдеры: {{title}}, {{singularity-id}}, {{date}}, {{emoji}}, {{note}} |
| Направление | both |
both, forward или reverse |
| Разрешение конфликтов | latest_wins |
Как разрешать конфликтующие изменения |
| Исключить теги | GC, nosync |
Теги через запятую, которые не синхронизируются |
| Количество дней привычек | 14 |
Количество последних дней в боковой панели привычек (1–14) |
При создании нового проекта в Singularity плагин создаёт соответствующий .md файл локально. Содержимое файла настраивается через параметр projectTemplate.
| Плейсхолдер | Заменяется на |
|---|---|
{{title}} |
Название проекта |
{{singularity-id}} |
UUID проекта в Singularity |
{{date}} |
Текущая дата (YYYY-MM-DD HH:mm:ss) |
{{emoji}} |
Эмодзи проекта (Unicode hex) |
{{note}} |
Описание проекта (синхронизируется из Singularity) |
По умолчанию (пустая настройка) создаётся:
---
singularity-id: {{singularityId}}
---
# {{title}}
#### 📝 NotesОткрывается автоматически при старте Obsidian, если была открыта ранее. Две вкладки:
- Группировка по проектам Singularity
- Фильтр по проекту (выпадающий список)
- Исключение тегов (ввод через запятую)
- Чекбокс отмечает выполнение (обновляет и Singularity, и Obsidian мгновенно)
- Отображение дедлайнов
- Настраиваемое количество дней (1–14, в настройках ✅ Привычки)
- 3 состояния: не сделано (пусто) → полностью → наполовину → не сделано
- Клик циклически переключает состояния
- Цвет ячейки соответствует цвету привычки в Singularity
Встраивайте интерактивный трекер привычек прямо в заметку с помощью блока singularity-habits.
```singularity-habits
days: 14
- зарядка
- all
```| Параметр | Описание |
|---|---|
days: N |
Количество последних дней (по умолчанию: 14) |
- all |
Показать все привычки из аккаунта (по умолчанию) |
- <название> |
Показать только выбранные привычки (фильтр по названию) |
- Блок отображает сетку, аналогичную вкладке привычек в боковой панели
- Клик по ячейке циклически переключает: пусто → наполовину (2) → полностью (1) → пусто (0)
- Изменения мгновенно синхронизируются с API Singularity и обновляют боковую панель и все встраиваемые панели на странице
- Работает в Live Preview и Reading View
| Команда | Описание |
|---|---|
Singularity Sync: Синхронизировать |
Полная двусторонняя синхронизация |
Singularity Sync: Проверить подключение |
Проверка API-ключа и соединения |
Singularity Sync: Открыть панель Singularity |
Открыть боковую панель |
| Ресурс | Лимит | Примечание |
|---|---|---|
| Задачи (синхронизация) | 1 000 | За один запуск синхронизации. API возвращает не более 5 000 задач. |
| Задачи (панель) | 200 | Боковая панель показывает до 200 последних задач. |
| Проекты | 100 | Загружаются все проекты. |
| Теги | 500 | Все теги загружаются и кэшируются. |
| Привычки | 100 | Загружаются все привычки для панели. |
Если у вас больше 1 000 активных задач — синхронизация обработает первые 1 000. Выполненные и архивированные задачи не учитываются в этом лимите.
- API-ключ хранится в
SecretStorageObsidian (не вdata.json) - Ключ никогда не попадает в логи или файлы настроек
- При сохранении
settingsиdata.jsonочищаются от любых следов ключа
MIT