Skip to main content

Command Palette

Search for a command to run...

I Built Telegram Inside My Terminal Using Python

Published
3 min read
I Built Telegram Inside My Terminal Using Python

Most people open Telegram with a mouse.

I wanted arrow keys, raw speed, and zero distractions.

So I built Telegram Terminal Lite — a minimal Python-based Telegram client that lets me browse chats, groups, channels, bots, and recent messages directly inside the terminal using a clean interactive CLI.


Why build this when Telegram already exists?

Because modern apps are overloaded.

Sometimes I don’t want notifications, animations, sidebars, stickers, recommendations, floating buttons, and ten tabs fighting for attention.

I want:

  • open terminal

  • authenticate

  • choose chat

  • read messages

  • exit

That’s it.


What Telegram Terminal Lite actually does

The project uses:

  • telethon for Telegram API communication

  • questionary for keyboard-based navigation

  • rich for terminal rendering

This makes the terminal feel surprisingly usable for messaging workflows.


View telegram-terminal-lite on GitHub

Features

  • Browse Users

  • Browse Groups

  • Browse Channels

  • Browse Bots

  • Open any chat

  • Read latest 20 messages

  • Navigate fully with arrow keys


Why terminal instead of GUI?

Because terminal gives:

  • lower memory usage

  • faster startup

  • no visual noise

  • easier scripting later

This is especially useful if you already live inside shell sessions.


Internal structure

The project is split cleanly:

  • main.py → controls app flow

  • auth.py → handles Telegram login/session

  • chat_loader.py → loads dialogs and categorizes them

  • ui.py → renders menus and messages

That separation made debugging much easier while keeping the MVP small.


First engineering challenge

Telegram authentication is easy once.

Reliable session handling is where it starts becoming real.

The moment sessions break, the whole CLI becomes annoying.

So authentication had to feel invisible after first login.


Why this project matters beyond Telegram

This is not only a Telegram client.

It is a pattern:

take an everyday GUI workflow and compress it into terminal-native interaction.

That same idea can be reused for:

  • email

  • dashboards

  • internal tools

  • monitoring systems


What comes next

Possible next versions:

  • send messages

  • search chats

  • message filters

  • file preview

  • command shortcuts


Repo

View telegram-terminal-lite on GitHub


Closing thought

A lot of software becomes useful when you remove features, not when you add them.

This project started with one question:

How little Telegram can exist and still remain useful?