realm74765 downloadsAI-powered Telegram sync with smart categorization, media grouping, and local document processing.
Turns messages you send to your own Telegram bot into notes in your vault, with optional AI processing (OpenAI, Claude, Gemini or any OpenAI-compatible endpoint), smart categorization and local document text extraction. Works on desktop and mobile (mobile is in beta).
/status, /retry, /category and /search right in the chat, so you can check the queue, retry failures, refile a note or search your vault without opening Obsidian.{{ai:title}}, {{category}} and {{date:YYYY-MM}}, and route messages to different folders and templates with distribution rules.A Telegram bot only receives messages while the plugin is running. To catch up on the rest, the plugin can sign in as your own Telegram account (desktop only) and forward the missed messages to the bot. This needs your own Telegram app credentials (api_id / api_hash from my.telegram.org). Process old messages in the settings walks you through getting them. The first catch-up runs about a day after you turn it on; newer messages arrive through the bot anyway.
Without these credentials the plugin runs in bot-only mode. Everything else works, except processing old messages and downloading files over 20 MB (a Bot API limit).
Accounts: you need a Telegram bot (free, created through @BotFather). AI processing uses your own API key with the provider you choose, and that provider bills you for usage.
What leaves your device, and when:
| Service | When | What is sent |
|---|---|---|
| Telegram | Always | Bot polling, message and file downloads |
| Your chosen AI provider (OpenAI, Anthropic or Google) | Only with AI processing enabled | Message text, transcripts, images (Vision), your prompts |
| Your own custom endpoint (OpenAI-compatible) | Only if you select the Custom provider and enter its URL yourself | Message text, images (Vision), your prompts, sent to the host you chose (can be a local server: Ollama, LM Studio) |
| OpenAI (Whisper) | Only when the selected provider cannot transcribe and an OpenAI key is configured | Voice, audio and video files |
Jina Reader (r.jina.ai) |
Only with Process links enabled | The URLs from your messages, so pages can be fetched and summarised |
No telemetry, no analytics, no update checks: the plugin contacts nothing else. Document text extraction and cost accounting run locally.
Every secret is encrypted (AES-256-GCM) in the plugin's data.json: the bot token, all AI keys and the Telegram api_hash. Without a pin code the key is a constant compiled into the plugin, which is obfuscation rather than protection, so turn on Bot settings → Encryption by pin code before syncing your vault to the cloud. Secrets are also scrubbed from logs, chat error replies and diagnostic reports. Messages that are still being processed are kept in plain text in the plugin folder (message-ledger-<deviceId>.json) until their note is written. Details in SECURITY.md and the Security Guide.
Join the Telegram channel for updates, tips and support. Bugs and ideas go to GitHub issues.
This plugin was inspired by and built upon obsidian-telegram-sync by soberhacker. Built with the Obsidian API, pdf-parse, mammoth, GramJS and @noble cryptography.