Telegram Owl is a lightweight command-line interface (CLI) utility designed to send messages and media files directly to Telegram chats and channels from your terminal.
Key Features:
Send text messages with optional markdown or HTML formatting.
Attach multiple files and automatically detect their type, or force them as documents.
Enable silent notifications to avoid disturbing recipients.
Protect messages by disabling forwarding and saving capabilities.
Post to forum thread topics in supergroups for organized discussions.
Audience & Benefit:
Ideal for DevOps engineers, developers, and anyone needing to automate Telegram notifications from scripts, cron jobs, CI/CD pipelines, or monitoring tools. It offers a seamless way to send deployment alerts, logs, reports, or media without leaving your terminal.
Telegram Owl is fast, cross-platform (Windows, Mac, Linux), and written in Go for efficiency. It can be installed via winget, making it easy to integrate into your workflow.
README
Telegram Owl 🦉
> 📣 Use it to send deployment notifications, alerts, logs, reports, or media - from scripts, cron jobs, CI/CD pipelines, monitoring tools, or any shell environment.
Whether you're a DevOps engineer automating infrastructure, a developer managing CI/CD pipelines, or just want to notify your Telegram group from a terminal script - Telegram Owl gives you a simple and script-friendly way to do it.
Features
Send text messages
Send Rich Markdown and Rich HTML messages
Attach multiple files
Silent messages (no notification sound)
Protect messages (disable forwarding/saving)
Automatic media type detection (or force as document)
brew tap beeyev/pkg https://github.com/beeyev/pkg
brew install --cask telegram-owl
⚠️ macOS Security Note:
If macOS blocks the app with "cannot be opened because the developer cannot be verified":
# Option 1: Remove quarantine attribute
xattr -d com.apple.quarantine /opt/homebrew/bin/telegram-owl
# Option 2: Allow in System Settings
# Go to: System Settings > Privacy & Security > Allow "telegram-owl"
telegram-owl -t $BOT_TOKEN -c 123456 --format=html -m '<b>Bold text</b> via HTML and <a href="http://www.example.com/">inline URL</a>'
Send a Rich Markdown Message
Rich Markdown supports GitHub Flavored Markdown constructs such as headings,
tables, task lists, and fenced code blocks. Piping a file preserves its leading
and internal whitespace.
The markdown and html formats use sendMessage and can format attachment
captions. The rich-markdown and rich-html formats use
sendRichMessage. When
attachments are present, Telegram Owl sends them without a caption, then sends
the rich message separately. --no-link-preview is not available for rich
messages. The attachment upload and rich message are separate requests and are
not atomic. If the second request fails, the attachments remain delivered and
the error reports that partial delivery.
> telegram-owl can route requests through a proxy. Supply the proxy via --proxy or the TELEGRAM_OWL_PROXY environment variable. Proxy handling is powered by Resty under the hood, so any scheme supported by Resty (http, https, socks5) works here.