Go to file
2014-09-11 19:29:16 +04:00
debian initial commit 2014-02-03 21:31:23 +00:00
gentoo/net-im/telegram-cli Updated ebuild 2014-08-25 02:40:54 +04:00
rpm Updated rpm with new spec 2014-02-05 16:14:07 +01:00
.gitignore updates 2014-08-18 20:39:04 +04:00
.travis.yml deleted debug 2014-09-09 16:03:35 +04:00
append.tl Updated to layer 16 2014-08-31 18:57:03 +04:00
auto-static.c Changed default DC. Fixed memory leak 2014-09-11 14:28:56 +04:00
auto.h Fixed memory leak 2014-09-11 13:35:27 +04:00
ax_lua.m4 Update ax_lua.m4 2014-02-25 16:45:50 +01:00
binlog.c Changed default DC. Fixed memory leak 2014-09-11 14:28:56 +04:00
binlog.h support for secret chats file in no-binlog mode 2014-08-31 18:18:19 +04:00
binlog.tl support for secret chats file in no-binlog mode 2014-08-31 18:18:19 +04:00
CHANGELOG Increased version 2014-09-10 01:02:50 +04:00
config.h.in Support for compilers without __builtin_bswap32 2014-09-09 15:34:59 +04:00
config.sample fixed binlog problems. Set lock on binlog 2013-11-30 03:15:10 +04:00
configure Support for compilers without __builtin_bswap32 2014-09-09 15:34:59 +04:00
configure.ac Support for compilers without __builtin_bswap32 2014-09-09 15:34:59 +04:00
crc32.c Fixed __builtin config 2014-09-09 15:58:47 +04:00
crc32.h files for new version 2014-08-11 19:27:34 +04:00
encrypted_scheme16.tl Updated to layer 16 2014-08-31 18:57:03 +04:00
encrypted_scheme.tl Updated to layer 16 2014-08-31 18:57:03 +04:00
event-old.h Added attribute unused 2014-09-08 17:02:59 +04:00
gen_constants_h.awk Fixes with awk and upper case 2014-08-22 13:49:11 +00:00
generate.c Fixed memory leak 2014-09-11 13:35:27 +04:00
generate.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
include.h Added GPL-headers to source files 2013-10-23 18:26:17 +04:00
interface.c support for set_ttl query 2014-09-11 15:04:04 +04:00
interface.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
LICENSE Added GPL license text 2013-10-23 18:53:22 +04:00
LICENSE.h Added some fixes required by GPL 2013-10-25 13:28:29 +04:00
loop.c Deleted unneeded code 2014-09-11 14:33:12 +04:00
loop.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
lua-tg.c Check return values of malloc, realloc, strdup and strndup 2014-09-11 13:24:06 +04:00
lua-tg.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
m4_ax_check_openssl.m4 Fixed configure. Added fwd_media command 2014-09-07 19:17:35 +04:00
m4_ax_check_zlib.m4 Fixed configure. Added fwd_media command 2014-09-07 19:17:35 +04:00
m4-ax_gcc_builtin.m4 Support for compilers without __builtin_bswap32 2014-09-09 15:34:59 +04:00
main.c added SIGUSR1 handler to rotate logs 2014-09-10 01:01:22 +04:00
Makefile.in Fixed configure. Added fwd_media command 2014-09-07 19:17:35 +04:00
mtproto-client.c Fixed rsa pad 2014-09-09 20:50:07 +04:00
mtproto-client.h Added PFS support. Parallel auth_key generation. Small bug fixes 2014-08-29 17:33:15 +04:00
mtproto-common.c Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
mtproto-common.h Added support for direct queries enter 2014-09-10 15:52:42 +04:00
net.c Fixed event-1.4 2014-09-08 17:33:33 +04:00
net.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
no-preview.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
queries.c Fixed problems with send_msg on start 2014-09-11 19:29:16 +04:00
queries.h Added support for direct queries enter 2014-09-10 15:52:42 +04:00
README-LUA status function to lua 2014-09-09 17:27:43 +04:00
README.es use the right .pub file since commit #ff14a08d53ac9e223ffada8a41e69ebb673aa7d7 changed tg.pub to tg-server.pub 2014-03-21 16:34:06 +01:00
README.md Update README.md 2014-09-10 18:38:46 +04:00
scheme12.tl Updates 2014-08-12 09:59:59 +00:00
scheme15.tl Updates 2014-08-12 09:59:59 +00:00
scheme16.tl Updated to layer 16 2014-08-31 18:57:03 +04:00
scheme.tl Updated to layer 16 2014-08-31 18:57:03 +04:00
start-telegram-daemon Added scripts to help run telegram as daemon 2014-09-10 00:47:34 +04:00
structures.c Check return values of malloc, realloc, strdup and strndup 2014-09-11 13:24:06 +04:00
structures.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
telegram-cli.spec use the right .pub file since commit #ff14a08d53ac9e223ffada8a41e69ebb673aa7d7 changed tg.pub to tg-server.pub 2014-03-21 16:34:06 +01:00
telegram-daemon Added scripts to help run telegram as daemon 2014-09-10 00:47:34 +04:00
telegram.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
test.lua Updated test.lua 2014-09-08 23:17:47 +04:00
tg-server.pub Enhance naming to show that the pubkey is the server's. 2014-03-11 15:10:19 +01:00
tgl-fetch.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
tgl-inner.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
tgl-layout.h Added PFS support. Parallel auth_key generation. Small bug fixes 2014-08-29 17:33:15 +04:00
tgl.c Try to add support of libevent 1.4.* 2014-09-07 23:12:39 +04:00
tgl.h support for set_ttl query 2014-09-11 15:04:04 +04:00
tl-parser.c Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
tl-parser.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
tl-tl.h files for new version 2014-08-11 19:27:34 +04:00
tlc.c Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
tools.c fixed RAND_bytes return code checking 2014-09-03 19:39:42 -05:00
tools.h fixes 2014-08-21 05:56:53 +04:00
tree.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00
updates.c Fixed updates 2014-09-07 22:44:19 +04:00
updates.h Fixed licenses. libtgl is now distributed under LGPL 2.1+ 2014-08-22 02:02:43 +04:00

Telegram messenger CLI Build Status

Command-line interface for Telegram. Uses readline interface.

API, Protocol documentation

Documentation for Telegram API is available here: http://core.telegram.org/api

Documentation for MTproto protocol is available here: http://core.telegram.org/mtproto

Upgrading to version 1.0

First of all, the binary is now in ./bin folder and is named telegram-cli. So be careful, not to use old binary.

Second, config folder is now ${HOME}/.telegram-cli

Third, database is not compatible with older versions, so you'll have to login again.

Fourth, in peer_name '#' are substitued to '@'. (Not applied to appending of '#%d' in case of two peers having same name).

Installation

Clone GitHub Repository

 git clone https://github.com/vysheng/tg.git && cd tg

or download and extract zip

 wget https://github.com/vysheng/tg/archive/master.zip -O tg-master.zip
 unzip tg-master.zip && cd tg-master

Linux and BSDs

Install libs: readline or libedit, openssl and (if you want to use config) libconfig and liblua. If you do not want to use them pass options --disable-libconfig and --disable-liblua respectively.

On Ubuntu/Debian use:

 sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev

On gentoo:

 sudo emerge -av sys-libs/readline dev-libs/libconfig dev-libs/openssl dev-lang/lua dev-libs/libevent

On Fedora:

 sudo yum install lua-devel openssl-devel libconfig-devel readline-devel

On FreeBSD:

 pkg install libconfig libexecinfo lua52

On OpenBSD:

 pkg_add libconfig libexecinfo lua

Then,

 ./configure
 make

Other methods to install on linux

On Gentoo: use ebuild provided.

On Arch: https://aur.archlinux.org/packages/telegram-git/

Mac OS X

The client depends on readline library and libconfig, which are not included in OS X by default. You have to install these libraries manually.

If using Homebrew:

 brew install libconfig
 brew install readline
 brew install lua
 export CFLAGS="-I/usr/local/include -I/usr/local/Cellar/readline/6.2.4/include"
 export LDFLAGS="-L/usr/local/lib -L/usr/local/Cellar/readline/6.2.4/lib"
 ./configure && make

Thanks to @jfontan for this solution.

If using MacPorts:

 sudo port install libconfig-hr
 sudo port install readline
 sudo port install lua51
 export CFLAGS="-I/usr/local/include -I/opt/local/include"
 export LDFLAGS="-L/usr/local/lib -L/opt/local/lib/"
 ./configure && make

Install these ports:

  • devel/libconfig
  • devel/libexecinfo
  • lang/lua52

Then build:

 env CC=clang CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib LUA=/usr/local/bin/lua52 LUA_INCLUDE=-I/usr/local/include/lua52 LUA_LIB=-llua-5.2 ./configure
 make

Other UNIX

If you manage to launch it on other UNIX, please let me know.

Contacts

If you would like to ask a question, you can write to my telegram or to the github (or both). To contact me via telegram, you should use import_card method with argument 000653bf:0738ca5d:5521fbac:29246815:a27d0cda

Usage

bin/telegram-cli -k <public-server-key>

By default public key is stored in the same folder named tg-server.pub or in /etc/telegram-cli/server.pub, if it's not, specify where to find it:

bin/telegram-cli -k tg-server.pub

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

Messaging

  • 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

Multimedia

  • 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 <msg-seqno> - loads photo/video to download dir
  • view_photo/view_video/view_video_thumb <msg-seqno> - loads photo/video to download dir and starts system default viewer

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 <user> <chat topic> - creates a groupchat with user, use chat_add_user to add more users
  • 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

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