# 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](https://github.com/sahilpatel0x01/telegram-terminal-lite)

## 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`](http://main.py) → controls app flow
    
*   [`auth.py`](http://auth.py) → handles Telegram login/session
    
*   `chat_`[`loader.py`](http://loader.py) → loads dialogs and categorizes them
    
*   [`ui.py`](http://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](https://github.com/sahilpatel0x01/telegram-terminal-lite)

* * *

## 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?**
