Skip to content

guicybercode/tele_gotui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram TUI

Beautiful, keyboard-driven Telegram client for the terminal, written in Go, with a Dracula-inspired theme.

Features

  • 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

Requirements

  • Go 1.21+
  • Telegram API credentials (api_id and api_hash) from https://my.telegram.org/apps

Installation

Clone the repository and download dependencies:

git clone https://github.com/guicybercode/tele_gotui
cd tele_gotui
go mod download

Configuration

Create 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"
}

Usage

Run from the project root:

go run .

Or build and run:

go build -o telegram-tui
./telegram-tui

Windows PowerShell tips

  • Do not use &&; run commands on separate lines.
  • If your path contains accents, use -LiteralPath or 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'

Keybindings

Login

  • Enter: submit phone / code / password
  • Esc: move back one step
  • Ctrl+C or q: quit

Chat List

  • ↑/↓: navigate chats
  • Enter: open selected chat
  • /: start filtering; Esc: clear filter
  • q: quit

Chat

  • Enter: send message (shows “Sending…” briefly)
  • Esc: back to chat list
  • PgUp/PgDown (or u/d): scroll history
  • Ctrl+C or q: quit

Theme

Dracula-inspired palette for readability and aesthetics:

  • Background: #282a36
  • Primary (sent): #bd93f9
  • Secondary (received): #8be9fd
  • Accent: #ff79c6, Border: #44475a, Comment: #6272a4

Architecture

  • Transport: gotd/td for MTProto
  • UI: bubbletea + bubbles (Elm-like update loop)
  • Styling: lipgloss
  • Layers: internal/telegram (client, auth, handlers) and internal/ui (app, screens, components, theme)

Project Structure

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

Roadmap

  • 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

Contributing

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.

License

MIT (see LICENSE)

Author

GitHub: https://github.com/guicybercode


"내가 네게 명령한 것이 아니냐 강하고 담대하라 두려워하지 말며 놀라지 말라 네가 어디로 가든지 네 하나님 여호와가 너와 함께 하느니라"

About

Beautiful, keyboard-driven Telegram client for the terminal, written in Go, with a Dracula-inspired theme.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages