Telegram-бот для управления заметками Obsidian позволяет создавать и просматривать заметки прямо из Telegram. Интегрируется с локальным хранилищем Obsidian, сохраняя все преимущества работы с Markdown-файлами.
- 📝 Создание заметок с метаданными (теги, дата создания)
- 🌳 Просмотр структуры хранилища в виде ASCII-дерева
- 🏷️ Управление тегами через простой интерфейс
- 🔒 Административный контроль (только для авторизованных пользователей)
- 📁 Автосохранение в указанную папку Obsidian Vault
- Python 3.12 (обязательно)
- Aiogram 3.20+ - асинхронный фреймворк для Telegram ботов
- aiofiles - асинхронная работа с файловой системой
- Pathlib - кросс-платформенные пути к файлам
- Logging - продвинутая система логирования с ротацией файлов
git clone https://github.com/meflove/telegram-obsidian.git
cd telegram-obsidianРекомендуется
uv venv
source .venv/bin/activate
uv syncили
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- Создайте
config.pyна основе образца:
cp config.py.sample config.py- Заполните настройки в
config.py:
# Основные настройки бота
TOKEN = "ВАШ_ТОКЕН_ОТ_BOTFATHER" # Обязательно замените!
ADMINS = [ВАШ_TELEGRAM_ID] # ID администратора
OBSIDIAN_PATH = "/полный/путь/к/вашему/obsidian/vault/" # Путь к хранилищуpython aiogram_run.py| Команда | Описание | Пример |
|---|---|---|
/start |
Запуск бота и главное меню | /start |
/list |
Показать дерево заметок | /list |
-
Создание заметки:
- Введите название (или пропустите)
- Добавьте содержание
- Укажите теги через пробел
Пример:
Название: Идея для проекта Содержание: Разработать бота для Obsidian... Теги: идеи разработка -
Просмотр заметок:
-
Получите древовидную структуру хранилища
-
Формат вывода:
vault_name ├── folder1 │ └── note1.md └── note2.md
-
telegram-obsidian/
├── create_bot.py # Экземпляры bot и dp
├── aiogram_run.py # Основной файл для запуска бота
├── exceptions.py # Кастомные исключения для работы бота
├── config.py.sample # Пример файла config.py
├── handlers/ # Обработчики команд
│ ├── bot_commands.py # /start и /list
│ └── menu.py # Интерактивное меню
├── keyboards/ # Клавиатуры
│ └── main_kb.py # Главное меню
└── utils/ # Логика работы с Obsidian
├── list_notes.py # Генерация дерева файлов
└── notes_funcs.py # Создание заметок-
Права доступа:
- Бот требует полного доступа к указанной папке Obsidian
- Убедитесь, что Python процесс имеет права на запись
-
Безопасность:
- Никогда не коммитьте
config.pyс токенами! - Добавьте
config.pyв.gitignore
- Никогда не коммитьте
-
Ограничения:
- Поддерживается только текстовый контент (Markdown)
- Максимальный размер вывода дерева - 4096 символов (ограничение Telegram)
Проект распространяется под лицензией Apache 2.0. Вы можете свободно использовать, модифицировать и распространять код с указанием авторства.
Сделано с ❤️ для сообщества Obsidian и Telegram разработчиков
Obsidian • Aiogram • Python