Beautiful, keyboard-driven Telegram client for the terminal, written in Go, with a Dracula-inspired theme.
- Phone authentication with verification codes and 2FA password support
- View chats and groups; open conversations and send messages
- Real-time updates: new messages and typing indicators
- Dracula theme with accessible, high-contrast styling
- Search and filter chats; unread counters; basic media labels
- Go 1.21+
- Telegram API credentials (
api_idandapi_hash) fromhttps://my.telegram.org/apps
Clone the repository and download dependencies:
git clone https://github.com/guicybercode/tele_gotui
cd tele_gotui
go mod downloadCreate a configuration file at ~/.telegram-tui/config.json (Windows expands %USERPROFILE% and ~):
{
"api_id": 12345678,
"api_hash": "your-api-hash-here",
"session_path": "%USERPROFILE%/.telegram-tui/session",
"theme": "dracula"
}Run from the project root:
go run .Or build and run:
go build -o telegram-tui
./telegram-tui- Do not use
&&; run commands on separate lines. - If your path contains accents, use
-LiteralPathor the 8.3 short name.- Example:
Set-Location -LiteralPath 'C:\Users\you\OneDrive\Área de Trabalho\tele_rustui' # or using 8.3 short name (find with `dir /x`) Set-Location 'C:\Users\you\OneDrive\AREADE~1\tele_rustui'
- Enter: submit phone / code / password
- Esc: move back one step
- Ctrl+C or q: quit
- ↑/↓: navigate chats
- Enter: open selected chat
- /: start filtering; Esc: clear filter
- q: quit
- Enter: send message (shows “Sending…” briefly)
- Esc: back to chat list
- PgUp/PgDown (or u/d): scroll history
- Ctrl+C or q: quit
Dracula-inspired palette for readability and aesthetics:
- Background:
#282a36 - Primary (sent):
#bd93f9 - Secondary (received):
#8be9fd - Accent:
#ff79c6, Border:#44475a, Comment:#6272a4
- Transport:
gotd/tdfor MTProto - UI:
bubbletea+bubbles(Elm-like update loop) - Styling:
lipgloss - Layers:
internal/telegram(client, auth, handlers) andinternal/ui(app, screens, components, theme)
tele_rustui/
├── main.go
├── go.mod
├── internal/
│ ├── telegram/
│ │ ├── client.go
│ │ ├── auth.go
│ │ └── handlers.go
│ ├── ui/
│ │ ├── app.go
│ │ ├── screens/
│ │ │ ├── login.go
│ │ │ ├── chatlist.go
│ │ │ └── chat.go
│ │ ├── components/
│ │ │ └── message.go
│ │ └── theme/
│ │ ├── theme.go
│ │ ├── dracula.go
│ │ └── styles.go
│ └── config/
│ └── config.go
└── README.md
- Complete peer support (users/chats/channels) and richer media rendering
- Pagination of history with proper fetch and entity resolution
- Message reactions, replies, and editing
- Configurable themes; light/dark toggle
Pull requests and issues are welcome. Fork the repo and open a PR from your branch. Please keep changes focused and include a brief rationale.
MIT (see LICENSE)
GitHub: https://github.com/guicybercode
"내가 네게 명령한 것이 아니냐 강하고 담대하라 두려워하지 말며 놀라지 말라 네가 어디로 가든지 네 하나님 여호와가 너와 함께 하느니라"