<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[sahil patel]]></title><description><![CDATA[sahil patel]]></description><link>https://blog.sahil.cloud</link><image><url>https://cdn.hashnode.com/uploads/logos/69d51c1e5da14bc70e62bfa5/08673b60-fdda-4e23-ab25-33b4ef95fd76.jpg</url><title>sahil patel</title><link>https://blog.sahil.cloud</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 18:44:30 GMT</lastBuildDate><atom:link href="https://blog.sahil.cloud/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[I Built Telegram Inside My Terminal Using Python ]]></title><description><![CDATA[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, gro]]></description><link>https://blog.sahil.cloud/i-built-telegram-inside-my-terminal-using-python</link><guid isPermaLink="true">https://blog.sahil.cloud/i-built-telegram-inside-my-terminal-using-python</guid><category><![CDATA[Python]]></category><category><![CDATA[telegram]]></category><category><![CDATA[cli]]></category><category><![CDATA[Open Source]]></category><category><![CDATA[Developer Tools]]></category><dc:creator><![CDATA[Sahil Patel]]></dc:creator><pubDate>Tue, 07 Apr 2026 15:39:19 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69d51c1e5da14bc70e62bfa5/42880c64-e026-4a77-ba4b-a6eb647ad05b.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most people open Telegram with a mouse.</p>
<p>I wanted arrow keys, raw speed, and zero distractions.</p>
<p>So I built <strong>Telegram Terminal Lite</strong> — 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.</p>
<hr />
<h2>Why build this when Telegram already exists?</h2>
<p>Because modern apps are overloaded.</p>
<p>Sometimes I don’t want notifications, animations, sidebars, stickers, recommendations, floating buttons, and ten tabs fighting for attention.</p>
<p>I want:</p>
<ul>
<li><p>open terminal</p>
</li>
<li><p>authenticate</p>
</li>
<li><p>choose chat</p>
</li>
<li><p>read messages</p>
</li>
<li><p>exit</p>
</li>
</ul>
<p>That’s it.</p>
<hr />
<h2>What Telegram Terminal Lite actually does</h2>
<p>The project uses:</p>
<ul>
<li><p><code>telethon</code> for Telegram API communication</p>
</li>
<li><p><code>questionary</code> for keyboard-based navigation</p>
</li>
<li><p><code>rich</code> for terminal rendering</p>
</li>
</ul>
<p>This makes the terminal feel surprisingly usable for messaging workflows.</p>
<hr />
<p><a href="https://github.com/sahilpatel0x01/telegram-terminal-lite">View telegram-terminal-lite on GitHub</a></p>
<h2>Features</h2>
<ul>
<li><p>Browse Users</p>
</li>
<li><p>Browse Groups</p>
</li>
<li><p>Browse Channels</p>
</li>
<li><p>Browse Bots</p>
</li>
<li><p>Open any chat</p>
</li>
<li><p>Read latest 20 messages</p>
</li>
<li><p>Navigate fully with arrow keys</p>
</li>
</ul>
<hr />
<h2>Why terminal instead of GUI?</h2>
<p>Because terminal gives:</p>
<ul>
<li><p>lower memory usage</p>
</li>
<li><p>faster startup</p>
</li>
<li><p>no visual noise</p>
</li>
<li><p>easier scripting later</p>
</li>
</ul>
<p>This is especially useful if you already live inside shell sessions.</p>
<hr />
<h2>Internal structure</h2>
<p>The project is split cleanly:</p>
<ul>
<li><p><a href="http://main.py"><code>main.py</code></a> → controls app flow</p>
</li>
<li><p><a href="http://auth.py"><code>auth.py</code></a> → handles Telegram login/session</p>
</li>
<li><p><code>chat_</code><a href="http://loader.py"><code>loader.py</code></a> → loads dialogs and categorizes them</p>
</li>
<li><p><a href="http://ui.py"><code>ui.py</code></a> → renders menus and messages</p>
</li>
</ul>
<p>That separation made debugging much easier while keeping the MVP small.</p>
<hr />
<h2>First engineering challenge</h2>
<p>Telegram authentication is easy once.</p>
<p>Reliable session handling is where it starts becoming real.</p>
<p>The moment sessions break, the whole CLI becomes annoying.</p>
<p>So authentication had to feel invisible after first login.</p>
<hr />
<h2>Why this project matters beyond Telegram</h2>
<p>This is not only a Telegram client.</p>
<p>It is a pattern:</p>
<p><strong>take an everyday GUI workflow and compress it into terminal-native interaction.</strong></p>
<p>That same idea can be reused for:</p>
<ul>
<li><p>email</p>
</li>
<li><p>dashboards</p>
</li>
<li><p>internal tools</p>
</li>
<li><p>monitoring systems</p>
</li>
</ul>
<hr />
<h2>What comes next</h2>
<p>Possible next versions:</p>
<ul>
<li><p>send messages</p>
</li>
<li><p>search chats</p>
</li>
<li><p>message filters</p>
</li>
<li><p>file preview</p>
</li>
<li><p>command shortcuts</p>
</li>
</ul>
<hr />
<h2>Repo</h2>
<p><a href="https://github.com/sahilpatel0x01/telegram-terminal-lite">View telegram-terminal-lite on GitHub</a></p>
<hr />
<h2>Closing thought</h2>
<p>A lot of software becomes useful when you remove features, not when you add them.</p>
<p>This project started with one question:</p>
<p><strong>How little Telegram can exist and still remain useful?</strong></p>
]]></content:encoded></item></channel></rss>