Your rating: None Average: 3.7 (9 votes)

Telegram messenger CLI

Command-line interface for Telegram. Uses readline interface.

API, Protocol documentation

Documentation for Telegram API is available here:

Documentation for MTproto protocol is available here:

NOTE: This is a SailfishOS compilation of unofficial Telegram Cli for Linux created by vysheng at


$ telegram-cli

Client support TAB completion and command history.

Peer refers to the name of the contact or dialog and can be accessed by TAB completion. For user contacts peer name is Name Lastname with all spaces changed to underscores. For chats it is it's title with all spaces changed to underscores For encrypted chats it is <Ex—Ālamation mark> Name Lastname with all spaces changed to underscores.

If two or more peers have same name, number is appended to the name. (for example A_B, A_B#1, A_B#2 and so on)

Supported commands


  • msg <peer> Text - sends message to this peer
  • fwd <user> <msg-seqno> - forward message to user. You can see message numbers starting client with -N
  • chat_with_peer <peer> starts one on one chat session with this peer. /exit or /quit to end this mode.
  • add_contact <phone-number> <first-name> <last-name> - tries to add contact to contact-list by phone
  • rename_contact <user> <first-name> <last-name> - tries to rename contact. If you have another device it will be a fight
  • mark_read <peer> - mark read all received messages with peer
  • delete_msg <msg-seqno> - deletes message (not completly, though)
  • restore_msg <msg-seqno> - restores delete message. Impossible for secret chats. Only possible short time (one hour, I think) after deletion


  • send_photo <peer> <photo-file-name> - sends photo to peer
  • send_video <peer> <video-file-name> - sends video to peer
  • send_text <peer> <text-file-name> - sends text file as plain messages
  • load_photo/load_video/load_video_thumb/load_audio/load_document/load_document_thumb <msg-seqno> - loads photo/video/audio/document to download dir
  • view_photo/view_video/view_video_thumb/view_audio/view_document/view_document_thumb <msg-seqno> - loads photo/video to download dir and starts system default viewer
  • fwd_media <msg-seqno> send media in your message. Use this to prevent sharing info about author of media (though, it is possible to determine user_id from media itself, it is not possible get access_hash of this user)
  • set_profile_photo <photo-file-name> - sets userpic. Photo should be square, or server will cut biggest central square part

Group chat options

  • chat_info <chat> - prints info about chat
  • chat_add_user <chat> <user> - add user to chat
  • chat_del_user <chat> <user> - remove user from chat
  • rename_chat <chat> <new-name>
  • create_group_chat <chat topic> <user1> <user2> <user3> ... - creates a groupchat with users, use chat_add_user to add more users
  • chat_set_photo <chat> <photo-file-name> - sets group chat photo. Same limits as for profile photos.


  • search <peer> pattern - searches pattern in messages with peer
  • global_search pattern - searches pattern in all messages

Secret chat

  • create_secret_chat <user> - creates secret chat with this user
  • visualize_key <secret_chat> - prints visualization of encryption key. You should compare it to your partner's one
  • set_ttl <secret_chat> <ttl> - sets ttl to secret chat. Though client does ignore it, client on other end can make use of it
  • accept_secret_chat <secret_chat> - manually accept secret chat (only useful when starting with -E key)

Stats and various info

  • user_info <user> - prints info about user
  • history <peer> [limit] - prints history (and marks it as read). Default limit = 40
  • dialog_list - prints info about your dialogs
  • contact_list - prints info about users in your contact list
  • suggested_contacts - print info about contacts, you have max common friends
  • stats - just for debugging
  • show_license - prints contents of GPLv2
  • help - prints this help
  • get_self - get our user info


  • export_card - print your 'card' that anyone can later use to import your contact
  • import_card <card> - gets user by card. You can write messages to him after that.


  • quit - quit
  • safe_quit - wait for all queries to end then quit

EXTRA DEPENDENCIES (they will auto resolve if you have the repo enabled):

libevent >= 2.1.11

libconfig >= 1.7.2

jansson >= 2.13.1

lua >= 5.3.5 (already available in default SFOS repos)


Application versions: 
File telegram-cli-1.3.3-1.armv7hl.rpm2.46 MB11/01/2018 - 03:33
File telegram-cli-1.3.3-2.armv7hl.rpm2.53 MB14/01/2018 - 21:38
File telegram-cli-1.3.3-3.armv7hl.rpm1.31 MB12/06/2020 - 02:59
File telegram-cli-1.3.3-4.armv7hl.rpm1.31 MB12/06/2020 - 03:05
File telegram-cli-1.4.1-1.armv7hl.rpm1.31 MB13/06/2020 - 22:42

* 1.4.1-1 compiled for SailfishOS 3.x (armv7hl) *The package is exactly the same like 1.3.3-4 but 1.4.1 is the real version of the telegram-cli being used.*

* 1.3.3-4 compiled for SailfishOS 3.x (armv7hl)

* 1.3.3-3 compiled for SailfishOS 3.x (armv7hl) *BROKEN DON'T USE*

* 1.3.3-2 compiled for SailfishOS 2.x (armv7hl)

* 1.3.3-1 compiled for SailfishOS 2.x without lua & json (armv7hl) *initial version*