{"adoption": {"forks": 1014, "observed_at": "2026-08-28T04:07:46.333983+00:00", "stars": 3155}, "canonical_url": "https://ross.abutalabs.com/products/chatsecure-ios", "card": {"archived": false, "artifact_type": "application", "description": "ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP.", "domain": ["privacy", "messaging-platforms", "security", "mobile-development"], "enriched": true, "function": ["chatbot", "security", "cryptography", "networking"], "health_score": 20, "homepage": "https://chatsecure.org", "language": "Objective-C", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["ChatSecure/ChatSecure-iOS"], "name": "ChatSecure/ChatSecure-iOS", "platform": [], "pushed_at": "2024-08-01T23:41:29+00:00", "repo": "ChatSecure/ChatSecure-iOS", "stars": 3155, "tags": ["xmpp", "omemo", "otr", "end-to-end-encryption", "tor", "encrypted-messaging", "sqlcipher", "decentralized", "chat-client", "ios", "mobile"], "topics": ["omemo", "xmpp", "otr", "ios", "swift", "objective-c", "messaging", "chat", "iphone", "ipad", "encryption", "sqlcipher", "yapdatabase", "decentralized"], "urls": [], "use_cases": ["encrypted chat on iphone", "private messaging app for ios", "xmpp client with omemo encryption", "chat over tor to bypass firewalls", "interoperable encrypted messaging with android users", "self-hosted secure chat client", "off-the-record messaging on ios"], "what_it_is": "ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO end-to-end encryption over XMPP, with optional Tor connectivity. It interoperates with other XMPP clients like Conversations and Dino and encrypts local conversation logs with SQLCipher.", "when_to_avoid": ["you need a polished consumer messenger with modern features like video calls", "you want an Android client - ChatSecure Android is discontinued", "you need a license permitting closed-source App Store redistribution without an exception", "you prefer a simpler non-federated encrypted chat like Signal"], "when_to_choose": ["you need an open source, auditable encrypted messenger on iOS", "you want XMPP federation and interoperability with Conversations or Dino", "you need OMEMO or OTR end-to-end encryption with forward secrecy", "you want to route chat traffic through Tor for censorship circumvention"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/chatsecure-ios", "repo": "ChatSecure/ChatSecure-iOS", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.333983+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:25:38.536804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d256260fa72172af470164c20a6e9f73875a709625e7447b7e4a534d4a790d", "fetched_at": "2026-08-28T04:07:46.333983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChatSecure/ChatSecure-iOS"}, {"content_hash": "90fe588fd2353971cb5f066ccdc0585b1f809f10a7b2bfb0de63af1d839ed4dd", "fetched_at": "2026-08-29T09:40:07.966976+00:00", "kind": "homepage", "missing": false, "url": "https://chatsecure.org"}, {"content_hash": "05101a28816986288fbe9d52a1ca1402912d019b696b3ab054a41333e109096f", "fetched_at": "2026-08-29T09:40:07.976534+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/about"}, {"content_hash": "dad65980f841d52accce2b2ae45fc7ee964729beafdd7028eaf4e2e9b590c2a1", "fetched_at": "2026-08-29T09:40:07.978247+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/faq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.333983+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:25:38.536804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d256260fa72172af470164c20a6e9f73875a709625e7447b7e4a534d4a790d", "fetched_at": "2026-08-28T04:07:46.333983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChatSecure/ChatSecure-iOS"}, {"content_hash": "90fe588fd2353971cb5f066ccdc0585b1f809f10a7b2bfb0de63af1d839ed4dd", "fetched_at": "2026-08-29T09:40:07.966976+00:00", "kind": "homepage", "missing": false, "url": "https://chatsecure.org"}, {"content_hash": "05101a28816986288fbe9d52a1ca1402912d019b696b3ab054a41333e109096f", "fetched_at": "2026-08-29T09:40:07.976534+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/about"}, {"content_hash": "dad65980f841d52accce2b2ae45fc7ee964729beafdd7028eaf4e2e9b590c2a1", "fetched_at": "2026-08-29T09:40:07.978247+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/faq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:25:38.536804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d256260fa72172af470164c20a6e9f73875a709625e7447b7e4a534d4a790d", "fetched_at": "2026-08-28T04:07:46.333983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChatSecure/ChatSecure-iOS"}, {"content_hash": "90fe588fd2353971cb5f066ccdc0585b1f809f10a7b2bfb0de63af1d839ed4dd", "fetched_at": "2026-08-29T09:40:07.966976+00:00", "kind": "homepage", "missing": false, "url": "https://chatsecure.org"}, {"content_hash": "05101a28816986288fbe9d52a1ca1402912d019b696b3ab054a41333e109096f", "fetched_at": "2026-08-29T09:40:07.976534+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/about"}, {"content_hash": "dad65980f841d52accce2b2ae45fc7ee964729beafdd7028eaf4e2e9b590c2a1", "fetched_at": "2026-08-29T09:40:07.978247+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/faq"}], "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:07:46.333983+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.333983+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.333983+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:25:38.536804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d256260fa72172af470164c20a6e9f73875a709625e7447b7e4a534d4a790d", "fetched_at": "2026-08-28T04:07:46.333983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChatSecure/ChatSecure-iOS"}, {"content_hash": "90fe588fd2353971cb5f066ccdc0585b1f809f10a7b2bfb0de63af1d839ed4dd", "fetched_at": "2026-08-29T09:40:07.966976+00:00", "kind": "homepage", "missing": false, "url": "https://chatsecure.org"}, {"content_hash": "05101a28816986288fbe9d52a1ca1402912d019b696b3ab054a41333e109096f", "fetched_at": "2026-08-29T09:40:07.976534+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/about"}, {"content_hash": "dad65980f841d52accce2b2ae45fc7ee964729beafdd7028eaf4e2e9b590c2a1", "fetched_at": "2026-08-29T09:40:07.978247+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/faq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.333983+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.333983+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:25:38.536804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d256260fa72172af470164c20a6e9f73875a709625e7447b7e4a534d4a790d", "fetched_at": "2026-08-28T04:07:46.333983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChatSecure/ChatSecure-iOS"}, {"content_hash": "90fe588fd2353971cb5f066ccdc0585b1f809f10a7b2bfb0de63af1d839ed4dd", "fetched_at": "2026-08-29T09:40:07.966976+00:00", "kind": "homepage", "missing": false, "url": "https://chatsecure.org"}, {"content_hash": "05101a28816986288fbe9d52a1ca1402912d019b696b3ab054a41333e109096f", "fetched_at": "2026-08-29T09:40:07.976534+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/about"}, {"content_hash": "dad65980f841d52accce2b2ae45fc7ee964729beafdd7028eaf4e2e9b590c2a1", "fetched_at": "2026-08-29T09:40:07.978247+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/faq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.333983+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.333983+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.333983+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:25:38.536804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d256260fa72172af470164c20a6e9f73875a709625e7447b7e4a534d4a790d", "fetched_at": "2026-08-28T04:07:46.333983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChatSecure/ChatSecure-iOS"}, {"content_hash": "90fe588fd2353971cb5f066ccdc0585b1f809f10a7b2bfb0de63af1d839ed4dd", "fetched_at": "2026-08-29T09:40:07.966976+00:00", "kind": "homepage", "missing": false, "url": "https://chatsecure.org"}, {"content_hash": "05101a28816986288fbe9d52a1ca1402912d019b696b3ab054a41333e109096f", "fetched_at": "2026-08-29T09:40:07.976534+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/about"}, {"content_hash": "dad65980f841d52accce2b2ae45fc7ee964729beafdd7028eaf4e2e9b590c2a1", "fetched_at": "2026-08-29T09:40:07.978247+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/faq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.333983+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.333983+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:25:38.536804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d256260fa72172af470164c20a6e9f73875a709625e7447b7e4a534d4a790d", "fetched_at": "2026-08-28T04:07:46.333983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChatSecure/ChatSecure-iOS"}, {"content_hash": "90fe588fd2353971cb5f066ccdc0585b1f809f10a7b2bfb0de63af1d839ed4dd", "fetched_at": "2026-08-29T09:40:07.966976+00:00", "kind": "homepage", "missing": false, "url": "https://chatsecure.org"}, {"content_hash": "05101a28816986288fbe9d52a1ca1402912d019b696b3ab054a41333e109096f", "fetched_at": "2026-08-29T09:40:07.976534+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/about"}, {"content_hash": "dad65980f841d52accce2b2ae45fc7ee964729beafdd7028eaf4e2e9b590c2a1", "fetched_at": "2026-08-29T09:40:07.978247+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/faq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:25:38.536804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d256260fa72172af470164c20a6e9f73875a709625e7447b7e4a534d4a790d", "fetched_at": "2026-08-28T04:07:46.333983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChatSecure/ChatSecure-iOS"}, {"content_hash": "90fe588fd2353971cb5f066ccdc0585b1f809f10a7b2bfb0de63af1d839ed4dd", "fetched_at": "2026-08-29T09:40:07.966976+00:00", "kind": "homepage", "missing": false, "url": "https://chatsecure.org"}, {"content_hash": "05101a28816986288fbe9d52a1ca1402912d019b696b3ab054a41333e109096f", "fetched_at": "2026-08-29T09:40:07.976534+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/about"}, {"content_hash": "dad65980f841d52accce2b2ae45fc7ee964729beafdd7028eaf4e2e9b590c2a1", "fetched_at": "2026-08-29T09:40:07.978247+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/faq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:25:38.536804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d256260fa72172af470164c20a6e9f73875a709625e7447b7e4a534d4a790d", "fetched_at": "2026-08-28T04:07:46.333983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChatSecure/ChatSecure-iOS"}, {"content_hash": "90fe588fd2353971cb5f066ccdc0585b1f809f10a7b2bfb0de63af1d839ed4dd", "fetched_at": "2026-08-29T09:40:07.966976+00:00", "kind": "homepage", "missing": false, "url": "https://chatsecure.org"}, {"content_hash": "05101a28816986288fbe9d52a1ca1402912d019b696b3ab054a41333e109096f", "fetched_at": "2026-08-29T09:40:07.976534+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/about"}, {"content_hash": "dad65980f841d52accce2b2ae45fc7ee964729beafdd7028eaf4e2e9b590c2a1", "fetched_at": "2026-08-29T09:40:07.978247+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/faq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:25:38.536804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a7d256260fa72172af470164c20a6e9f73875a709625e7447b7e4a534d4a790d", "fetched_at": "2026-08-28T04:07:46.333983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChatSecure/ChatSecure-iOS"}, {"content_hash": "90fe588fd2353971cb5f066ccdc0585b1f809f10a7b2bfb0de63af1d839ed4dd", "fetched_at": "2026-08-29T09:40:07.966976+00:00", "kind": "homepage", "missing": false, "url": "https://chatsecure.org"}, {"content_hash": "05101a28816986288fbe9d52a1ca1402912d019b696b3ab054a41333e109096f", "fetched_at": "2026-08-29T09:40:07.976534+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/about"}, {"content_hash": "dad65980f841d52accce2b2ae45fc7ee964729beafdd7028eaf4e2e9b590c2a1", "fetched_at": "2026-08-29T09:40:07.978247+00:00", "kind": "site_page", "missing": false, "url": "https://chatsecure.org/faq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5500, "days_push": 762, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}