init
This commit is contained in:
61
README.md
Normal file
61
README.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
cmake -S . -B build
|
||||
cmake --build build -j
|
||||
```
|
||||
|
||||
## Run
|
||||
|
||||
Create a Telegram application at <https://my.telegram.org/apps>, then either export credentials:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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 selection
|
||||
- `Tab`: switch focus between chats and messages
|
||||
- `Enter`: open the selected chat
|
||||
- `i`: start composing a message
|
||||
- `PgUp` / `PgDn`: scroll the current message view
|
||||
- `r`: reload chats or history
|
||||
- `Esc`: cancel current input
|
||||
- `q`: quit
|
||||
Reference in New Issue
Block a user