Back to the schedule
Previous: Typesetting Gregorian Chant with Emacs
Next: A day in the life of a janitor

telega.el and the Emacs community on Telegram

Gabriele Bozzola and Evgeny Zajcev

Q&A: after the conference
Duration: 7:58

If you have questions and the speaker has not indicated public contact information on this page, please feel free to e-mail us at and we'll forward your question to the speaker.


Telegram is a cross-platform instant messaging system. The large number of features and the widespread adoption make it a good choice for both private conversations with friends and for large online communities. In this talk, I am going to present the Emacs community on Telegram and its initiatives. I am also going to discuss telega.el, the Emacs client for Telegram. telega.el is a high-quality package that perfectly integrates in Emacs. It supports the vast majority of the features supported by the official clients, while adding several unique ones. In the talk, I will present the package and highlight some of the most important features.


  • Q1: Do any of these main emacs telegram groups bridge to matrix?
    • A: [Speaker] We discussed adding a bridge to matrix for the main channel @emacs_en. We never got around to doing it, but I can bring this up again. 
  • Q2: Could telega.el auto install TDLib like lsp-mode auto installs servers?
  • A: [Speaker] Possibly. The difference is that TDLib requires a number of dependencies that might not be available.  Evgeny chose another route to simplify setting up telega.el: the package can now be installed with a Dockerfile that also ships with also the optional dependencies. This ensures that everything works as intended.
  • Does telega still require company for completion?
  • Telegram has become a real (and desired) option to WhatsApp, thanks to telega.el


Hello, my name is Gabriele, and today I'm going to tell you about Telega and the Emacs community on Telegram. I'm not affiliated with Telegram or Telega, and opinions are my own in general. I'm going to give you my personal spin about these topics.

[00:00:14.160] The plan for the talk is the following. First, I'm going to talk about what is Telegram. Next, I'm going to tell you about the Emacs community on Telegram. And finally, I'm going to discuss telega.el, an Emacs package for Telegram. In all of these, I'm now going to dive into details. My goal here is to give you some exposure about these topics. You can find out more online, if you want.

[00:00:35.840] Let's get started with what is Telegram. Telegram is a cloud-based instant messaging platform. It's a popular one. It has more than half a billion users. I think one of the reasons why it's so popular, it's because it's really rich in features while being user friendly. Hence, in some regions, Telegram has good market penetration. And of course, because of network effects, this brings even more users.

[00:01:01.120] The details of the features is not particularly important. What I want to emphasize, though, is that while Telegram is mostly text-based, there's also support for audio/video calls and notes, and there's also a lot of features which typically you find in other instant messaging platforms: you can chat with yourself, you can make polls, you can make quizzes, you can schedule messages, you can send attachments of any kind, even big ones, and you can send stickers. Telegram, overall, is quite customizable, and I would say that the platform is, overall, hackable. You can expand it with bots and the clients are open source. In all of this, we shouldn't forget, though, the Telegram is centralized and it is not free software. Nonetheless, it's still used by a number of people, and people use Telegram for different reasons. For example, some people use it to stay in touch with friends and families. For this, Telegram offers private chats or group chats with a restricted number of people. A lot of people use it for engaging in online communities. For this, Telegram has super groups, which are groups with up to hundreds of thousands of users, and has also channels, which are one-to-many ways of communicating, so these are ideally suited for, for example, following news, all sorts of news. Telegram also has bots which can be useful by themselves. They provide value. And the chat with oneself can be used for sending links, making notes, or sending reminders. So overall, there's multiple ways in which you can use Telegram. When it comes to instant messaging, many people call Telegram home.

[00:02:30.000] It shouldn't come as a surprise, then, that Emacs users want to meet on Telegram as well. And indeed, there's an Emacs community on Telegram. Here I'm listing a few super groups about Emacs. There are language groups, so there's Emacs English, Emacs Russian, Emacs Spanish, Emacs Mandarin, Portuguese... There are groups which are specific to starter packs. For example, there are Doom Emacs, Spacemacs, and there are groups which are specific to packages like telega which I'm going to discuss later. These are what you would expect from traditional internet chat rooms. So they're used for shared links, they're used for discussing, troubleshooting, giving each other recommendations... I think there are healthy communities with typically a hundred to a thousand members. An example of an initiative that's put forth by the Emacs community on Telegram is @emacs_stories. @emacs_stories collects links and messages and pictures that can showcase what Emacs can do. One of the goals here is to show people that are new to emacs what you can achieve if you spend time with your editor. And here, what I'm showing you is a screenshot from Telega.

[00:03:34.159] So let's move on to the final topic of this discussion, which is telega.el. Telega is a terrific piece of software. Telega is a interface to telegram within Emacs. It's developed by @zevlg, which is a long-time Emacs hacker, and it's very actively developed. Telegram itself is under active development, and telega has to implement all these new features that Telegram implements. Indeed, Telega implements almost all the features available in Telegram, even things like live location, except for audio/video calls but these are work in progress. Just to give you an idea of the size of this effort, we're talking about 30,000 lines of code, which doesn't tell you much, but maybe you can get a sense that this is a significant project. In fact, I think Telega is a really remarkable piece of software. Not only it implements all the features available in Telegram, but implements new ones, which are only available to Emacs users. Here I'm blinking the documentation for you to read if you're interested.

[00:04:28.560] What I want to mention, though, is that Telega is available on MELPA, but it requires an external library, TDlib. Most distributions do not pack a recent version of TDlib. Such you have to compile yourself. if you don't want to compile TDlib, you can use the officially supported Dockerfile or guix file so that you can get everything without too much worry.

[00:04:48.000] Now let me tell you more about Telegram. Of course, the best way is to just experiment with it yourself. And here I just want to give you a glimpse of how Telega works. When you start Telega, what you see is a root buffer. The root buffer is essentially the list of all the chats that you have, and, by itself, is a really powerful tool. You can use it for sorting and filtering your chats, or you can create groups which are thematic. There's sophisticated search functions. For example, if you want to search only for specific type of media, you can start new chats, you can get info about the chats, and you can even change Telegram settings which are applied across the board. Here I'm showing you an example of what it looks like. As you see, we're enjoying the support for emoji that Emacs has been improving upon over the past years. Once you select one of these charts, you're brought to the chat buffer. Here I'm showing an example of what a chat buffer looks like. So this is a screenshot from the Emacs English group where people were discussing about compiling Emacs. As you can see, we see the conversation. We see the avatars. We see that there's a thread. We also see that I'm going to send a message, message with emoji, a message with formatting, and I'm attaching an object. I can format my messages using Markdown or Org Mode or whatever I prefer and I can attach any kind of attachment I like. For example... What I can also do is, if I'm editing a buffer, I can send that buffer through Telega, which I find quite useful especially when I'm sending code. And again, just to show you that Telegram is not just text messages and Telega supports all the features in Telegram, here at the bottom, I'm showing a voice note being played through Emacs, and as you see, there are some buttons which are functional. If I hit the two times button, the playback speed will be twice, which is really neat. Telega and Emacs can even reproduce videos or gifs, at least for a recent version of Emacs.

[00:06:45.280] Finally, I want to emphasize that Telega integrates really well with Emacs. For example, we are showing you how you can use a transient interface to Telega, or on the other side, I'm showing you how Telega integrates with dashboard, so that we have recent chats and we have the Emacs stories. Because, you know, who doesn't like Emacs with stories. On top, on the other hand, I'm showing you that we can have syntax highlighting, which is something that Telegram by itself doesn't have, this Emacs-only feature, and we can edit this in the same way we edit Org Mode source blocks, so we can edit this with the minor mode for, in this case, Emacs Lisp.

[00:07:24.080] So, to conclude, I wanted to show you that the Emacs community also meets on Telegram, and we're an active and healthy community, and I want to present Telega as a really amazing piece of software, one of the best clients available for Telegram with Emacs. Even if you don't use Telegram, I think you should have a look at Telega just to appreciate how amazing a piece of software it is. And with this, I thank you for your attention, and if you like Telega, please consider donating to support the development of the package. Thanks.

Back to the schedule
Previous: Typesetting Gregorian Chant with Emacs
Next: A day in the life of a janitor