核心用法
tg-cli 是一款面向 Telegram 数据提取的命令行工具,通过官方 MTProto 协议直接与 Telegram 数据中心通信,绕过了 Bot API 的速率限制和功能约束。核心功能包括:聊天记录枚举(tg chats)、历史消息拉取(tg messages)、媒体文件下载(tg download)、论坛话题浏览(tg topics)以及多账户会话管理。支持通过用户名、数字 ID 或手机号定位聊天,所有输出均可通过 --json 标志转为结构化数据,便于与 jq 等工具链式处理。
显著优点
- 协议级访问:直接连接 MTProto,无 Bot API 消息长度、频率和隐私限制,可读取用户自身可见的全部消息历史
- 只读安全设计:工具架构上禁止任何写入操作(发消息、改群组、删数据等),仅本地写入会话文件和下载的媒体
- 多账户支持:可同时管理多个 Telegram 账号,通过
--account切换,会话隔离存储 - 灵活的数据处理:JSON 输出配合标准 Unix 工具,适合自动化归档、舆情监控、数据取证等场景
潜在局限与风险
- 凭证依赖:需用户自行在 my.telegram.org 申请 api_id/api_hash,且需绑定手机号完成 OTP 验证,入口门槛较高
- 会话安全敏感:SQLite 格式的会话文件包含持久化认证密钥,若被复制可导致账号被盗,需严格保护
~/.tg-mtproto-cli/sessions/目录 - 无官方背书:由社区开发者维护(GitHub: cyberash-dev),非 Telegram 官方出品,长期维护存在不确定性
- 功能边界:纯只读特性既是安全优势也是功能限制,无法用于自动化回复、消息发送等交互场景
适合人群
数据分析师、数字取证人员、需要备份个人 Telegram 数据的高级用户,以及开发 Telegram 自动化归档工作流的技术团队。不适合普通用户日常聊天或需要即时双向通信的场景。
常规风险
- 凭证(api_id/api_hash)一旦泄露,攻击者可滥用配额或关联账号
- 下载媒体时需注意存储路径,避免敏感文件意外暴露
- 频繁拉取大量历史消息可能触发 Telegram 风控侧写,导致临时限制