70c2e779579c3643947e4c689abb5261c84ac3e2
telegram-tui
A minimal Telegram terminal client built with ncurses and TDLib.
Features
- interactive login flow inside the TUI
- chat list in the left pane
- message view in the right pane
- send plain text messages
- scroll chats and message history with the keyboard
Requirements
- CMake 3.21+
- a C++17 compiler
ncurses- TDLib build dependencies (
gperf,openssl,zlib,git)
The project vendors TDLib automatically by default. If you already have TDLib installed with CMake package metadata, configure with -DTELEGRAM_TUI_USE_SYSTEM_TDLIB=ON.
Build
cmake -S . -B build
cmake --build build -j
Run
Create a Telegram application at https://my.telegram.org/apps, then either export credentials:
export TELEGRAM_API_ID=123456
export TELEGRAM_API_HASH=0123456789abcdef0123456789abcdef
./build/telegram-tui
Or start the app without env vars and enter them interactively when prompted.
When entered in the TUI, the app now stores api_id and api_hash in
~/.local/share/telegram-tui/config.json and reuses them on later launches.
To use Telegram test servers instead of production:
export TELEGRAM_USE_TEST_DC=1
./build/telegram-tui
The client stores TDLib state in ~/.local/share/telegram-tui/tdlib for production and ~/.local/share/telegram-tui/test/tdlib for test mode.
Keys
Up/Down: move selectionTab: switch focus between chats and messagesEnter: open the selected chati: start composing a messagePgUp/PgDn: scroll the current message viewr: reload chats or historyEsc: cancel current inputq: quit
Description