tele

module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 4, 2026 License: GPL-3.0

README ΒΆ

tele

  _            _
 | |_    ___  | |   ___
 | __|  / _ \ | |  / _ \
 | |_  |  __/ | | |  __/
  \__|  \___| |_|  \___|

A terminal-native Telegram client built for keyboard-driven workflows.

Go License Release Platform

Features β€’ Installation β€’ Why tele? β€’ Keybindings β€’ Roadmap


tele demo

Status: Active development β€” already usable for daily messaging (private chats, groups, replies, reactions). Some Telegram features are still in progress.


Why tele?

Telegram Desktop, the web client, and mobile apps are designed around mouse-first interaction.

If you live in the terminal β€” using tools like Neovim, yazi, k9s, or tmux β€” switching to a GUI messenger breaks your flow.

tele keeps you in the terminal.

It is built for:

  • keyboard-driven navigation
  • fast chat switching
  • SSH / remote workflows
  • distraction-free messaging

If tools like lazygit feel natural to you, tele will too.

It also runs lean β€” typically ~35MB RSS at idle vs several hundred MB for desktop clients.


Feature tele Telegram Desktop Web
Terminal-native βœ… ❌ ❌
Keyboard-first βœ… ⚠️ partial ⚠️ partial
Works over SSH βœ… ❌ ❌
Single static binary βœ… ❌ ❌
Full media support ⚠️ photos βœ… βœ…
Voice/video calls ❌ planned βœ… βœ…

Features

⚑ Keyboard-first UX

Vim-inspired navigation (j/k, gg/G, insert mode, etc.)

πŸ’¬ Full Telegram support

Private chats, groups, channels, replies, reactions, edits.

🧠 Terminal-native design

Built specifically for terminal workflows β€” not adapted from a GUI client.

πŸš€ Lightweight by design

Single static Go binary with fast startup and low memory usage.

βš™ Simple configuration

YAML-based config with sensible defaults.


Installation

macOS / Linux β€” Homebrew
brew tap sorokin-vladimir/tele
brew install tele
Linux β€” binary
curl -sL https://github.com/sorokin-vladimir/tele/releases/latest/download/tele-linux-amd64 \
  -o ~/.local/bin/tele && chmod +x ~/.local/bin/tele

For arm64: replace amd64 with arm64.


First launch

tele

On first run, tele creates:

~/.config/tele/config.yml

Then prompts for:

  • phone number
  • SMS code
  • optional 2FA password

Flags

Flag Description
--config <path> Path to config file (default ~/.config/tele/config.yml)
-e Enable debug logging
--trace Log sensitive metadata (peer IDs, message lengths). Never use on shared or synced file systems
--version Print version and exit

Keybindings

Key Action
j / k Navigate chats or scroll messages
i Compose message
r Reply
e / d Edit / delete message
t React
/ Search chats
0 / 1 / 2 Focus panes
q Quit

Full reference: docs/keybindings.md


Configuration

telegram:
  session_file: ~/.config/tele/session.json

ui:
  date_format: "15:04"
  history_limit: 50
  theme: default

Roadmap

Tracked via GitHub milestones.

Milestone Focus
Security & Reliability safer event handling, logging, cleanup
Architecture & Performance caching, memory caps, optimization
Feature Completeness forwarding, mentions, drafts, search
Power User & Polish themes, vim motions, command palette

Build from source

Requires Go 1.26+ and your own Telegram API credentials.

git clone https://github.com/sorokin-vladimir/tele
cd tele
go build \
  -ldflags "-X main.buildAPIID=YOUR_API_ID -X main.buildAPIHash=YOUR_API_HASH" \
  -o tele ./cmd/tele/

License

GPL-3.0 β€” free to use and fork; derivative works must remain open-source.


Built with:

Directories ΒΆ

Path Synopsis
cmd
tele command
internal
app
tg
ui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL