Telegram-send is a command-line tool to send messages and files over Telegram to your account or to a channel. It provides a simple interface that can be easily called from other programs.
Table of Contents
To send a message:
telegram-send "hello, world"
To send a file:
telegram-send --file document.pdf
To send an image with an optional caption:
telegram-send --image photo.jpg --caption "The Moon at night"
Telegram-send integrates into your file manager (Thunar, Nautilus and Nemo):
Install telegram-send system-wide with pip:
sudo pip3 install telegram-send
Or if you want to install it for a single user (recommended):
pip3 install telegram-send
If installed for a single user you need to add ~/.local/bin
to their path:
echo 'PATH="$HOME/.local/bin:$PATH"' >> ~/.profile
(This will be in effect on the next login, do a . ~/.profile
for the
impatient.)
And finally configure it with telegram-send --configure
if you want to send to
your account, or with telegram-send --configure-channel
to send to a channel.
Use the --config
option to use multiple configurations. For example to set up
sending to a channel in a non-default configuration: telegram-send --config channel.conf --configure-channel
. Then always specify the config file to use
it: telegram-send --config channel.conf "hello"
.
Here are some examples to get a taste of what is possible with telegram-send.
Receive an alert when long-running commands finish with the tg
alias, based on
Ubuntu's built-in alert
. Put the following in your ~/.bashrc
:
alias tg='telegram-send "$([ $? = 0 ] && echo "" || echo "error: ") $(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*tg$//'\'')"'
And then use it like sleep 10: tg
.
To automatically receive notifications for long running commands, use ntfy with the Telegram backend.
We can combine telegram-send with cron to periodically send messages. Here we will set up a cron job to send the Astronomy Picture of the Day to the astropod channel.
Create a bot by talking to the BotFather, create a public channel and add
your bot as administrator to the channel. You will need to explicitly search for
your bot's username when adding it. Then run telegram-send --configure-channel --config astropod.conf
. We will use the apod.py script that gets the daily
picture and calls telegram-send to post it to the channel.
We create a cron job /etc/cron.d/astropod
(as root) with the content:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
0 1 * * * telegram ~/apod.py --config ~/astropod.conf
Make sure the file ends with a newline. Cron will then execute the script every
day at 1:00 as the user telegram
. Join the astropod channel to see the
result.
Supervisor controls and monitors processes. It can start processes at boot,
restart them if they fail and also report on their status. Supervisor-alert
is a simple plugin for supervisor that sends messages on process state updates
to an arbitrary program. Using it with telegram-send (by using the --telegram
option), you can receive notifications whenever one of your processes exits.
sudo telegram-send --clean
sudo pip3 uninstall telegram-send
Or if you installed it for a single user:
telegram-send --clean
pip3 uninstall telegram-send