{"adoption": {"forks": 232, "observed_at": "2026-08-28T04:03:12.307124+00:00", "stars": 1008}, "canonical_url": "https://ross.abutalabs.com/products/tg-signer", "card": {"archived": false, "artifact_type": "cli-tool", "description": "电报自动执行（签到、发送消息、点击键盘、AI回复等）；个人、群组、频道消息监控、转发与自动回复。Automated Telegram tasks (check-ins, sending messages, keyboard clicks, AI replies, etc.); monitoring, forwarding, and auto-replying to private, group, and channel messages.", "domain": ["messaging-platforms", "chatbots", "developer-tools"], "enriched": true, "function": ["workflow-automation", "chatbot", "scheduling", "cli", "llm-inference"], "health_score": 100, "homepage": null, "language": "Python", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["amchii/tg-signer"], "name": "amchii/tg-signer", "platform": ["python", "cli", "cross-platform", "self-hosted"], "pushed_at": "2026-08-24T12:19:20+00:00", "repo": "amchii/tg-signer", "stars": 1008, "tags": ["telegram", "telegram-userbot", "auto-checkin", "message-monitoring", "auto-reply", "message-forwarding", "webui", "telethon", "automation", "docker"], "topics": ["telegram", "telegram-bot"], "urls": [], "use_cases": ["automate daily Telegram check-ins with random time offsets", "monitor and auto-reply to group or channel messages", "forward messages between Telegram chats automatically", "click inline keyboard buttons based on configured text or AI image recognition", "schedule and send messages on Telegram", "run multiple Telegram accounts with one configuration"], "what_it_is": "A Python CLI tool (with optional WebUI and Docker images) that automates Telegram tasks using a user account session, such as daily check-ins, sending messages, clicking inline keyboards, and AI-powered replies. It also monitors, forwards, and auto-replies to private, group, and channel messages via a configurable rule engine.", "when_to_avoid": ["you only need a simple bot responding to commands via the Bot API", "you need a managed cloud service rather than a self-hosted long-running process", "automating a personal account violates the terms of service of your use case"], "when_to_choose": ["you need scheduled or rule-based automation on your own Telegram user account", "you want check-in bots, message forwarding, or auto-replies without writing code", "you want a self-hosted tool with CLI, WebUI, or Docker deployment options"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tg-signer", "repo": "amchii/tg-signer", "role": "main", "score": 91}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.307124+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:12:07.920600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4976a0c9820856fa2ad26d7479f04109b23d4d08eec5bdf591277b555e1bcc28", "fetched_at": "2026-08-28T04:03:12.307124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amchii/tg-signer"}, {"content_hash": "f83e227a04935a13cdcd266d634a71e50370247aefff95d62a6fb3d2ad6d7b9e", "fetched_at": "2026-08-29T13:12:29.628752+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tg-signer/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.307124+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:12:07.920600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4976a0c9820856fa2ad26d7479f04109b23d4d08eec5bdf591277b555e1bcc28", "fetched_at": "2026-08-28T04:03:12.307124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amchii/tg-signer"}, {"content_hash": "f83e227a04935a13cdcd266d634a71e50370247aefff95d62a6fb3d2ad6d7b9e", "fetched_at": "2026-08-29T13:12:29.628752+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tg-signer/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:12:07.920600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4976a0c9820856fa2ad26d7479f04109b23d4d08eec5bdf591277b555e1bcc28", "fetched_at": "2026-08-28T04:03:12.307124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amchii/tg-signer"}, {"content_hash": "f83e227a04935a13cdcd266d634a71e50370247aefff95d62a6fb3d2ad6d7b9e", "fetched_at": "2026-08-29T13:12:29.628752+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tg-signer/json"}], "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:03:12.307124+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.307124+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.307124+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:12:07.920600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4976a0c9820856fa2ad26d7479f04109b23d4d08eec5bdf591277b555e1bcc28", "fetched_at": "2026-08-28T04:03:12.307124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amchii/tg-signer"}, {"content_hash": "f83e227a04935a13cdcd266d634a71e50370247aefff95d62a6fb3d2ad6d7b9e", "fetched_at": "2026-08-29T13:12:29.628752+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tg-signer/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.307124+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.307124+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:12:07.920600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4976a0c9820856fa2ad26d7479f04109b23d4d08eec5bdf591277b555e1bcc28", "fetched_at": "2026-08-28T04:03:12.307124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amchii/tg-signer"}, {"content_hash": "f83e227a04935a13cdcd266d634a71e50370247aefff95d62a6fb3d2ad6d7b9e", "fetched_at": "2026-08-29T13:12:29.628752+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tg-signer/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.307124+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.307124+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.307124+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:12:07.920600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4976a0c9820856fa2ad26d7479f04109b23d4d08eec5bdf591277b555e1bcc28", "fetched_at": "2026-08-28T04:03:12.307124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amchii/tg-signer"}, {"content_hash": "f83e227a04935a13cdcd266d634a71e50370247aefff95d62a6fb3d2ad6d7b9e", "fetched_at": "2026-08-29T13:12:29.628752+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tg-signer/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.307124+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.307124+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:12:07.920600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4976a0c9820856fa2ad26d7479f04109b23d4d08eec5bdf591277b555e1bcc28", "fetched_at": "2026-08-28T04:03:12.307124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amchii/tg-signer"}, {"content_hash": "f83e227a04935a13cdcd266d634a71e50370247aefff95d62a6fb3d2ad6d7b9e", "fetched_at": "2026-08-29T13:12:29.628752+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tg-signer/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:12:07.920600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4976a0c9820856fa2ad26d7479f04109b23d4d08eec5bdf591277b555e1bcc28", "fetched_at": "2026-08-28T04:03:12.307124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amchii/tg-signer"}, {"content_hash": "f83e227a04935a13cdcd266d634a71e50370247aefff95d62a6fb3d2ad6d7b9e", "fetched_at": "2026-08-29T13:12:29.628752+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tg-signer/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:12:07.920600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4976a0c9820856fa2ad26d7479f04109b23d4d08eec5bdf591277b555e1bcc28", "fetched_at": "2026-08-28T04:03:12.307124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amchii/tg-signer"}, {"content_hash": "f83e227a04935a13cdcd266d634a71e50370247aefff95d62a6fb3d2ad6d7b9e", "fetched_at": "2026-08-29T13:12:29.628752+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tg-signer/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:12:07.920600+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4976a0c9820856fa2ad26d7479f04109b23d4d08eec5bdf591277b555e1bcc28", "fetched_at": "2026-08-28T04:03:12.307124+00:00", "kind": "readme", "missing": false, "url": "https://github.com/amchii/tg-signer"}, {"content_hash": "f83e227a04935a13cdcd266d634a71e50370247aefff95d62a6fb3d2ad6d7b9e", "fetched_at": "2026-08-29T13:12:29.628752+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/tg-signer/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 59, "rhythm": 99}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 839, "days_push": 9, "days_rel": 9, "gap_med": 16.5, "n_releases_24m": 19}, "score": 91, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}