Telegram Search
轻松导出、备份并模糊搜索你的 Telegram 聊天记录,支持向量语义搜索与 AI 摘要。
- Star 数
- ★ 4.1k
- 最近更新
- 1 天前
- License
- AGPL-3.0
- 主语言
- TypeScript
- FA 评分
- 58/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 经常在 Telegram 聊天中查找历史信息,但官方搜索不支持中文或功能不足的普通用户
- 不适合
- 不愿申请 Telegram API ID 与 Hash 的用户
- 不想维护 Docker、数据库或 MinIO 等基础设施的个人
- 源码审查
- 58/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
Telegram Search 是一个开源工具,用于导出、备份和搜索 Telegram 聊天记录。它提供 Web 界面、Telegram Bot 和本地优先的 CLI(Agent 模式)。消息导出时自动进行分词和向量嵌入,支持多语言模糊匹配和图片语义搜索。部署方式包括 Docker Compose 或纯浏览器模式。项目还提供 RAG 问答、未读消息摘要和基于 Bot 的搜索功能。
Telegram Search 通过 Telegram API 拉取用户授权的聊天记录,将消息持久化到 PGlite 或 PostgreSQL 数据库,并为每条消息生成向量嵌入和分词索引。它提供 Web 界面(默认端口 3333)让用户搜索、浏览和导出消息。CLI 工具支持 configure、login、chats list、sync 和 export 等命令,输出 JSON 格式结果。此外,还支持 Telegram Bot 交互搜索和 deep link 跳转,以及通过 AI 嵌入模型进行图片语义搜索。
- 经常在 Telegram 聊天中查找历史信息,但官方搜索不支持中文或功能不足的普通用户
- 需要备份 Telegram 聊天记录,并希望按日期范围导出 JSONL 文件的个人或团队
- 希望通过自然语言与 AI 对话,基于历史消息获得 RAG 问答答案的用户
- 需要一键汇总未读消息摘要,快速了解群聊或频道动态的活跃用户
- 希望将 Telegram 消息与向量数据库结合,构建知识图谱或进一步分析的开发者
如何安装或部署这个 Agent?
- 克隆仓库:
git clone https://github.com/groupultra/telegram-search.git;2. 安装依赖:pnpm install;3. 复制环境变量:cp .env.example .env;4. 使用 Docker Compose:curl -L ...下载 docker-compose.yml 等文件,然后运行docker compose up -d。或者使用 Docker 镜像:docker run -d --name telegram-search -p 3333:3333 ghcr.io/groupultra/telegram-search:latest。也可开发模式:pnpm run dev(纯浏览器)或pnpm run server:dev和pnpm run web:dev(服务器模式)。
如何使用这个 Agent?
- 通过 Web 界面(如 http://localhost:3333)登录自己的 Telegram 账号(需要 API ID 和 Hash)。2. 在界面中授权并开始同步消息。3. 使用搜索框进行关键词或向量语义搜索。4. 若要使用 CLI,先构建包:
pnpm run build:packages && pnpm -F @tg-search/cli build,然后执行pnpm cli --profile work profile configure --apiId 123456 --apiHash abcdef配置,再pnpm cli --profile work auth login登录,使用chats list和sync命令同步数据,最后export导出。
这个 Agent 有哪些优点和局限?
- 支持 PGlite 和 PostgreSQL,部署灵活,数据库可迁移
- 内置向量嵌入和模糊搜索,中文和英文等多语言检索准确
- 提供 Web 界面、CLI 和 Telegram Bot 三种交互方式
- 支持图片语义搜索,以文搜图
- 具有未读消息摘要和 RAG 问答等 AI 功能
- 需要用户提供 Telegram API ID 和 Hash,涉及第三方凭据配置
- 依赖外部 AI 嵌入模型和 LLM API,可能产生费用和隐私风险
- 部署需要 Docker 或 Node.js 环境,有一定技术门槛
- CLI 的同步操作严格限制,需要用户明确授权,流程复杂
- 媒体存储依赖 MinIO,增加了基础设施管理成本
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Telegram Search 当前 | 58 · 缺口较多 | 自托管服务免费 + 模型费 | ★ 4.1k | 1 天前 | TypeScript | — |
| Teable - 人工智能电子表格 | 53 · 缺口较多 | 自托管服务免费版 + 付费版 | ★ 22k | 3 天前 | TypeScript | — |
| CocoIndex | 49 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 12k | 1 天前 | Rust | — |
| Mnemosyne | 59 · 缺口较多 | 命令行工具免费 | ★ 3.5k | 今天 | Python | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示 CLI 设计遵循最小权限原则:只申请所选会话类别,不申请联系人或文件导出权限;同步需显式 --takeout 且用户同意;stdout 只输出 JSON,日志走 stderr;导出不含媒体二进制、session、向量或密钥。但未提供代码级验证,且依赖安全仅靠 CI 和 provenance 检查,未提供依赖审计结果。外部效果方面,同步会写入本地 PGlite,但未提供回滚机制。来源归属仅通过 GitHub 仓库和许可证声明,发布者未验证。
README 与 CLI 文档描述一致,package.json 脚本与文档命令匹配,但未提供失败消息的具体示例。依赖可用性方面,使用 pnpm 和 lockfile,CI 有构建测试,但未提供依赖可用性保证。
面向个人用户和 Agent 使用场景,提供 CLI 和 Docker 部署,支持多种数据库和存储。能力边界清晰:只做导出和搜索,不执行 AI 总结(除非用户配置)。触发精度方面,CLI 命令明确,但未提供自动化触发机制。环境适配良好,支持多种部署方式。
信息架构清晰,README 提供快速开始和详细文档链接。安装说明详细,包括 Docker Compose 和 Docker Image。命名稳定,版本号明确。示例和 FAQ 有提供,但已知限制未明确列出。许可证为 AGPL-3.0,完整文本存在。版本变更日志未提供,维护责任未明确。
输出为 JSON 和 JSONL,便于程序处理。边际价值高,解决 Telegram 中文搜索痛点。成本效益合理,开源免费,但需自行部署。
README 中的功能声明未提供测试证据,CI 有测试但未提供覆盖率报告。跨来源佐证有限,仅依赖仓库自身。事实与推断分离不明确,部分功能为路线图未实现。
- 发布者身份未验证,依赖供应链风险需自行评估。
- 未提供依赖审计或漏洞扫描结果,建议部署前检查依赖安全。
- 同步操作会写入本地数据库,但未提供回滚机制,操作前请备份。
- 部分高级功能(如 AI 总结)需要用户自行配置 API,注意数据隐私。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
What's Changed * chore(homebrew): update CLI to v1.5.0 by @luoling8192 in https://github.com/groupultra/telegram-search/pull/692 * feat(server): add scoped remote access control by @luoling8192 in https://github.com/groupultra/telegram-search/pull/681 Full Changelog: https://github.com/groupultra/telegram-search/compare/v1.5.0...v1.6.0在 GitHub 查看 ↗ -
发布说明摘录
Add short-lived attachment URLs for consumers that cannot send an Authorization header, including image analysis tools. - tg-search media url exchanges authenticated access to one attachment for an opaque URL that expires after five minutes. Anonymous GET/HEAD returns the original bytes; explicit local and Telegram sources are supported. - Tickets bind the account, attachment identity, size and byte budget. Bearer rotation invalidates issued links. Download capacity, deadlines and safe error responses bound resource use. …在 GitHub 查看 ↗ -
发布说明摘录
Distribution status CLI and Homebrew v1.4.0 are published and independently verified. The Docker v1.4.0 image is not published: the [multi-architecture workflow](https://github.com/groupultra/telegram-search/actions/runs/38889264635) reached its 15-minute limit during ARM64 Web compilation. This remains tracked in [#682](https://github.com/groupultra/telegram-search/issues/682). The Web deployment workflow succeeded; anonymous access from the verification environment returned HTTP 403, so authenticated business flows remain unverified. Upgrade notes …在 GitHub 查看 ↗