telegram-cli
SKILL.md
Telegram CLI Usage Guide
Overview
Use tele to authenticate, list dialogs, and fetch messages from Telegram directly from the terminal.
Setup
- Requires
uv. - Install/upgrade (one-time per session):
uv tool install --upgrade git+https://github.com/AFutureD/tele-cli - Verify install:
tele -V - Per terminal session: run
tele -honce, then confirm auth withtele -f json me(log in if needed).
Notice
- Call
tele -honce before running any command for the first time in the session. - Always use JSON output: always pass
-f jsontotele(example:tele -f json me). - In each session, confirm authentication before running non-auth commands: run
tele -f json me. - Commands under
tele auth ...do not require an existing authenticated session.
Quick Start
- Read help once:
tele -h - Log in (interactive prompts):
tele auth login - Confirm who you are:
tele -f json me - List dialogs and find a
dialog_id:tele -f json dialog list - Fetch recent messages from a dialog:
tele -f json message list <dialog_id> -n 20
Session Management
Global options:
--config <path>: alternate config file (default:~/.config/tele/config.toml)--session <name>: use a specific session file by name (listed bytele auth list)
Login / logout:
tele auth login(creates a local session; prompts for phone, code, and optional 2FA password)tele auth login --switch(log in and make the new session active)tele auth logout(logs out of the selected session)
List and switch sessions:
tele auth listtele auth switch --uid <user_id>tele auth switch --username <username>(accepts@aliceoralice)tele auth switch --session <session_name>
Where sessions live on disk (macOS/Linux default):
- Sessions folder:
~/.config/tele/sessions/ - Current activated session symlink:
~/.config/tele/sessions/Current.session
Dialog List
List all dialogs (users, groups, channels):
tele -f json dialog list
Notes:
- For
-f text, the output follows the template:[TYPE.UI.STATE] [UNREAD COUNT] [DIALOG_ID] NAMETYPE:Uuser,Ggroup,CchannelUI:Ppinned,Aarchived,-normalSTATE:Mmuted,-not muted
- For
-f json, each dialog includes keys likename,entity(withid),unread_count, and the latestmessage.
Message List
Fetch messages from a dialog:
tele -f json message list <dialog_id>
Common options:
- Limit count:
-n <num>(example:tele -f json message list <dialog_id> -n 20) - Pagination:
--offset_id <message_id>(fetch around/older than a known message id;offset_idis excluded) - Output order:
--order asc|desc - Time filters:
--from "<natural language or date>"--to "<natural language or date>"--range "<natural language range>"(overrides--from/--to, special:"this week")
Examples:
tele -f json message list 1375282077 -n 10tele -f json message list 1375282077 --range "last week"tele -f json message list 1375282077 --from "2025-02-05" --to "yesterday"
Send Message
Send a text message to a user, group, or channel:
- Basic:
tele message send <receiver> "<message>" - Force peer id:
tele message send -t peer_id "<peer_id>" "<message>"
Receiver formats:
- Username:
aliceor@alice - Phone:
"+15551234567" - Dialog name:
"My Group" - Numeric peer id:
"-1001234567890"(common for channels)
How the receiver is resolved:
- With
--entity/-t peer_id,<receiver>is treated as a numeric peer id (no name matching). - Without
--entity, it first tries Telegram/Telethon resolution (username/phone/id). If that fails, it scans your dialogs and picks the first match by:- dialog name contains
<receiver>(case-insensitive), or - dialog id / entity id equals
<receiver>(string compare).
- dialog name contains
Examples:
tele message send alice "hi"tele message send "+15551234567" "hi"tele message send "My Group" "hi"tele message send -t peer_id "-1001234567890" "hi"
Notes:
- Quote negative peer ids (or use
--) so the shell/CLI does not treat them as options. - The command prints no output on success; verify by listing messages:
tele -f json message list <dialog_id> -n 5.
Additional Informations
- Config file:
telereads~/.config/tele/config.tomlby default and will create it on first run;
Weekly Installs
8
Repository
afutured/tele-cliFirst Seen
Feb 9, 2026
Security Audits
Installed on
opencode8
gemini-cli8
github-copilot8
codex8
amp7
kimi-cli7