Telegram CLI(Command Line Interface)是一款在纯文本终端运行的 Telegram 客户端,专为缺乏图形界面的服务器或嵌入式设备设计。它把 Telegram 的即时通讯能力映射为一组可脚本化的命令,从而让运维人员能够在无需 X server 的环境下完成消息收发、文件传输甚至群组管理。
核心功能概览
纯文本交互让键盘操作几乎瞬间完成;内部实现了基于 MTProto 的加密层,安全性与官方客户端持平;对 Lua、Python 等脚本语言提供回调接口,能够在收到特定关键字时自动触发业务逻辑;资源占用仅在数十兆以内,即使在 1 GB 内存的 VPS 上也能保持稳定。
- 即时消息发送与接收,支持文字、图片、文档等多媒体类型。
- 群组创建、成员管理、权限调整,一条命令即可完成。
- 脚本化事件处理:收到「ping」自动回复「pong」的示例代码仅需十行。
- 后台守护模式(-d 参数)配合系统服务管理,实现 24 / 7 不间断运行。
典型使用场景
- 监控服务器日志,一旦出现关键错误即通过 Telegram 群组推送报警。
- 自动化部署脚本完成后,使用 CLI 向运维团队发送部署报告。
- 在 CI/CD 流水线中嵌入消息节点,实时反馈构建状态。
- 轻量级机器人:无需容器化,仅凭一行启动命令即可提供交互式问答。
快速上手示例
# 启动客户端并登录(首次会要求输入手机号与验证码)telegram-cli -k ~/.telegram-cli/server.pub
# 发送单条文字消息
msg user#123456 "构建已完成,版本 1.4.2"
# 简单 Lua 回调:收到 "ping" 回复 "pong"
function on_msg_receive(msg)
if msg.text == "ping" then
send_msg(msg.from.print_name, "pong", ok_cb, false)
end
end
高级配置要点
配置文件位于 ~/.telegram-cli/config,常用选项包括 daemon = true(后台运行)、log_level = 2(输出调试信息)以及自定义 proxy 参数以穿透企业防火墙。若需要对外提供 API,配合 telegram-cli -P 12345 -U user 可以开启 TCP 端口,供其他语言的绑定库直接调用。
“在没有桌面环境的 VPS 上,我用 Telegram CLI 把日志告警直接推到团队的频道,省掉了专门的监控平台。”——一位资深运维工程师
如果你已经在服务器上跑起了 Cron 任务,只要在脚本末尾加上一句 telegram-cli -s notify.lua,信息就会瞬间弹到手机屏幕上。这样一来,手动登录 Web 界面查看日志的时间,基本可以用一杯速溶咖啡的时长抵消。
