{"adoption": {"forks": 273, "observed_at": "2026-08-28T04:08:34.379481+00:00", "stars": 4078}, "canonical_url": "https://ross.abutalabs.com/products/telegram-search", "card": {"archived": false, "artifact_type": "application", "description": "🔍 导出并模糊搜索 Telegram 聊天记录 | Export and fuzzy search your Telegram chat history", "domain": ["messaging-platforms", "self-hosted", "artificial-intelligence"], "enriched": true, "function": ["search-engine", "rag", "chatbot", "web-scraping", "vector-database", "llm-inference", "mcp"], "health_score": 100, "homepage": "https://search.lingogram.app", "language": "TypeScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["groupultra/telegram-search"], "name": "groupultra/telegram-search", "platform": ["self-hosted"], "pushed_at": "2026-08-26T09:47:36+00:00", "repo": "groupultra/telegram-search", "stars": 4078, "tags": ["telegram", "chat-history", "fuzzy-search", "semantic-search", "message-backup", "telegram-bot", "embeddings", "pglite", "minio", "search", "retrieval-augmented-generation", "docker", "web-server", "nodejs", "typescript"], "topics": ["embedding", "telegram", "telegram-bot", "mcp", "ai", "ai-agent"], "urls": [], "use_cases": ["search my telegram chat history", "export and backup telegram messages", "fuzzy search telegram messages in chinese", "semantic vector search over chat logs", "chat with an ai assistant about my telegram history", "summarize unread telegram messages", "find a telegram message by meaning instead of keywords"], "what_it_is": "A self-hostable tool that exports, backs up, and indexes Telegram chat history into a database (PGlite or PostgreSQL) with tokenization and vector embeddings. It provides fuzzy and semantic search, image search, a Telegram bot, and AI features like RAG Q&A and unread message summaries.", "when_to_avoid": ["you only need Telegram's native search and don't want to run a service", "you need a fully managed hosted solution without self-hosting", "you want to search platforms other than Telegram (Discord support is still on the roadmap)", "you cannot grant the tool access to your Telegram account data"], "when_to_choose": ["you want full-text and semantic search over your own Telegram history", "Telegram's built-in search fails for your language (e.g. Chinese)", "you want self-hosted message backup with media stored in object storage", "you want RAG Q&A or AI summaries over your chat logs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/telegram-search", "repo": "groupultra/telegram-search", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:23:26.811905+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6840e7f80f49a7d672f6be0fb29403a29512b1e0b8a48eaf787facad26ef19eb", "fetched_at": "2026-08-28T04:08:34.379481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/groupultra/telegram-search"}, {"content_hash": "b17a8ce41fd0452398941ab661ee7f230cebccbc0c80494eee4c7d75bc0e3295", "fetched_at": "2026-08-29T09:15:41.424585+00:00", "kind": "homepage", "missing": false, "url": "https://search.lingogram.app"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:23:26.811905+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6840e7f80f49a7d672f6be0fb29403a29512b1e0b8a48eaf787facad26ef19eb", "fetched_at": "2026-08-28T04:08:34.379481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/groupultra/telegram-search"}, {"content_hash": "b17a8ce41fd0452398941ab661ee7f230cebccbc0c80494eee4c7d75bc0e3295", "fetched_at": "2026-08-29T09:15:41.424585+00:00", "kind": "homepage", "missing": false, "url": "https://search.lingogram.app"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:23:26.811905+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6840e7f80f49a7d672f6be0fb29403a29512b1e0b8a48eaf787facad26ef19eb", "fetched_at": "2026-08-28T04:08:34.379481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/groupultra/telegram-search"}, {"content_hash": "b17a8ce41fd0452398941ab661ee7f230cebccbc0c80494eee4c7d75bc0e3295", "fetched_at": "2026-08-29T09:15:41.424585+00:00", "kind": "homepage", "missing": false, "url": "https://search.lingogram.app"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:23:26.811905+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6840e7f80f49a7d672f6be0fb29403a29512b1e0b8a48eaf787facad26ef19eb", "fetched_at": "2026-08-28T04:08:34.379481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/groupultra/telegram-search"}, {"content_hash": "b17a8ce41fd0452398941ab661ee7f230cebccbc0c80494eee4c7d75bc0e3295", "fetched_at": "2026-08-29T09:15:41.424585+00:00", "kind": "homepage", "missing": false, "url": "https://search.lingogram.app"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:23:26.811905+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6840e7f80f49a7d672f6be0fb29403a29512b1e0b8a48eaf787facad26ef19eb", "fetched_at": "2026-08-28T04:08:34.379481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/groupultra/telegram-search"}, {"content_hash": "b17a8ce41fd0452398941ab661ee7f230cebccbc0c80494eee4c7d75bc0e3295", "fetched_at": "2026-08-29T09:15:41.424585+00:00", "kind": "homepage", "missing": false, "url": "https://search.lingogram.app"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:23:26.811905+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6840e7f80f49a7d672f6be0fb29403a29512b1e0b8a48eaf787facad26ef19eb", "fetched_at": "2026-08-28T04:08:34.379481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/groupultra/telegram-search"}, {"content_hash": "b17a8ce41fd0452398941ab661ee7f230cebccbc0c80494eee4c7d75bc0e3295", "fetched_at": "2026-08-29T09:15:41.424585+00:00", "kind": "homepage", "missing": false, "url": "https://search.lingogram.app"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.379481+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:23:26.811905+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6840e7f80f49a7d672f6be0fb29403a29512b1e0b8a48eaf787facad26ef19eb", "fetched_at": "2026-08-28T04:08:34.379481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/groupultra/telegram-search"}, {"content_hash": "b17a8ce41fd0452398941ab661ee7f230cebccbc0c80494eee4c7d75bc0e3295", "fetched_at": "2026-08-29T09:15:41.424585+00:00", "kind": "homepage", "missing": false, "url": "https://search.lingogram.app"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:23:26.811905+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6840e7f80f49a7d672f6be0fb29403a29512b1e0b8a48eaf787facad26ef19eb", "fetched_at": "2026-08-28T04:08:34.379481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/groupultra/telegram-search"}, {"content_hash": "b17a8ce41fd0452398941ab661ee7f230cebccbc0c80494eee4c7d75bc0e3295", "fetched_at": "2026-08-29T09:15:41.424585+00:00", "kind": "homepage", "missing": false, "url": "https://search.lingogram.app"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:23:26.811905+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6840e7f80f49a7d672f6be0fb29403a29512b1e0b8a48eaf787facad26ef19eb", "fetched_at": "2026-08-28T04:08:34.379481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/groupultra/telegram-search"}, {"content_hash": "b17a8ce41fd0452398941ab661ee7f230cebccbc0c80494eee4c7d75bc0e3295", "fetched_at": "2026-08-29T09:15:41.424585+00:00", "kind": "homepage", "missing": false, "url": "https://search.lingogram.app"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:23:26.811905+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6840e7f80f49a7d672f6be0fb29403a29512b1e0b8a48eaf787facad26ef19eb", "fetched_at": "2026-08-28T04:08:34.379481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/groupultra/telegram-search"}, {"content_hash": "b17a8ce41fd0452398941ab661ee7f230cebccbc0c80494eee4c7d75bc0e3295", "fetched_at": "2026-08-29T09:15:41.424585+00:00", "kind": "homepage", "missing": false, "url": "https://search.lingogram.app"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 40, "rhythm": 86}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 571, "days_push": 7, "days_rel": 15, "gap_med": 2, "n_releases_24m": 84}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}