{"adoption": {"forks": 64, "observed_at": "2026-08-28T04:04:36.275418+00:00", "stars": 1393}, "canonical_url": "https://ross.abutalabs.com/products/signalbackup-tools", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Tool to work with Signal Backup files.", "domain": ["privacy", "developer-tools", "files"], "enriched": true, "function": ["cryptography", "database", "file-system", "cli", "data-science"], "health_score": 99, "homepage": null, "language": "C++", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["bepaald/signalbackup-tools"], "name": "bepaald/signalbackup-tools", "platform": ["windows", "cli", "cpp"], "pushed_at": "2026-08-22T11:15:00+00:00", "repo": "bepaald/signalbackup-tools", "stars": 1393, "tags": ["signal", "signal-backup", "backup-export", "message-export", "decryption", "sqlite", "messaging", "linux", "macos"], "topics": ["signal", "signal-android", "signal-app", "signal-backup", "signal-desktop", "signal-messages"], "urls": [], "use_cases": ["export signal messages to html or csv", "decrypt signal android backup file", "merge two signal backups", "fix broken signal backup", "extract attachments from signal backup", "import telegram chat history into signal", "crop signal backup to specific conversation"], "what_it_is": "A C++ command-line tool for working with backup files generated by the Signal Android app. It can decrypt, inspect, export, merge, crop, and repair Signal backups, including dumping databases/media and exporting conversations to HTML, TXT, CSV, and XML.", "when_to_avoid": ["you need a GUI tool", "you want to work with Signal Desktop data exclusively without Android backups", "you need guaranteed compatibility with the latest Signal format at all times, as format changes can temporarily break functionality"], "when_to_choose": ["you need offline, scriptable access to Signal backup data", "you want to export or migrate Signal conversations to other formats or apps", "you need to repair or merge Signal backup files"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/signalbackup-tools", "repo": "bepaald/signalbackup-tools", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.275418+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:39:28.985094+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8feb00408458f12b2fd9cf08fc79b797972eef53b10e78bc556c1964d89de701", "fetched_at": "2026-08-28T04:04:36.275418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bepaald/signalbackup-tools"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.275418+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:39:28.985094+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8feb00408458f12b2fd9cf08fc79b797972eef53b10e78bc556c1964d89de701", "fetched_at": "2026-08-28T04:04:36.275418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bepaald/signalbackup-tools"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:39:28.985094+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8feb00408458f12b2fd9cf08fc79b797972eef53b10e78bc556c1964d89de701", "fetched_at": "2026-08-28T04:04:36.275418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bepaald/signalbackup-tools"}], "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:04:36.275418+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.275418+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.275418+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:39:28.985094+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8feb00408458f12b2fd9cf08fc79b797972eef53b10e78bc556c1964d89de701", "fetched_at": "2026-08-28T04:04:36.275418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bepaald/signalbackup-tools"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.275418+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.275418+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:39:28.985094+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8feb00408458f12b2fd9cf08fc79b797972eef53b10e78bc556c1964d89de701", "fetched_at": "2026-08-28T04:04:36.275418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bepaald/signalbackup-tools"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.275418+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.275418+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.275418+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:39:28.985094+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8feb00408458f12b2fd9cf08fc79b797972eef53b10e78bc556c1964d89de701", "fetched_at": "2026-08-28T04:04:36.275418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bepaald/signalbackup-tools"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.275418+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.275418+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:39:28.985094+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8feb00408458f12b2fd9cf08fc79b797972eef53b10e78bc556c1964d89de701", "fetched_at": "2026-08-28T04:04:36.275418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bepaald/signalbackup-tools"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:39:28.985094+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8feb00408458f12b2fd9cf08fc79b797972eef53b10e78bc556c1964d89de701", "fetched_at": "2026-08-28T04:04:36.275418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bepaald/signalbackup-tools"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:39:28.985094+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8feb00408458f12b2fd9cf08fc79b797972eef53b10e78bc556c1964d89de701", "fetched_at": "2026-08-28T04:04:36.275418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bepaald/signalbackup-tools"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:39:28.985094+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8feb00408458f12b2fd9cf08fc79b797972eef53b10e78bc556c1964d89de701", "fetched_at": "2026-08-28T04:04:36.275418+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bepaald/signalbackup-tools"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 67}, "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": 2602, "days_push": 11, "days_rel": 11, "gap_med": null, "n_releases_24m": 1}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}