explaingit

telegramdesktop/tdesktop

Analysis updated 2026-06-20

31,685C++Audience · developerComplexity · 5/5LicenseSetup · hard

TLDR

The complete source code for Telegram Desktop, the official native desktop app for sending messages and making calls via Telegram's encrypted MTProto protocol.

Mindmap

mindmap
  root((tdesktop))
    What it does
      Official Telegram desktop client
      MTProto encrypted messaging
      Voice and video calls
    Tech Stack
      C++ native app
      Qt UI framework
      WebRTC OpenSSL FFmpeg
    Use Cases
      Build from source
      Security auditing
      Custom forks
      Contributing patches
    Audience
      C++ developers
      Security researchers
      Open-source contributors
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build Telegram Desktop from source to run a custom version with your own modifications on Windows, macOS, or Linux.

USE CASE 2

Audit the client code for security research to verify how MTProto encryption is implemented in practice.

USE CASE 3

Contribute patches or new features to the official Telegram Desktop client via pull requests.

USE CASE 4

Create a custom Telegram client fork with different UI or behavior for a specialized use case.

What is it built with?

C++QtOpenSSLWebRTCFFmpeg

How does it compare?

telegramdesktop/tdesktopfacebook/rocksdbvalvesoftware/proton
Stars31,68531,64631,333
LanguageC++C++C++
Setup difficultyhardhardhard
Complexity5/55/55/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires building multiple large C++ libraries from source (Qt, WebRTC, FFmpeg, OpenSSL) before the main app compiles, typically takes hours even on fast hardware.

GPLv3 with OpenSSL exception, you can use and modify this freely but any distributed version must also be open-source under GPLv3.

In plain English

This repository contains the complete source code for Telegram Desktop, the official desktop client for the Telegram messaging service. Telegram Desktop is the application you download and run on your computer to send messages, share files, join groups, make calls, and use all of Telegram's features from a desktop environment rather than a mobile device. The client is built on top of the official Telegram API and uses MTProto, Telegram's own encrypted communication protocol, to securely send and receive messages. MTProto is designed to be fast and resistant to various forms of traffic analysis and interception. The application is a native desktop program, not a web wrapper, which means it runs directly on the operating system and accesses hardware for things like audio calls and notifications. The code supports building on Windows, macOS, and Linux. The README primarily contains build instructions and a list of the third-party libraries the application depends on, including Qt for the user interface, OpenSSL for cryptography, WebRTC for voice and video calls, FFmpeg for media playback, and several compression and utility libraries. You would interact with this repository if you want to build Telegram Desktop from source, contribute patches or improvements, audit the client's code for security research, or create a custom fork. For normal use, pre-built installers are available directly from Telegram's website. The primary programming language is C++, and the user interface is built with Qt 5 and Qt 6. The project is released under the GPLv3 license with an OpenSSL exception.

Copy-paste prompts

Prompt 1
I want to build telegramdesktop/tdesktop from source on Ubuntu. Walk me through all the dependency installs and build steps needed to get a working binary.
Prompt 2
I'm doing security research on telegramdesktop/tdesktop. Where in the C++ codebase is the MTProto encryption implemented, and how does message authentication work?
Prompt 3
I want to contribute a UI feature to telegramdesktop/tdesktop. What's the architecture of the Qt-based UI layer and where should I add a new settings panel?
Prompt 4
How do I build telegramdesktop/tdesktop on macOS with Qt 6 instead of Qt 5, and what differences should I expect?
Prompt 5
I'm creating a fork of telegramdesktop/tdesktop. What are the GPLv3 obligations I need to fulfill if I distribute my custom build?

Frequently asked questions

What is tdesktop?

The complete source code for Telegram Desktop, the official native desktop app for sending messages and making calls via Telegram's encrypted MTProto protocol.

What language is tdesktop written in?

Mainly C++. The stack also includes C++, Qt, OpenSSL.

What license does tdesktop use?

GPLv3 with OpenSSL exception, you can use and modify this freely but any distributed version must also be open-source under GPLv3.

How hard is tdesktop to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is tdesktop for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub telegramdesktop on gitmyhub

Verify against the repo before relying on details.