Recently, there has been a new wave of instant messaging services focused on the mobile world. Examples include Whatsapp, Messenger, Hangouts, and Viber. However, these are all closed and don’t have the best record of security and privacy. A new service with a different approach is Telegram. It’s developed and run by a non-profit organization, has an open API and protocol, provides open source clients, and stresses privacy.

The Telegram instant messaging service was founded by Nikolai and Pavel Durovs. They are known for founding VKontakte, the Russian equivalent of Facebook, which they left after they refused to hand over users’ data to FSB. Telegram is based in Berlin and the service has received accolades all around the world.



I’d known about Telegram for some time, but hadn’t tried it out until I conducted a survey asking what IM services Fedora users were using. It caught my attention because it ended up surprisingly high in the list.

Telegram Features

Here is a summary of what makes Telegram an attractive option for instant messaging:

Free of charge and run by a non-profit organization

Fast

Open (open API, open protocol, open source clients; the server side is currently closed though)

Accepts file uploads up to 1.5 GB

Secret Chats (end-to-end encryption, a timer to destruct messages)

Bot API (API that lets you write your own bots to notify you or deliver content to your Telegram client).

How to Join

Telegram accounts are tied to the phone number of the user. The easiest way to start with Telegram are the mobile apps, because they can scan your contacts and give you a list of friends already using the service. You can join Telegram even without having a smartphone, though. You can create an account in one of the official clients including the web client. You’ll need a phone to receive authentication PINs via SMS.

Available Clients for Fedora

There are several Telegram clients you can use in Fedora. There is no clear winner, though. Every client has its pros and cons, which I will try to describe in the following paragraphs.

Telegram Desktop

The official client for Linux desktop is open source and can be found in Copr. You can install it by running the following commands:

sudo dnf copr enable rommon/telegram

sudo dnf install telegram-desktop

The desktop client has all the bells and whistles of Telegram. It includes group chats, emoticons, stickers, and sending/receiving files. However, it lacks one important feature: secret chats which provide end-to-end encryption and were ranked by EFF at 7/7 points.

The desktop client is written in Qt, but unfortunately it’s patched. This makes it hard to include in the official repositories of Fedora. Another minor inconvenience is that it uses its own notifications, instead of the standard ones the system provides. Moreover, the app in Copr is not really built from the source code, but a packaged binary provided on the website of Telegram. So instead of relying on the packaging system, it has its own updating mechanism. This may cause some complexity, such as a parallel installation of the app.

Cutegram

Cutegram is an unofficial alternative to Telegram Desktop and is a well-done client, written in QML. If there was a standard way to install it in Fedora, it would definitely be the best option. However, it’s not available in the official repositories or Copr, and the authors don’t provide an RPM package. You need to download a generic installer which installs the app to /opt and doesn’t create a desktop launcher. Jaroslav Řezník started packaging it in Copr, but hasn’t finished it yet. He might appreciate some help there!

Otherwise Cutegram supports the same set of features as the official client, and adds more. It supports secret chats, is better integrated to the desktop — using standard notifications, for instance — and has more options such as support for multiple accounts.

Plugin for Pidgin

If you’re accustomed to traditional desktop IM clients, or want to have Telegram together with other services in one app, a 3rd-party plugin for Pidgin might be a better option. It can also be found in Copr. To install, run the following commands:

sudo dnf copr enable lsof/telegram-purple

sudo dnf install telegram-purple

The plugin doesn’t support Telegram-specific emoticons and stickers. However, you can for example send and receive files, and pictures are shown directly in the chat, like in official clients. Most importantly, it supports secret chats.

Telegram CLI

For those who prefer the command line, there’s also an unofficial CLI client. It’s again available in Copr and you can install it running the following commands:

sudo dnf copr enable iranzo/telegram-cli

sudo dnf install telegram-cli

It obviously doesn’t support the graphical features such as emoticons or stickers, but covers a fair share of Telegram features, such as sending and receiving files or secret chats.

Web Client

The official web client, which you can find at web.telegram.org, supports the same features and has the same interface as the official desktop client which means it also lacks support for secret chats.