{
 "licence": "CC BY 4.0",
 "source": "https://n3tman.github.io/vibe-check/",
 "generated": "2026-11-05T14:37:48.702Z",
 "collector_run": "2026-11-05T05:29:27+00:00",
 "mscs": [
  {
   "msc": 1219,
   "title": "Proposal for storing megolm keys serverside",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/1219",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1227,
   "title": "Proposal for lazy-loading room members to improve initial sync speed and client RAM usage",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/1227",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1234,
   "title": "Rich Replies format",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/1234",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "dendrite",
    "harmony",
    "zendrite"
   ]
  },
  {
   "msc": 1236,
   "title": "Matrix Widget API v2",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/1236",
   "status_detail": "status from Tuwunel's MSC inventory (https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L737); the proposals repo issue was not readable from the research session",
   "labels": [],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1301,
   "title": "Proposal for improving authorization for the matrix profile API",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/1301",
   "status_detail": "status from Tuwunel's MSC inventory (https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L1182); the proposals repo issue was not readable from the research session",
   "labels": [],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 1425,
   "title": "Room Versioning",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/1425",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1442,
   "title": "State Resolution: Reloaded",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/1442",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 1466,
   "title": "Soft Logout",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/1466",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1497,
   "title": "Advertising support of experimental features in the CS API",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/1497",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 1501,
   "title": "Room version upgrades",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/1501",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1597,
   "title": "Better spec for matrix identifiers",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1597",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1659,
   "title": "Proposal: Change Event IDs to Hashes",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1659",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 1692,
   "title": "Terms of service at registration",
   "status": "merged",
   "spec_version": "v1.11",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1692",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 1693,
   "title": "Specify how to handle rejected events in new state res",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1693",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1708,
   "title": ".well-known support for server name resolution",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1708",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1711,
   "title": "X.509 certificate verification for federation connections",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1711",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1721,
   "title": "Rename m.login.cas to m.login.sso",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1721",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 1730,
   "title": "Mechanism for redirecting to an alternative server during login",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1730",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1753,
   "title": "client-server capabilities API",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1753",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1756,
   "title": "cross-signing devices using a master identity key",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1756",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 1763,
   "title": "Proposal for specifying configurable message retention periods",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1763",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse"
   ]
  },
  {
   "msc": 1767,
   "title": "Extensible event types & fallback in Matrix (v2)",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1767",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "blocked",
    "kind:core",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 1772,
   "title": "Matrix spaces",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1772",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "dendrite",
    "harmony",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 1794,
   "title": "Federation v2 Invite API",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1794",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1802,
   "title": "Remove the '200' value from some federation responses",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1802",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1804,
   "title": "Advertising capable room versions to clients",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1804",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1812,
   "title": "Federation make membership room version",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/1812",
   "status_detail": "proposal file https://github.com/matrix-org/matrix-spec-proposals/blob/a6d4f687330b515f91bbc67e671779c42ae80438/proposals/1812-federation-make-membership.md (its heading says \"MSC 1813\"); pre-v1.1, so no spec_version",
   "labels": [],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1819,
   "title": "MSC:1819 Remove Presence Lists",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1819",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1831,
   "title": "Change the order of .well-known and SRV discovery techniques",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1831",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1840,
   "title": "Typed rooms",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1840",
   "status_detail": "rejected",
   "labels": [
    "kind:core",
    "proposal",
    "rejected"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1866,
   "title": "Add proposal for invite error code for unsupported room version",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1866",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1884,
   "title": "Proposal to replace slashes in event IDs",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1884",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 1888,
   "title": "[WIP] MSC1888: Proposal to send EDUs to appservices",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1888",
   "status_detail": "obsolete",
   "labels": [
    "kind:feature",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1915,
   "title": "Add a 3PID unbind API",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1915",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1929,
   "title": "Homeserver Admin Contact and Support page",
   "status": "merged",
   "spec_version": "v1.10",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1929",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 1930,
   "title": "Add a push rule for m.room.tombstone events",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1930",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1935,
   "title": "Key validity enforcement",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1935",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1943,
   "title": "Set default room as v3",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1943",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1946,
   "title": "Secure Secret Storage and Sharing",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1946",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1953,
   "title": "Neilj/remove prev content from the essential keys list",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1953",
   "status_detail": null,
   "labels": [],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1954,
   "title": "Proposal to remove prev_content from the essential keys list",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1954",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1957,
   "title": "Integration manager discovery",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1957",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "blocked",
    "disposition-merge",
    "kind:feature",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 1958,
   "title": "Widget architecture changes",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/1958",
   "status_detail": "obsolete",
   "labels": [
    "kind:feature",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2000,
   "title": "Server-side password policies",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2000",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 2002,
   "title": "Proposal for adopting MSC1884 as v4 rooms",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2002",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2033,
   "title": "Adding a device_id to /account/whoami",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2033",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2061,
   "title": "make the trailing slash on `GET /_matrix/key/v2/server/` optional",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2061",
   "status_detail": null,
   "labels": [],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2077,
   "title": "room v5",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2077",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2078,
   "title": "Sending Third-Party Request Tokens via the Homeserver",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2078",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 2134,
   "title": "Identity Hash Lookups",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2134",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": []
  },
  {
   "msc": 2140,
   "title": "Terms of Service for ISes and IMs",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2140",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2153,
   "title": "Add a default push rule to ignore m.reaction events",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2153",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2174,
   "title": "Move the `redacts` key to a sane place",
   "status": "merged",
   "spec_version": "v1.8",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2174",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2175,
   "title": "Remove the `creator` field from `m.room.create` events",
   "status": "merged",
   "spec_version": "v1.8",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2175",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 2176,
   "title": "Update the redaction rules",
   "status": "merged",
   "spec_version": "v1.8",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2176",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 2181,
   "title": "Add an Error Code for Signaling a Deactivated User",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2181",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2190,
   "title": "Allow appservice bots to use /sync",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2190",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2197,
   "title": "Search Filtering in Federation /publicRooms",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2197",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 2209,
   "title": "Alter auth rules to check notifications in m.room.power_levels",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2209",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 2229,
   "title": "Allowing 3PID Owners to Rebind",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2229",
   "status_detail": "obsolete",
   "labels": [
    "disposition-merge",
    "kind:feature",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2230,
   "title": "Store Identity Server in Account Data",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2230",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2240,
   "title": "Room version 6",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2240",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2241,
   "title": "Key verification in DMs",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2241",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 2246,
   "title": "Asynchronous media uploads",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2246",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2249,
   "title": "Require users to have visibility on an event when submitting reports",
   "status": "merged",
   "spec_version": "v1.8",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2249",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2260,
   "title": "Update the auth rules for `m.room.aliases` events",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2260",
   "status_detail": "obsolete",
   "labels": [
    "kind:core",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2261,
   "title": "Allow `m.room.aliases` events to be redacted by room admins",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2261",
   "status_detail": "obsolete",
   "labels": [
    "kind:core",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 2263,
   "title": "Give homeservers the ability to handle their own 3PID registrations/password resets",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2263",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2264,
   "title": "Add an unstable feature flag to MSC2140 for clients to detect support",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2264",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2265,
   "title": "Proposal for mandating case folding when processing e-mail address localparts",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2265",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2270,
   "title": "Proposal for Ignoring Invites",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2270",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2285,
   "title": "Private read receipts",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2285",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "construct",
    "dendrite",
    "harmony",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2290,
   "title": "Separate Endpoints for Threepid Binding",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2290",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2306,
   "title": "[WIP] MSC2306: Removing MSISDN password resets",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2306",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2314,
   "title": "A Method to Backfill Room State",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2314",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "construct"
   ]
  },
  {
   "msc": 2315,
   "title": "Allow users to select 'none' as an integration manager",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2315",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2324,
   "title": "Facilitating early releases of software dependent on spec",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2324",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2326,
   "title": "Label based filtering",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2326",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 2334,
   "title": "Change default room version to v5",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2334",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2367,
   "title": "Add reason field to all membership events",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2367",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2403,
   "title": "Add \"knock\" feature",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2403",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2409,
   "title": "Proposal to send typing, presence and receipts to appservices",
   "status": "merged",
   "spec_version": "v1.13",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2409",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2414,
   "title": "Make reason and score parameters optional for reporting content",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2414",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2416,
   "title": "Add m.login.jwt authentication type",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2416",
   "status_detail": "rejected",
   "labels": [
    "kind:feature",
    "proposal",
    "rejected"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2432,
   "title": "Updated semantics for publishing room aliases",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2432",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "construct",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2437,
   "title": "Store tagged events in Room Account Data",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2437",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2444,
   "title": "peeking over federation via /peek",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2444",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "dendrite",
    "harmony",
    "palpo",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2448,
   "title": "Using BlurHash as a Placeholder for Matrix Media",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2448",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "conduit",
    "conduwuit",
    "grapevine",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 2451,
   "title": "Remove `query_auth` federation endpoint.",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2451",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2454,
   "title": "Support UI auth for SSO",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2454",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2457,
   "title": "Invalidating devices during password modification",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2457",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2472,
   "title": "Symmetric SSSS",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2472",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2474,
   "title": "Add key backup version to SSSS account data",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2474",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2499,
   "title": "Fixes for Well-known URIs",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2499",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2526,
   "title": "Add ability to delete key backups",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2526",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2540,
   "title": "Stricter event validation: JSON compliance",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2540",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2545,
   "title": "Image Packs (Emoticons & Stickers)",
   "status": "merged",
   "spec_version": "v1.19",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2545",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 2579,
   "title": "Improved tagging support",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2579",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2625,
   "title": "Add `mark_unread` push rule action",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2625",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "dendrite",
    "harmony",
    "zendrite"
   ]
  },
  {
   "msc": 2631,
   "title": "Add `default_payload` to PusherData",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2631",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2654,
   "title": "Unread counts",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2654",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse"
   ]
  },
  {
   "msc": 2659,
   "title": "Application service ping endpoint",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2659",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2663,
   "title": "Errors for dealing with non-existent push rules",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2663",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2666,
   "title": "Get rooms in common with another user",
   "status": "merged",
   "spec_version": "v1.19",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2666",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2674,
   "title": "Event Relationships",
   "status": "merged",
   "spec_version": "v1.3",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2674",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2675,
   "title": "Serverside aggregations of message relationships",
   "status": "merged",
   "spec_version": "v1.3",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2675",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2676,
   "title": "Message editing",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2676",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 2677,
   "title": "Annotations and reactions",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2677",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2689,
   "title": "Fix E2EE for guests",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2689",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2695,
   "title": "Get event by ID over federation",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2695",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2697,
   "title": "[WIP] MSC2697: Device dehydration",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2697",
   "status_detail": "obsolete",
   "labels": [
    "kind:core",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "construct",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 2700,
   "title": "Thumbnail requirements for the media repo",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2700",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2701,
   "title": "Clarifying `Content-Type` usage in the media repo",
   "status": "merged",
   "spec_version": "v1.12",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2701",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2702,
   "title": "Specifying semantics for Content-Disposition on media",
   "status": "merged",
   "spec_version": "v1.12",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2702",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2703,
   "title": "Media ID grammar",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2703",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2704,
   "title": "Explicitly allow alternative origins in MXC URIs and specify deduplication requirements on uploads",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2704",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2705,
   "title": "Animated thumbnails for media",
   "status": "merged",
   "spec_version": "v1.11",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2705",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "matrix-media-repo",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2713,
   "title": "Remove deprecated v1 Identity Service API",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2713",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "zendrite"
   ]
  },
  {
   "msc": 2716,
   "title": "Incrementally importing history into existing rooms",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2716",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 2732,
   "title": "Olm fallback keys",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2732",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2747,
   "title": "VoIP call transfers",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2747",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 2753,
   "title": "Peeking via sync (take 2)",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2753",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "dendrite",
    "harmony",
    "palpo",
    "synapse",
    "zendrite"
   ]
  },
  {
   "msc": 2765,
   "title": "Widget avatars",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2765",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "blocked",
    "kind:feature",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2771,
   "title": "Bookmarks",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2771",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2778,
   "title": "Providing authentication method for appservice users",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2778",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2782,
   "title": "Pushers with the full event content",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2782",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2788,
   "title": "Room version 6 as the default room version",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2788",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2810,
   "title": "Consistent globs specification",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2810",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2815,
   "title": "Proposal to allow room moderators to view redacted event content",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2815",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 2828,
   "title": "Proposal to restrict allowed user IDs over federation",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2828",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 2832,
   "title": "HS -> AS authorization header",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2832",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2836,
   "title": "Twitter-style Threading",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2836",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "dendrite",
    "harmony",
    "palpo",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2844,
   "title": "Global version number for the whole spec",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2844",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2855,
   "title": "Server-Initiated Client Clear-Cache & Reload",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2855",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "construct"
   ]
  },
  {
   "msc": 2858,
   "title": "Multiple SSO Identity Providers",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2858",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 2867,
   "title": "Marking rooms as unread",
   "status": "merged",
   "spec_version": "v1.12",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2867",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 2870,
   "title": "Protect server ACLs from redaction",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2870",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "blocked",
    "kind:maintenance",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 2872,
   "title": "Move the widget title to the top level of the definition",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2872",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2874,
   "title": "Single SSSS",
   "status": "merged",
   "spec_version": "v1.1",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2874",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2895,
   "title": "Proposal to improve /members and /joined_rooms",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2895",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2918,
   "title": "Refresh tokens",
   "status": "merged",
   "spec_version": "v1.3",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2918",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2946,
   "title": "Spaces Summary",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2946",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "dendrite",
    "harmony",
    "maelstrom",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2949,
   "title": "Proposal to clarify \"Requires auth\" and \"Rate-limited\" in the spec",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2949",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2964,
   "title": "Usage of OAuth 2.0 authorization code grant and refresh token grant",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2964",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2965,
   "title": "OAuth 2.0 Authorization Server Metadata discovery",
   "status": "merged",
   "spec_version": "v1.15",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2965",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "matrix-authentication-service",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2966,
   "title": "Usage of OAuth 2.0 Dynamic Client Registration in Matrix",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2966",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2967,
   "title": "API scopes",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2967",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "matrix-authentication-service",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 2970,
   "title": "Remove pusher path requirement",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2970",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 2998,
   "title": "Room Version 7",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/2998",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3008,
   "title": "Scoped access for widgets",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3008",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3009,
   "title": "Websocket transport for client <--> widget communications",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3009",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3015,
   "title": "Room state personal overrides",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3015",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3026,
   "title": "\"busy\" presence state",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3026",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3030,
   "title": "Jump to date API endpoint",
   "status": "merged",
   "spec_version": "v1.6",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3030",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "construct",
    "palpo",
    "tuwunel",
    "venator",
    "zendrite"
   ]
  },
  {
   "msc": 3061,
   "title": "Sharing room keys for past messages",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3061",
   "status_detail": "rejected",
   "labels": [
    "disposition-merge",
    "kind:core",
    "proposal",
    "rejected"
   ],
   "servers": [
    "conduwuit",
    "palpo"
   ]
  },
  {
   "msc": 3069,
   "title": "Allow guests to use /account/whoami",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3069",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "matrix-media-repo",
    "tuwunel"
   ]
  },
  {
   "msc": 3083,
   "title": "Restricting room membership based on membership in other rooms",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3083",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "harmony",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3137,
   "title": "Define space room type, subset of MSC1772",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3137",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:core",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3173,
   "title": "Expose stripped state events to any potential joiner",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3173",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3202,
   "title": "Encrypted appservices",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3202",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3214,
   "title": "Allow overriding `m.room.power_levels` using `initial_state`",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3214",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3226,
   "title": "Per-room spell check",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3226",
   "status_detail": "obsolete",
   "labels": [
    "kind:feature",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3230,
   "title": "Spaces top level order",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3230",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 3231,
   "title": "Token authenticated registration",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3231",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3245,
   "title": "Voice messages (using extensible events)",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3245",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 3246,
   "title": "Audio waveform for extensible events",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3246",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3266,
   "title": "Room summary API",
   "status": "merged",
   "spec_version": "v1.15",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3266",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "palpo",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3267,
   "title": "Reference relations",
   "status": "merged",
   "spec_version": "v1.5",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3267",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3270,
   "title": "Symmetric megolm backup",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3270",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3283,
   "title": "Expose capabilities for profile actions",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3283",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3288,
   "title": "Add room type to `/_matrix/identity/v2/store-invite` API",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3288",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "zendrite"
   ]
  },
  {
   "msc": 3289,
   "title": "Room version 8",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3289",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "tuwunel"
   ]
  },
  {
   "msc": 3302,
   "title": "Stories via To-Device-Messaging",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3302",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3316,
   "title": "Add timestamp massaging to the spec",
   "status": "merged",
   "spec_version": "v1.3",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3316",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "construct",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3375,
   "title": "Room version 9",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3375",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3381,
   "title": "Polls (mk II)",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3381",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "blocked",
    "kind:feature",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "maelstrom",
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3383,
   "title": "Include destination in X-Matrix Auth Header",
   "status": "merged",
   "spec_version": "v1.3",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3383",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3385,
   "title": "[WIP] MSC3385: Bulk small improvements to room upgrades",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3385",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3389,
   "title": "Relation redactions",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3389",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 3391,
   "title": "API to delete account data",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3391",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "maelstrom",
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3401,
   "title": "Native Group VoIP Signalling",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3401",
   "status_detail": "obsolete",
   "labels": [
    "kind:core",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 3414,
   "title": "[WIP] MSC3414: Encrypted state events",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3414",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "venator"
   ]
  },
  {
   "msc": 3417,
   "title": "Call room room type",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3417",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3419,
   "title": "Allow guests to send more event types",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3419",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3440,
   "title": "Threading via `m.thread` relation",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3440",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3442,
   "title": "move the `prev_content` key to `unsigned`",
   "status": "merged",
   "spec_version": "v1.2",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3442",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3488,
   "title": "Extending events with location data",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3488",
   "status_detail": null,
   "labels": [
    "blocked",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3489,
   "title": "Sharing streams of location data with history",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3489",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 3551,
   "title": "Extensible Events - Files",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3551",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3552,
   "title": "Extensible Events - Images and Stickers",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3552",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3553,
   "title": "Extensible Events - Videos",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3553",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3554,
   "title": "Extensible Events - Translatable Text",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3554",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3567,
   "title": "Allow requesting events from the start/end of the room history",
   "status": "merged",
   "spec_version": "v1.3",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3567",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3575,
   "title": "Sliding Sync (aka Sync v3)",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3575",
   "status_detail": "obsolete",
   "labels": [
    "kind:core",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "babbleserv",
    "conduit",
    "conduwuit",
    "continuwuity",
    "dendrite",
    "harmony",
    "maelstrom",
    "palpo",
    "sliding-sync-proxy",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3585,
   "title": "Allow the base event to be omitted from `/federation/v1/event_auth` response",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3585",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3588,
   "title": "WIP: MSC3588: Encrypted Stories As Rooms",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3588",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3589,
   "title": "Room version 9 as the default room version",
   "status": "merged",
   "spec_version": "v1.3",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3589",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3604,
   "title": "Room Version 10",
   "status": "merged",
   "spec_version": "v1.3",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3604",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3618,
   "title": "Proposal to simplify federation `/send` response",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3618",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3644,
   "title": "Extensible Events: Edits and replies",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3644",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3664,
   "title": "Pushrules for relations",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3664",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3666,
   "title": "Bundled aggregations for server side search",
   "status": "merged",
   "spec_version": "v1.3",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3666",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3667,
   "title": "Enforce integer power levels",
   "status": "merged",
   "spec_version": "v1.3",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3667",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "harmony",
    "tuwunel"
   ]
  },
  {
   "msc": 3672,
   "title": "Sharing ephemeral streams of location data",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3672",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 3706,
   "title": "Extensions to `/_matrix/federation/v2/send_join/{roomId}/{eventId}` for partial state",
   "status": "merged",
   "spec_version": "v1.6",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3706",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "maelstrom",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3715,
   "title": "Add a pagination direction parameter to `/relations`",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3715",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3720,
   "title": "Account status",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3720",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 3723,
   "title": "Federation `/versions`",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3723",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3743,
   "title": "Standardized error response for unknown endpoints",
   "status": "merged",
   "spec_version": "v1.6",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3743",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3754,
   "title": "Removing profile information",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3754",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3757,
   "title": "Restricting who can overwrite a state event",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3757",
   "status_detail": "rejected",
   "labels": [
    "kind:core",
    "proposal",
    "rejected"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 3758,
   "title": "Add `event_property_is` push rule condition kind",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3758",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3765,
   "title": "Rich text in room topics",
   "status": "merged",
   "spec_version": "v1.15",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3765",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3771,
   "title": "Read receipts for threads",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3771",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3773,
   "title": "Notifications for threads",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3773",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "babbleserv",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3786,
   "title": "Add a default push rule to ignore `m.room.server_acl` events",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3786",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3787,
   "title": "Allowing knocks to restricted rooms",
   "status": "merged",
   "spec_version": "v1.3",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3787",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "harmony",
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3803,
   "title": "Matrix Widget API v2",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/issues/3803",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3814,
   "title": "[WIP] MSC3814: Dehydrated devices with SSSS",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3814",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3815,
   "title": "[WIP] MSC3815: 3D Worlds",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3815",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3816,
   "title": "Clarify Thread Participation",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3816",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3818,
   "title": "Copy room type on upgrade",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3818",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3820,
   "title": "Room version 11",
   "status": "merged",
   "spec_version": "v1.8",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3820",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3821,
   "title": "Update the redaction rules, again",
   "status": "merged",
   "spec_version": "v1.8",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3821",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3823,
   "title": "Account Suspension",
   "status": "merged",
   "spec_version": "v1.13",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3823",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3824,
   "title": "OAuth 2.0 API aware clients",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3824",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "matrix-authentication-service",
    "tuwunel"
   ]
  },
  {
   "msc": 3827,
   "title": "Filtering of `/publicRooms` by room type",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3827",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "construct",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3828,
   "title": "Content Repository CORP Headers",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3828",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3843,
   "title": "Reporting content over federation (API approach)",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3843",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3848,
   "title": "Introduce errcodes for specific event sending failures",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3848",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 3852,
   "title": "Expose user agent information on `Device`",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3852",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 3856,
   "title": "Threads List API",
   "status": "merged",
   "spec_version": "v1.4",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3856",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 3860,
   "title": "Media Download Redirects",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3860",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3861,
   "title": "Next-generation auth for Matrix, based on OAuth 2.0/OIDC",
   "status": "merged",
   "spec_version": "v1.15",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3861",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "matrix-authentication-service",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3864,
   "title": "[WIP] MSC3864: User-given attributes for rooms",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3864",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3865,
   "title": "[WIP] MSC3865: User-given attributes for users",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3865",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3866,
   "title": "`M_USER_AWAITING_APPROVAL` error code",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3866",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 3871,
   "title": "Gappy timelines",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3871",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 3873,
   "title": "event_match dotted keys",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3873",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3874,
   "title": "Filtering threads from the /messages endpoint",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3874",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "maelstrom",
    "synapse"
   ]
  },
  {
   "msc": 3881,
   "title": "Remotely toggle push notifications for another client",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3881",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3882,
   "title": "Allow an existing session to sign in a new session",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3882",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3884,
   "title": "Sliding Sync Extension: E2EE",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3884",
   "status_detail": "obsolete",
   "labels": [
    "kind:core",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3885,
   "title": "Sliding Sync Extension: To-Device messages",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3885",
   "status_detail": "obsolete",
   "labels": [
    "kind:core",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3890,
   "title": "Remotely silence local notifications",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3890",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "maelstrom",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3895,
   "title": "Federation API Behaviour of Partial-State Resident Servers",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3895",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse",
    "zendrite"
   ]
  },
  {
   "msc": 3902,
   "title": "Faster remote room joins over federation (overview)",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3902",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:core",
    "proposal"
   ],
   "servers": [
    "zendrite"
   ]
  },
  {
   "msc": 3904,
   "title": "Room version 10 as the default room version",
   "status": "merged",
   "spec_version": "v1.6",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3904",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3905,
   "title": "Application services should only be interested in local users",
   "status": "merged",
   "spec_version": "v1.5",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3905",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3911,
   "title": "Linking media to events",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3911",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "conduit",
    "matrix-media-repo"
   ]
  },
  {
   "msc": 3912,
   "title": "Redaction of related events",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3912",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 3916,
   "title": "Authentication for media",
   "status": "merged",
   "spec_version": "v1.11",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3916",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduit",
    "conduwuit",
    "dendrite",
    "grapevine",
    "harmony",
    "matrix-media-repo",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3925,
   "title": "m.replace aggregation with full event",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3925",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3927,
   "title": "Extensible Events - Audio",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3927",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3930,
   "title": "Polls push rules/notifications",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3930",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "blocked",
    "disposition-merge",
    "kind:feature",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "maelstrom",
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3931,
   "title": "Push rule condition for room version features",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3931",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse"
   ]
  },
  {
   "msc": 3932,
   "title": "Extensible events room version push rule feature flag",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3932",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse"
   ]
  },
  {
   "msc": 3933,
   "title": "Core push rules for Extensible Events",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3933",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 3938,
   "title": "Remove keyId from `/keys` endpoints",
   "status": "merged",
   "spec_version": "v1.6",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3938",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3939,
   "title": "Account locking",
   "status": "merged",
   "spec_version": "v1.12",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3939",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3943,
   "title": "Partial joins to nameless rooms should include heroes' memberships",
   "status": "merged",
   "spec_version": "v1.6",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3943",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3945,
   "title": "Private device names",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3945",
   "status_detail": "obsolete",
   "labels": [
    "kind:feature",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3952,
   "title": "Intentional Mentions",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3952",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 3954,
   "title": "Extensible Events - Text Emotes",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3954",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3955,
   "title": "Extensible Events - Automated event mixin (notices)",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3955",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3956,
   "title": "[WIP] MSC3956: Extensible Events - Encrypted Events",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3956",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 3958,
   "title": "Suppress notifications from message edits",
   "status": "merged",
   "spec_version": "v1.9",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3958",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3959,
   "title": "Sliding Sync Extension: Account Data",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3959",
   "status_detail": "obsolete",
   "labels": [
    "kind:core",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3960,
   "title": "Sliding Sync Extension: Receipts",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3960",
   "status_detail": "obsolete",
   "labels": [
    "kind:core",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3961,
   "title": "Sliding Sync Extension: Typing Notifications",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3961",
   "status_detail": "in review",
   "labels": [
    "kind:core",
    "obsolete",
    "proposal",
    "proposal-in-review"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3966,
   "title": "`event_property_contains` push rule condition",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3966",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3967,
   "title": "Do not require UIA when first uploading cross signing keys",
   "status": "merged",
   "spec_version": "v1.11",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3967",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduit",
    "conduwuit",
    "maelstrom",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 3970,
   "title": "Scope transaction IDs to devices",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3970",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3980,
   "title": "Dotted Field Consistency",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3980",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3981,
   "title": "`/relations` recursion",
   "status": "merged",
   "spec_version": "v1.10",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3981",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 3983,
   "title": "Sending One-Time Key (OTK) claims to appservices",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3983",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse"
   ]
  },
  {
   "msc": 3984,
   "title": "Sending key queries to appservices",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3984",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 3987,
   "title": "Push actions clean-up",
   "status": "merged",
   "spec_version": "v1.7",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3987",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 3989,
   "title": "Redact `origin` property on events",
   "status": "merged",
   "spec_version": "v1.8",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/3989",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4009,
   "title": "Expanding the Matrix ID grammar to enable E.164 IDs",
   "status": "merged",
   "spec_version": "v1.8",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4009",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4010,
   "title": "Push rules and account data",
   "status": "merged",
   "spec_version": "v1.10",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4010",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4015,
   "title": "Voluntary Bot indicators",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4015",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4025,
   "title": "Local user erasure requests",
   "status": "merged",
   "spec_version": "v1.10",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4025",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4026,
   "title": "Allow `/versions` to optionally accept authentication",
   "status": "merged",
   "spec_version": "v1.10",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4026",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4028,
   "title": "Push all encrypted events except for muted rooms",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4028",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4029,
   "title": "[WIP] Fixing `X-Matrix` request authentication",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4029",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "conduit",
    "grapevine",
    "tuwunel"
   ]
  },
  {
   "msc": 4032,
   "title": "Asset Collections",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4032",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4034,
   "title": "Media limits",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4034",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "matrix-media-repo"
   ]
  },
  {
   "msc": 4037,
   "title": "Thread root is not in the thread",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4037",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4040,
   "title": "Update SRV service name to IANA registration",
   "status": "merged",
   "spec_version": "v1.8",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4040",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4041,
   "title": "http header Retry-After for http code 429",
   "status": "merged",
   "spec_version": "v1.10",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4041",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4051,
   "title": "[WIP] MSC4051: Using the create event as the room ID",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4051",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4062,
   "title": "Add a new push rule tweak to disable email notification",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4062",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4069,
   "title": "Inhibit profile propagation",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4069",
   "status_detail": "obsolete",
   "labels": [
    "kind:feature",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "synapse",
    "venator"
   ]
  },
  {
   "msc": 4075,
   "title": "MatrixRTC invites and notifications",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4075",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4076,
   "title": "Let E2EE clients calculate app badge counts themselves (disable_badge_count)",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4076",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4095,
   "title": "Bundled URL previews",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4095",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "kind:feature",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo"
   ]
  },
  {
   "msc": 4102,
   "title": "Clarifying precedence in threaded and unthreaded read receipts in EDUs",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4102",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "maelstrom",
    "sliding-sync-proxy",
    "synapse"
   ]
  },
  {
   "msc": 4108,
   "title": "Mechanism to allow OAuth 2.0 API sign in and E2EE set up via QR code",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4108",
   "status_detail": "final comment period proposed",
   "labels": [
    "disposition-merge",
    "kind:core",
    "proposal",
    "proposed-final-comment-period"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4115,
   "title": "membership information on events",
   "status": "merged",
   "spec_version": "v1.11",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4115",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "sliding-sync-proxy",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4121,
   "title": "`m.role.moderator` `/.well-known/matrix/support` role.",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4121",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4125,
   "title": "Specify servers to join via for federated invites",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4125",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4128,
   "title": "Error on invalid auth where it is optional",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4128",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4133,
   "title": "Extending User Profile API with Key:Value Pairs",
   "status": "merged",
   "spec_version": "v1.16",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4133",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "babbleserv",
    "conduwuit",
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4138,
   "title": "Update allowed HTTP methods in CORS responses",
   "status": "merged",
   "spec_version": "v1.13",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4138",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4140,
   "title": "Cancellable delayed events",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4140",
   "status_detail": "accepted, spec PR in review",
   "labels": [
    "kind:feature",
    "proposal",
    "spec-pr-in-review"
   ],
   "servers": [
    "lk-jwt-service",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4143,
   "title": "MatrixRTC – Real-time communication over Matrix",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4143",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "kind:core",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4149,
   "title": "Update CSP Directives for Media Repository",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4149",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4151,
   "title": "Reporting rooms (Client-Server API)",
   "status": "merged",
   "spec_version": "v1.13",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4151",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4154,
   "title": "Request max body size",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4154",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4155,
   "title": "Invite filtering",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4155",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4156,
   "title": "Migrate server_name to via",
   "status": "merged",
   "spec_version": "v1.12",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4156",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4158,
   "title": "MatrixRTC focus information in .well-known",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4158",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4163,
   "title": "Make ACLs apply to EDUs",
   "status": "merged",
   "spec_version": "v1.13",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4163",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4164,
   "title": "Leave all rooms on deactivation",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4164",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4165,
   "title": "Remove own power level on deactivation",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4165",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4166,
   "title": "Specify `/turnServer` response when no TURN servers are available",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4166",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4168,
   "title": "Update `m.space.*` state on room upgrade",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4168",
   "status_detail": "in review",
   "labels": [
    "kind:maintenance",
    "proposal",
    "proposal-in-review"
   ],
   "servers": [
    "continuwuity",
    "tuwunel"
   ]
  },
  {
   "msc": 4169,
   "title": "Backwards-compatible redaction sending using `/send`",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4169",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "synapse",
    "tuwunel",
    "venator",
    "zendrite"
   ]
  },
  {
   "msc": 4170,
   "title": "403 error responses for profile APIs",
   "status": "merged",
   "spec_version": "v1.12",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4170",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4171,
   "title": "Service members",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4171",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 4174,
   "title": "Web push",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4174",
   "status_detail": "in review",
   "labels": [
    "kind:feature",
    "proposal",
    "proposal-in-review"
   ],
   "servers": [
    "continuwuity"
   ]
  },
  {
   "msc": 4175,
   "title": "Profile field for user time zone",
   "status": "merged",
   "spec_version": "v1.16",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4175",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4178,
   "title": "Additional Error Codes for requestToken endpoint",
   "status": "merged",
   "spec_version": "v1.13",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4178",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4180,
   "title": "Add a stable flag to MSC3916",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4180",
   "status_detail": null,
   "labels": [],
   "servers": [
    "conduwuit",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4186,
   "title": "Simplified Sliding Sync",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4186",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "kind:core",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "babbleserv",
    "conduit",
    "conduwuit",
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4189,
   "title": "Allowing guests to access uploaded media",
   "status": "merged",
   "spec_version": "v1.12",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4189",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4190,
   "title": "Device management for application services",
   "status": "merged",
   "spec_version": "v1.17",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4190",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4191,
   "title": "Account management for OAuth 2.0 API",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4191",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "matrix-authentication-service",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4195,
   "title": "LiveKit transport for MatrixRTC",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4195",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "kind:core",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "continuwuity",
    "lk-jwt-service",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4198,
   "title": "Usage of OIDC login_hint",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4198",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "matrix-authentication-service"
   ]
  },
  {
   "msc": 4203,
   "title": "Sending to-device events to appservices",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4203",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4208,
   "title": "Adding User-Defined Custom Fields to User Global Profiles",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4208",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4210,
   "title": "Remove legacy mentions",
   "status": "merged",
   "spec_version": "v1.17",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4210",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4213,
   "title": "Remove server_name parameter from `join` and `knock` endpoints",
   "status": "merged",
   "spec_version": "v1.14",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4213",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4222,
   "title": "Adding `state_after` to `/sync`",
   "status": "merged",
   "spec_version": "v1.16",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4222",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "babbleserv",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4225,
   "title": "Specification of an order in which one-time-keys should be issued",
   "status": "merged",
   "spec_version": "v1.13",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4225",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "babbleserv",
    "tuwunel"
   ]
  },
  {
   "msc": 4230,
   "title": "Flag for animated images",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4230",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 4231,
   "title": "Backwards compatibility for media captions",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4231",
   "status_detail": "obsolete",
   "labels": [
    "kind:core",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4235,
   "title": "`via` query param for hierarchy endpoint",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4235",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4238,
   "title": "Pinned events read marker",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4238",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4239,
   "title": "Room version 11 as the default room version",
   "status": "merged",
   "spec_version": "v1.14",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4239",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4242,
   "title": "State DAGs",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4242",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4249,
   "title": "Removal of legacy media endpoints",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4249",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4254,
   "title": "Usage of RFC7009 Token Revocation for Matrix client logout",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4254",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4259,
   "title": "Profile Update EDUs for Federation",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4259",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 4260,
   "title": "Reporting users (Client-Server API)",
   "status": "merged",
   "spec_version": "v1.14",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4260",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4261,
   "title": "\"Do not encrypt for device\" flag",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4261",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4262,
   "title": "Sliding Sync Extension: Profile Updates",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4262",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4263,
   "title": "Preventing MXID enumeration via key queries",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4263",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4265,
   "title": "Data Protection Officer contact in /.well-known/matrix/support",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4265",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4266,
   "title": "Policies in /.well-known/matrix/support",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4266",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4267,
   "title": "Automatically forgetting rooms on leave",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4267",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduwuit",
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4268,
   "title": "Sharing room keys for past messages",
   "status": "merged",
   "spec_version": "v1.19",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4268",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 4274,
   "title": "Inline media galleries via msgtypes",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4274",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 4277,
   "title": "Harmonizing the reporting endpoints",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4277",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4278,
   "title": "Media preview controls",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4278",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4283,
   "title": "Distinction between Ignore and Block",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4283",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "continuwuity"
   ]
  },
  {
   "msc": 4284,
   "title": "Policy Servers",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4284",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "policyserv",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4287,
   "title": "Sharing key backup preference between clients",
   "status": "merged",
   "spec_version": "v1.19",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4287",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4289,
   "title": "Explicitly privilege room creators",
   "status": "merged",
   "spec_version": "v1.16",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4289",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4291,
   "title": "Room IDs as hashes of the create event",
   "status": "merged",
   "spec_version": "v1.16",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4291",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4293,
   "title": "Redact on kick/ban",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4293",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "synapse",
    "venator"
   ]
  },
  {
   "msc": 4297,
   "title": "State Resolution 2.1",
   "status": "merged",
   "spec_version": "v1.16",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4297",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4299,
   "title": "[WIP] MSC4299: trusted users",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4299",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4304,
   "title": "Room Version 12",
   "status": "merged",
   "spec_version": "v1.16",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4304",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4306,
   "title": "Thread Subscriptions",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4306",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "babbleserv",
    "palpo",
    "synapse",
    "zendrite"
   ]
  },
  {
   "msc": 4307,
   "title": "Validate that `auth_events` are in the correct room",
   "status": "merged",
   "spec_version": "v1.16",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4307",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4308,
   "title": "Thread Subscriptions extension to Sliding Sync",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4308",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo",
    "synapse",
    "zendrite"
   ]
  },
  {
   "msc": 4310,
   "title": "MatrixRTC decline `m.rtc.decline`",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4310",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4311,
   "title": "Ensuring the create event is available on invites",
   "status": "merged",
   "spec_version": "v1.16",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4311",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "conduit",
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4312,
   "title": "Resetting cross-signing keys in the OAuth world",
   "status": "merged",
   "spec_version": "v1.17",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4312",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4319,
   "title": "Room member events for invite and knock rooms in the `/sync` response",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4319",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "kind:maintenance",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4323,
   "title": "User suspension & locking endpoints",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4323",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "tuwunel",
    "venator",
    "zendrite"
   ]
  },
  {
   "msc": 4324,
   "title": "Fixing MSC4289's power level for tombstones",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4324",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4326,
   "title": "Device masquerading for appservices",
   "status": "merged",
   "spec_version": "v1.17",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4326",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4330,
   "title": "specify HTTP and TLS versions which must be supported",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4330",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4334,
   "title": "Add `m.room.language` state event.",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4334",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 4341,
   "title": "Support for RFC 8628 Device Authorization Grant",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4341",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4342,
   "title": "Limiting the number of devices per user ID",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4342",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "venator"
   ]
  },
  {
   "msc": 4351,
   "title": "Odd Context Limits",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4351",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4354,
   "title": "Sticky Events",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4354",
   "status_detail": "accepted, spec PR in review",
   "labels": [
    "kind:core",
    "proposal",
    "spec-pr-in-review"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "synapse",
    "zendrite"
   ]
  },
  {
   "msc": 4356,
   "title": "Recently used emoji",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4356",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4359,
   "title": "\"Do not Disturb\" notification settings",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4359",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4361,
   "title": "Non-federating Membership Authorization Rule Amendments",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4361",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4362,
   "title": "Simplified Encrypted State Events",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4362",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 4363,
   "title": "OAuth step up authentication",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4363",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo"
   ]
  },
  {
   "msc": 4370,
   "title": "Federation endpoint for retrieving current extremities",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4370",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4376,
   "title": "Remove /v1/send_join and /v1/send_leave",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4376",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4377,
   "title": "Clarify Image Pack Ordering",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4377",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4380,
   "title": "Invite blocking",
   "status": "merged",
   "spec_version": "v1.18",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4380",
   "status_detail": null,
   "labels": [
    "kind:core",
    "merged",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "synapse",
    "tuwunel",
    "venator",
    "zendrite"
   ]
  },
  {
   "msc": 4383,
   "title": "Client-Server Discovery of Server Version",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4383",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "palpo",
    "tuwunel",
    "venator"
   ]
  },
  {
   "msc": 4384,
   "title": "Supporting alternative room directory sorting",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4384",
   "status_detail": "obsolete",
   "labels": [
    "kind:maintenance",
    "obsolete",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4387,
   "title": "`M_SAFETY` error code",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4387",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "policyserv"
   ]
  },
  {
   "msc": 4388,
   "title": "Secure out-of-band channel for sign in with QR",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4388",
   "status_detail": "final comment period proposed",
   "labels": [
    "disposition-merge",
    "kind:core",
    "proposal",
    "proposed-final-comment-period"
   ],
   "servers": [
    "palpo",
    "synapse",
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4397,
   "title": "Tags as spaces",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4397",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4402,
   "title": "Consistent redirects for .well-known-files",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4402",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4406,
   "title": "`M_SENDER_IGNORED` error code",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4406",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4415,
   "title": "Make `/_matrix/client/v3/admin/whois/{userId}` only available to admins",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4415",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4418,
   "title": "Make `destination` a required server authentication field",
   "status": "closed",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4418",
   "status_detail": "abandoned",
   "labels": [
    "abandoned",
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4420,
   "title": "Duplicate one-time key error response for /keys/upload",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4420",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "venator"
   ]
  },
  {
   "msc": 4423,
   "title": "Undefine order of room directory",
   "status": "merged",
   "spec_version": "v1.19",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4423",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4426,
   "title": "User Status Profile Fields",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4426",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4429,
   "title": "Profile Updates for Legacy Sync",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4429",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4436,
   "title": "Make server ACLs case insensitive",
   "status": "merged",
   "spec_version": "v1.19",
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4436",
   "status_detail": null,
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "merged",
    "proposal"
   ],
   "servers": [
    "tuwunel",
    "zendrite"
   ]
  },
  {
   "msc": 4437,
   "title": "Endpoint to replace entire profile",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4437",
   "status_detail": "final comment period proposed",
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "proposal",
    "proposed-final-comment-period"
   ],
   "servers": [
    "venator"
   ]
  },
  {
   "msc": 4438,
   "title": "Message bookmarks via account data",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4438",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4439,
   "title": "Encryption key URIs in `/.well-known/matrix/support`",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4439",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4441,
   "title": "User Profile Annotations (\"Profile Notes\")",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4441",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4445,
   "title": "Clarify `/sync` timeline order",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4445",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4446,
   "title": "Allow moving the fully read marker to older events",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4446",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4449,
   "title": "Updated /members filtering",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4449",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "venator"
   ]
  },
  {
   "msc": 4450,
   "title": "Identity Provider selection for User-Interactive Authentication with Legacy Single Sign-On",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4450",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4452,
   "title": "Preview URL capabilities API",
   "status": "merged",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4452",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "merged",
    "proposal"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4455,
   "title": "Catch-all property for spaces",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4455",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4456,
   "title": "Harms taxonomy",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4456",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "policyserv"
   ]
  },
  {
   "msc": 4458,
   "title": "Handling incoming JSON in the server-server API",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4458",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "kind:core",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4461,
   "title": "Storing per-message profiles for users",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4461",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4466,
   "title": "Altering profile change propagation",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4466",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "tuwunel"
   ]
  },
  {
   "msc": 4476,
   "title": "Image pack rooms",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4476",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4480,
   "title": "Sliding Sync Extension: Sticky Events",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4480",
   "status_detail": "final comment period proposed",
   "labels": [
    "disposition-merge",
    "kind:core",
    "proposal",
    "proposed-final-comment-period"
   ],
   "servers": [
    "continuwuity",
    "synapse",
    "zendrite"
   ]
  },
  {
   "msc": 4482,
   "title": "Ability to bookmark messages",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4482",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4483,
   "title": "Encrypted Account Data",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4483",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4484,
   "title": "Server Administration OAuth Scope",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4484",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo"
   ]
  },
  {
   "msc": 4486,
   "title": "Listing delayed events with filtering & pagination",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4486",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "zendrite"
   ]
  },
  {
   "msc": 4491,
   "title": "Invite reasons in room creation",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4491",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4492,
   "title": "Clarify that pagination tokens are directionless",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4492",
   "status_detail": "final comment period proposed",
   "labels": [
    "disposition-merge",
    "kind:maintenance",
    "proposal",
    "proposed-final-comment-period"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4494,
   "title": "Membership-based invite blocking",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4494",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo",
    "venator"
   ]
  },
  {
   "msc": 4495,
   "title": "Selective Presence",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4495",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 4499,
   "title": "Strict server signing key caching and key ID uniqueness",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4499",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4502,
   "title": "Targeted and unrestricted room member queries",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4502",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "lk-jwt-service",
    "synapse"
   ]
  },
  {
   "msc": 4504,
   "title": "Using a global version number for the entire specification (v2)",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4504",
   "status_detail": null,
   "labels": [
    "kind:core",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4508,
   "title": "Sliding Sync Extensions: Common format and Typing",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4508",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "kind:core",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "synapse",
    "tuwunel"
   ]
  },
  {
   "msc": 4509,
   "title": "Auto join on accepted knock",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4509",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "venator"
   ]
  },
  {
   "msc": 4512,
   "title": "Delegating parts of the Client-Server and Server-Server API to application services",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4512",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "lk-jwt-service",
    "synapse"
   ]
  },
  {
   "msc": 4513,
   "title": "Standard HTTP status codes for all endpoints, current and future",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4513",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4519,
   "title": "MatrixRTC Transports Registry",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4519",
   "status_detail": "in review",
   "labels": [
    "kind:core",
    "proposal",
    "proposal-in-review"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4522,
   "title": "Username colors",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4522",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4526,
   "title": "Improve OAuth 2.0 refresh token grant error handling",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4526",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4528,
   "title": "`M_INCOMPATIBLE_SERVER` error code",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4528",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4529,
   "title": "Client-side profile overrides",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4529",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4532,
   "title": "Revised Social Presence",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4532",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 4534,
   "title": "Simple room rules",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4534",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "tuwunel"
   ]
  },
  {
   "msc": 4537,
   "title": "Restore `200 {}` for unset profile fields",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4537",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4540,
   "title": "`m.admin` capability",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4540",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "palpo"
   ]
  },
  {
   "msc": 4548,
   "title": "Sliding Sync Extensions: Account data",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4548",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "kind:core",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4551,
   "title": "Sliding Sync Extensions: Receipts",
   "status": "fcp",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4551",
   "status_detail": "accepted, spec PR missing",
   "labels": [
    "kind:core",
    "proposal",
    "spec-pr-missing"
   ],
   "servers": [
    "synapse"
   ]
  },
  {
   "msc": 4559,
   "title": "Sliding Sync Extensions: Presence",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4559",
   "status_detail": null,
   "labels": [
    "kind:feature",
    "proposal"
   ],
   "servers": [
    "palpo"
   ]
  },
  {
   "msc": 4560,
   "title": "Stripped state requests over federation",
   "status": "open",
   "spec_version": null,
   "url": "https://github.com/matrix-org/matrix-spec-proposals/pull/4560",
   "status_detail": null,
   "labels": [
    "kind:maintenance",
    "proposal"
   ],
   "servers": [
    "continuwuity",
    "venator"
   ]
  }
 ],
 "projects": [
  {
   "slug": "acter",
   "name": "Acter",
   "category": "client",
   "kind": "mobile, desktop",
   "homepage": "https://acter.global",
   "summary": "A Flutter + matrix-rust-sdk app for organising groups on Matrix: chat plus tasks, events, pins and structured discussion.",
   "repos": [
    {
     "url": "https://github.com/acterglobal/a3",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "known project, found by name (not on matrix.org or the community space)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "android",
    "ios",
    "windows",
    "macos",
    "linux"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "google-play",
       "url": "https://play.google.com/store/apps/details?id=global.acter.a3"
      }
     ],
     "source": "https://github.com/acterglobal/a3/blob/bea92dddfe8ffab0b70581a0fbe4750bb491549e/Readme.md"
    },
    {
     "os": "windows",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "microsoft-store",
       "url": "https://apps.microsoft.com/detail/9NZLTDVTN203"
      }
     ],
     "source": "https://github.com/acterglobal/a3/blob/bea92dddfe8ffab0b70581a0fbe4750bb491549e/Readme.md"
    },
    {
     "os": "ios",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "github-releases",
       "url": "https://github.com/acterglobal/a3/releases"
      }
     ],
     "source": "https://github.com/acterglobal/a3/blob/bea92dddfe8ffab0b70581a0fbe4750bb491549e/Readme.md",
     "note": "\"For all other platforms\": nightly releases."
    }
   ],
   "licence": "LicenseRef-Acter-Public-Source-License-1.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk via its own Rust core (native/), Flutter UI",
     "how": "code",
     "source": "https://github.com/acterglobal/a3/blob/bea92dddfe8ffab0b70581a0fbe4750bb491549e/Cargo.toml"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": {
     "value": "not-found",
     "how": null,
     "source": null
    },
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/acterglobal/a3/blob/bea92dddfe8ffab0b70581a0fbe4750bb491549e/Readme.md",
     "note": "Source-available, not open source: \"Any other installation, usage or derivation of the work requires consent by the licensor\"; each version becomes AGPL-3.0 two years after publication; contributors must agree the licence can be changed."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days (last 2025-10-16, \"disable automatic release workflow\"); no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "acter.webp",
    "source": "https://github.com/acterglobal/a3/blob/bea92dddfe8ffab0b70581a0fbe4750bb491549e/app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png",
    "licence": "LicenseRef-Acter-Public-Source-License-1.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Licence: Acter Public Source License 1.0, based on BSL 1.1, with AGPL-3.0 as the change licence. Our reading: dormant since 2025-10.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 14,
    "authors_by_quarter": {
     "2023-Q1": 5,
     "2023-Q2": 4,
     "2023-Q3": 5,
     "2023-Q4": 6,
     "2024-Q1": 6,
     "2024-Q2": 5,
     "2024-Q3": 6,
     "2024-Q4": 5,
     "2025-Q1": 6,
     "2025-Q2": 6,
     "2025-Q3": 6,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 10196,
    "first_commit": "2022-01-10T12:06:11+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0032,
     "C++": 0.0038,
     "CMake": 0.0027,
     "Dart": 0.7795,
     "Gradle": 0.0017,
     "Rust": 0.2023,
     "Swift": 0.0042
    },
    "last_commit": "2025-10-16T11:06:06+00:00",
    "last_tag": "v1.25.19040",
    "last_tag_date": "2025-08-18T11:07:41+02:00",
    "last_tag_repo": "https://github.com/acterglobal/a3",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "C Header": 803,
     "C++": 963,
     "CMake": 680,
     "Dart": 197626,
     "Dockerfile": 6,
     "Go Template": 38,
     "Gradle": 428,
     "HTML": 182,
     "Kotlin": 52,
     "Objective C": 11,
     "Prolog": 25,
     "Rust": 51287,
     "Shell": 155,
     "Swift": 1066,
     "Windows Resource-Definition Script": 138,
     "Xcode Config": 64
    },
    "loc_total": 253524,
    "main_language": "Dart",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Matomo",
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "agentsmith",
   "name": "AgentSmith",
   "category": "client",
   "kind": "bridge-like IRC server",
   "homepage": "https://github.com/nilsding/AgentSmith",
   "summary": "A proof-of-concept IRC server that is a Matrix client, so IRC clients can talk to Matrix.",
   "repos": [
    {
     "url": "https://github.com/nilsding/AgentSmith",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org's former Gatsby project list (gatsby/content/projects/clients/ in matrix-org/matrix.org history)",
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "apps": [
    {
     "os": "other",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/nilsding/AgentSmith/blob/ec28aa68d8fd1b76351de921313e441a32c03eb9/README.md"
    }
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": "not-found",
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "README: \"just a silly proof of concept for now\". Written in Crystal. Last commit 2019-06-14.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 33,
    "first_commit": "2018-11-19T00:07:04+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Crystal": 0.9825,
     "Ruby": 0.0175
    },
    "last_commit": "2019-06-14T20:23:48+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "MIT",
    "loc": {
     "Crystal": 1517,
     "Ruby": 27
    },
    "loc_total": 1544,
    "main_language": "Crystal",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "beeper-ai-bridge",
   "name": "AI Bridge",
   "category": "bridge",
   "kind": "AI chat bridge",
   "homepage": null,
   "summary": "Archived bridgev2 network connector that exposed AI models and agents as Beeper chat contacts.",
   "repos": [
    {
     "url": "https://github.com/beeper/ai-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:beeper"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": null,
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "AI model providers",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/ai-bridge/blob/d797acca2dabada715dcd9346078f7be33553b3a/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD d797acca2dab; no AI-attributed commits among 45 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "core",
     "note": "each AI model is a contact; responses stream with tool calls and generated images",
     "source": "https://github.com/beeper/ai-bridge/blob/d797acca2dabada715dcd9346078f7be33553b3a/README.md"
    }
   },
   "icon": {
    "file": "beeper-ai-bridge.webp",
    "source": "https://github.com/beeper/ai-bridge/blob/d797acca2dabada715dcd9346078f7be33553b3a/pkg/connector/modelassets/png/beeper-ai.png",
    "licence": null,
    "note": "the Beeper AI assistant's image, shipped in the repo",
    "checked": "2026-11-05"
   },
   "notes": "Archived on GitHub; README: \"This project is no longer supported.\" Found with GitHub search org:beeper.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 44,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 1,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 0,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 1,
    "commits_365d": 44,
    "commits_90d": 1,
    "commits_all": 44,
    "first_commit": "2026-05-23T22:22:28+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9898,
     "JavaScript": 0.0071,
     "SQL": 0.0013,
     "Shell": 0.0013
    },
    "last_commit": "2026-11-02T19:32:59+00:00",
    "last_tag": "v0.0.3",
    "last_tag_date": "2026-03-26T13:56:26+01:00",
    "last_tag_repo": "https://github.com/beeper/ai-bridge",
    "licence_detected": null,
    "loc": {
     "Dockerfile": 25,
     "Go": 46704,
     "JavaScript": 333,
     "SQL": 62,
     "Shell": 62
    },
    "loc_total": 47186,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 2,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     21,
     21,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1
    ]
   }
  },
  {
   "slug": "beeper-aibot",
   "name": "aibot (Beeper)",
   "category": "bot",
   "kind": "ai-assistant",
   "homepage": "https://github.com/beeper/aibot",
   "summary": "A maubot plugin by Beeper that answers in rooms with ChatGPT, with LangChain tools for web search and Wikipedia.",
   "repos": [
    {
     "url": "https://github.com/beeper/aibot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, repositories sorted by stars, 2026-11-05"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": null,
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "AI assistant (ChatGPT front-end)",
     "how": "claimed",
     "source": "https://github.com/beeper/aibot/blob/2414e4873e537a928905d37a6fcaf2d1194cf9d7/README.md"
    },
    "framework": {
     "value": "maubot",
     "how": "code",
     "source": "https://github.com/beeper/aibot/blob/2414e4873e537a928905d37a6fcaf2d1194cf9d7/maubot.yaml",
     "note": "can run standalone (maubot.standalone)"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/beeper/aibot/blob/2414e4873e537a928905d37a6fcaf2d1194cf9d7/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/beeper/aibot/blob/2414e4873e537a928905d37a6fcaf2d1194cf9d7/README.md",
     "note": "standalone Docker image or a maubot instance"
    },
    "config": {
     "value": "config.yaml",
     "how": "claimed",
     "source": "https://github.com/beeper/aibot/blob/2414e4873e537a928905d37a6fcaf2d1194cf9d7/README.md"
    },
    "ai_backend": {
     "value": "OpenAI, with LangChain tools (Google search via SerpAPI, Wikipedia)",
     "how": "code",
     "source": "https://github.com/beeper/aibot/blob/2414e4873e537a928905d37a6fcaf2d1194cf9d7/maubot.yaml"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2023-05-01), counted at 2414e4873e53"
     ]
    },
    "in_product": {
     "value": "core",
     "note": "The product is a ChatGPT front-end.",
     "source": "https://github.com/beeper/aibot/blob/2414e4873e537a928905d37a6fcaf2d1194cf9d7/requirements.txt"
    }
   },
   "notes": "Last commit 2023-05-01; no LICENSE file found in the repo, so the licence is unstated (null).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 4,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 36,
    "first_commit": "2023-03-31T10:40:05+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0591,
     "Python": 0.9064,
     "Shell": 0.0345
    },
    "last_commit": "2023-05-01T14:11:37+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": null,
    "loc": {
     "Dockerfile": 12,
     "Python": 184,
     "Shell": 7
    },
    "loc_total": 203,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "alertbot",
   "name": "Alertbot",
   "category": "bot",
   "kind": "notifications",
   "homepage": "https://github.com/moan0s/alertbot",
   "summary": "A maubot plugin that turns Grafana or Alertmanager webhooks into room messages.",
   "repos": [
    {
     "url": "https://github.com/moan0s/alertbot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "notifications (Grafana, Alertmanager)",
     "how": "claimed",
     "source": "https://github.com/moan0s/alertbot/blob/8f94dc08afd7ca263a1896626347e8986f94c6b7/README.md"
    },
    "framework": {
     "value": "maubot",
     "how": "code",
     "source": "https://github.com/moan0s/alertbot/blob/8f94dc08afd7ca263a1896626347e8986f94c6b7/maubot.yaml"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/moan0s/alertbot/blob/8f94dc08afd7ca263a1896626347e8986f94c6b7/README.md",
     "note": "the setup has it invited to an encrypted room; encryption comes from maubot"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/moan0s/alertbot/blob/8f94dc08afd7ca263a1896626347e8986f94c6b7/README.md",
     "note": "a maubot instance"
    },
    "config": {
     "value": "maubot web UI and !url / !roomid commands",
     "how": "claimed",
     "source": "https://github.com/moan0s/alertbot/blob/8f94dc08afd7ca263a1896626347e8986f94c6b7/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/moan0s/alertbot/blob/8f94dc08afd7ca263a1896626347e8986f94c6b7/requirements.txt"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 3 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 8f94dc08afd7"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "alertbot.webp",
    "source": "https://github.com/moan0s/alertbot/blob/8f94dc08afd7ca263a1896626347e8986f94c6b7/assets/alert.png",
    "licence": "AGPL-3.0-or-later",
    "note": "the bot's picture from the repo's assets folder",
    "checked": "2026-11-05"
   },
   "notes": "LICENSE.txt and maubot.yaml state AGPL-3.0-or-later. Maturity is our reading.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 3,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 0,
    "authors_all": 7,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 2,
     "2023-Q3": 2,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 2,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 3,
    "commits_90d": 0,
    "commits_all": 46,
    "first_commit": "2022-07-11T06:44:05+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Python": 1
    },
    "last_commit": "2025-11-25T22:12:45+00:00",
    "last_tag": "1.1.6",
    "last_tag_date": "2025-11-25T23:12:45+01:00",
    "last_tag_repo": "https://github.com/moan0s/alertbot",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Python": 250
    },
    "loc_total": 250,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 3,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "beeper-android-sms",
   "name": "android-sms (Beeper)",
   "category": "bridge",
   "kind": "SMS bridge app",
   "homepage": null,
   "summary": "Android wrapper app that ran mautrix-imessage on a phone to bridge its SMS to Matrix.",
   "repos": [
    {
     "url": "https://gitlab.com/beeper/android-sms",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/sms/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "SMS (Android)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/beeper/android-sms/-/blob/4d5fe823e719e4e754a34d180d12996f1378f288/build.gradle.kts",
     "note": "mautrix-imessage in an Android app (Kotlin)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 4d5fe823e719; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "icon": {
    "file": "beeper-android-sms.webp",
    "source": "https://gitlab.com/beeper/android-sms/-/blob/4d5fe823e719e4e754a34d180d12996f1378f288/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
    "licence": "Apache-2.0",
    "note": "Beeper's logo, shipped in the repo",
    "checked": "2026-11-05"
   },
   "notes": "matrix.org labels it Obsolete; last commit 2023-07-05. Replaced in practice by mautrix-gmessages.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 5,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 2,
     "2023-Q3": 1,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 461,
    "first_commit": "2021-06-22T20:19:22+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0051,
     "Kotlin": 0.9787,
     "Prolog": 0.0028,
     "Shell": 0.0134
    },
    "last_commit": "2023-07-05T14:07:43+00:00",
    "last_tag": "0.1.89",
    "last_tag_date": "2022-05-25T14:45:29+00:00",
    "last_tag_repo": "https://gitlab.com/beeper/android-sms",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Batch": 68,
     "Kotlin": 13071,
     "Prolog": 38,
     "Shell": 179
    },
    "loc_total": 13356,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "cinny-ir",
   "name": "app.cinny.ir (Persian Cinny)",
   "category": "client",
   "kind": "web",
   "homepage": "https://app.cinny.ir",
   "summary": "A Persian, right-to-left fork of Cinny served from Iranian infrastructure so it stays reachable during internet blackouts.",
   "repos": [
    {
     "url": "https://github.com/erfnzdeh/app.cinny.ir",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "web",
       "url": "https://app.cinny.ir"
      }
     ],
     "source": "https://github.com/erfnzdeh/app.cinny.ir/blob/427d57e2d0d8288255ae33abe2e7b6a1a5a162ef/README.md"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": "cinny",
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk (inherited from Cinny)",
     "how": "code",
     "source": "https://github.com/erfnzdeh/app.cinny.ir/blob/427d57e2d0d8288255ae33abe2e7b6a1a5a162ef/package.json"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/erfnzdeh/app.cinny.ir/blob/427d57e2d0d8288255ae33abe2e7b6a1a5a162ef/README.md",
     "note": "Auth screens translated to Persian; RTL layout patches."
    },
    "telemetry": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/erfnzdeh/app.cinny.ir/blob/427d57e2d0d8288255ae33abe2e7b6a1a5a162ef/package.json"
    },
    "default_homeserver": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/erfnzdeh/app.cinny.ir/blob/427d57e2d0d8288255ae33abe2e7b6a1a5a162ef/config.json",
     "note": "Empty homeserverList; the user types a server (placeholder example.ir)."
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/erfnzdeh/app.cinny.ir/blob/427d57e2d0d8288255ae33abe2e7b6a1a5a162ef/README.md",
     "note": "Keeps a narrow patch set on top of cinny dev so upstream can be pulled regularly."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits in the last 365 days (60 non-bot commits, most of them merged from upstream Cinny).",
      "No agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "cinny-ir.svg",
    "source": "https://github.com/erfnzdeh/app.cinny.ir/blob/427d57e2d0d8288255ae33abe2e7b6a1a5a162ef/public/res/svg/cinny.svg",
    "licence": "AGPL-3.0-only",
    "note": "ships Cinny's logo (a fork of Cinny)",
    "checked": "2026-11-05"
   },
   "notes": "Fork of Cinny. Adds Persian translations for auth screens, RTL rendering (cherry-picked upstream PRs 2839 and 2841), self-hosted Vazirmatn font, a single-field homeserver picker and an authNotice explaining Matrix. Other features follow Cinny (see the cinny file).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 60,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 13,
    "authors_90d": 1,
    "authors_all": 74,
    "authors_by_quarter": {
     "2023-Q1": 4,
     "2023-Q2": 4,
     "2023-Q3": 5,
     "2023-Q4": 4,
     "2024-Q1": 2,
     "2024-Q2": 6,
     "2024-Q3": 7,
     "2024-Q4": 5,
     "2025-Q1": 9,
     "2025-Q2": 5,
     "2025-Q3": 7,
     "2025-Q4": 3,
     "2026-Q1": 11,
     "2026-Q2": 2,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 60,
    "commits_90d": 1,
    "commits_all": 1055,
    "first_commit": "2021-07-28T13:15:52+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0036,
     "HTML": 0.0014,
     "JavaScript": 0.0045,
     "TypeScript": 0.9885,
     "TypeScript Typings": 0.0019
    },
    "last_commit": "2026-08-08T14:00:24+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 237,
     "Dockerfile": 12,
     "HTML": 92,
     "JavaScript": 299,
     "TypeScript": 65905,
     "TypeScript Typings": 130
    },
    "loc_total": 66675,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/erfnzdeh/app.cinny.ir/blob/427d57e2d0d8288255ae33abe2e7b6a1a5a162ef/.github/SECURITY.md",
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     2,
     10,
     10,
     5,
     16,
     7,
     0,
     0,
     0,
     1,
     4,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "arona",
   "name": "Arona",
   "category": "bridge",
   "kind": "relay bridge",
   "homepage": null,
   "summary": "Relay bridge that forwards messages between several messengers, with optional OpenAI-compatible integration.",
   "repos": [
    {
     "url": "https://github.com/web-tech-tw/arona",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-bridge"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "LINE, Discord, Telegram, Matrix and others",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/web-tech-tw/arona/blob/296b44c8a68de60aee554e11875c47a59c0755a6/package.json",
     "note": "own (Node.js)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "AI bot authors in the last 365 days: copilot-swe-agent[bot]",
      "Integration pass: the collector counts 5 of 13 non-bot commits in the last 365 days as AI-made (38 %): copilot-swe-agent[bot] 3, google-labs-jules[bot] 2. Above the 5 % threshold, so regular."
     ]
    },
    "in_product": {
     "value": "optional",
     "note": "an OpenAI module that calls any OpenAI-compatible API to generate text and images",
     "source": "https://github.com/web-tech-tw/arona/blob/296b44c8a68de60aee554e11875c47a59c0755a6/docs/integrations/openai.md"
    }
   },
   "icon": {
    "file": "arona.svg",
    "source": "https://github.com/web-tech-tw/arona/blob/296b44c8a68de60aee554e11875c47a59c0755a6/docs/statics/logo.svg",
    "licence": "MIT",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Matrix is one of several networks. Its last-year commits include copilot-swe-agent[bot] authorship.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 5,
     "attributed_commits_365d": 5,
     "commits_365d": 13,
     "share_365d": 0.3846,
     "suggested_dev_usage": "regular",
     "tools": {
      "copilot": 3,
      "jules": 2
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 2,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 13,
    "commits_90d": 8,
    "commits_all": 123,
    "first_commit": "2021-02-25T18:47:11+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0052,
     "TypeScript": 0.9948
    },
    "last_commit": "2026-08-16T17:44:48+00:00",
    "last_tag": "1.0",
    "last_tag_date": "2021-04-25T21:14:42+08:00",
    "last_tag_repo": "https://github.com/web-tech-tw/arona",
    "licence_detected": "MIT",
    "loc": {
     "Dockerfile": 15,
     "TypeScript": 2892
    },
    "loc_total": 2907,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     3,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     8,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "axon",
   "name": "Axon (matrix-axon)",
   "category": "client",
   "kind": "bouncer + web, desktop, mobile, terminal",
   "homepage": "https://matrix-axon.github.io/matrix-axon/",
   "summary": "A self-hosted always-on Matrix agent (sync, E2EE, full-history search) with its own API, shipped with terminal, web, desktop and mobile clients.",
   "repos": [
    {
     "url": "https://github.com/matrix-axon/matrix-axon",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "PLAN.md \"Category to check first\" (lane 2)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "web",
    "linux",
    "macos",
    "windows",
    "ios",
    "android",
    "terminal",
    "server"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md"
    },
    {
     "os": "terminal",
     "tech": "tui",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "homebrew",
       "url": "https://github.com/matrix-axon/homebrew-tap"
      }
     ],
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md"
    },
    {
     "os": "macos",
     "tech": "tauri",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "homebrew",
       "url": "https://github.com/matrix-axon/homebrew-tap"
      }
     ],
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/clients/web/src-tauri/README.md"
    },
    {
     "os": "windows",
     "tech": "tauri",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "github-releases",
       "url": "https://github.com/matrix-axon/matrix-axon/releases/latest"
      }
     ],
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md"
    },
    {
     "os": "linux",
     "tech": "tauri",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "deb",
       "url": "https://github.com/matrix-axon/matrix-axon/releases/latest"
      },
      {
       "name": "appimage",
       "url": "https://github.com/matrix-axon/matrix-axon/releases/latest"
      }
     ],
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md"
    },
    {
     "os": "ios",
     "tech": "tauri",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "app-store",
       "url": "https://apps.apple.com/us/app/matrix-axon/id6813675186"
      },
      {
       "name": "testflight",
       "url": null
      }
     ],
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md"
    },
    {
     "os": "android",
     "tech": "tauri",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "apk",
       "url": "https://github.com/matrix-axon/matrix-axon/releases/latest"
      },
      {
       "name": "google-play",
       "url": null
      }
     ],
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md",
     "note": "Play Store beta."
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "homebrew",
    "app-store"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk 0.19.1 in the Axon server; clients use Axon's own /v1/ API",
     "how": "code",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/Cargo.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md",
     "note": "Decryption happens on the self-hosted server."
    },
    "cross_signing": "not-found",
    "key_backup": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md"
    },
    "sliding_sync": "not-found",
    "oidc_auth": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/docs/matrix-oauth-browser-sign-in.md"
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md",
     "note": "\"All your accounts, one place.\""
    },
    "threads": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md"
    },
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md"
    },
    "edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/README.md"
    },
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/docs/custom-emoji.md"
    },
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/docs/bundled-link-previews.md"
    },
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/clients/web/src/stores/telemetry.ts",
     "note": "Only a local, on-device performance record; no analytics SDK found."
    },
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/docs/building.md",
     "note": "Large Rust workspace plus a pnpm/Tauri web client and a TUI; Apache-2.0."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "CLAUDE.md, AGENTS.md (\"authoritative for agentic contributors\") and per-client AGENTS.md files.",
      "160 of 441 non-bot commits in the last 365 days (about 36 %) carry a Claude co-author trailer."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "axon.svg",
    "source": "https://github.com/matrix-axon/matrix-axon/blob/d8c85a344a178710d31278704282b49dd3194255/docs/brand/axon-mark-light.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Category check (PLAN.md): Axon is a server-side Matrix client (a bouncer in the ZNC sense) plus first-party clients that speak its own API, so it is filed as a client. Its \"agent\" wording means an always-on sync agent, not an AI agent. Slug `axon` (product name), repo matrix-axon/matrix-axon.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 5,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 160,
     "commits_365d": 441,
     "share_365d": 0.3628,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 160
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 2,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 2,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 165,
    "commits_365d": 441,
    "commits_90d": 396,
    "commits_all": 441,
    "first_commit": "2026-07-28T21:20:31+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0164,
     "Go Template": 0.0012,
     "JavaScript": 0.0045,
     "Kotlin": 0.0012,
     "Powershell": 0.0015,
     "Python": 0.007,
     "Rust": 0.5386,
     "SQL": 0.0024,
     "Shell": 0.0212,
     "Swift": 0.0086,
     "TypeScript": 0.3694,
     "TypeScript Typings": 0.0268
    },
    "last_commit": "2026-11-03T01:18:41+00:00",
    "last_tag": "v0.1.22",
    "last_tag_date": "2026-11-02T20:22:27-05:00",
    "last_tag_repo": "https://github.com/matrix-axon/matrix-axon",
    "licence_detected": "Apache-2.0",
    "loc": {
     "C Header": 4,
     "CSS": 5497,
     "Dockerfile": 51,
     "Go Template": 403,
     "HTML": 253,
     "JavaScript": 1499,
     "Kotlin": 397,
     "Objective C": 52,
     "Powershell": 517,
     "Prolog": 1,
     "Python": 2329,
     "Rust": 180466,
     "SQL": 796,
     "Shell": 7106,
     "Swift": 2876,
     "Systemd": 41,
     "TypeScript": 123755,
     "TypeScript Typings": 8978,
     "jq": 17
    },
    "loc_total": 335038,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 40,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     14,
     29,
     5,
     24,
     30,
     19,
     23,
     11,
     34,
     31,
     62,
     29,
     54,
     42,
     34
    ]
   }
  },
  {
   "slug": "babbleserv",
   "name": "Babbleserv",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A Matrix homeserver built on FoundationDB primitives, by Beeper.",
   "repos": [
    {
     "url": "https://github.com/beeper/babbleserv",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Go",
    "database": "FoundationDB",
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/babbleserv/blob/e391ad0b9332d2fa80f8450b8788f390ea7bcc50/internal/routes/client/client.go#L236",
     "versions": [
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.6",
      "v1.7",
      "v1.8",
      "v1.9",
      "v1.10",
      "v1.11"
     ]
    },
    "oidc_delegation": {
     "value": "not-found",
     "note": "no reference to MSC3861/2964/2965/2967 found in the code"
    },
    "native_sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/babbleserv/blob/e391ad0b9332d2fa80f8450b8788f390ea7bcc50/internal/routes/client/client.go#L78",
     "note": "MSC4186: unstable"
    },
    "workers_scaling": {
     "value": "not-found"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/babbleserv/blob/e391ad0b9332d2fa80f8450b8788f390ea7bcc50/internal/routes/client/client.go#L236",
     "note": "implied: the server advertises spec v1.11, where MSC3916 landed; no MSC reference in the code"
    },
    "msc": [
     {
      "msc": 3575,
      "state": "unstable",
      "source": "https://github.com/beeper/babbleserv/blob/e391ad0b9332d2fa80f8450b8788f390ea7bcc50/internal/routes/client/client.go#L79",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3773,
      "state": "stable",
      "source": "https://github.com/beeper/babbleserv/blob/e391ad0b9332d2fa80f8450b8788f390ea7bcc50/internal/types/sync.go#L312",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4133,
      "state": "stable",
      "source": "https://github.com/beeper/babbleserv/blob/e391ad0b9332d2fa80f8450b8788f390ea7bcc50/internal/types/userprofile.go#L13",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4186,
      "state": "unstable",
      "source": "https://github.com/beeper/babbleserv/blob/e391ad0b9332d2fa80f8450b8788f390ea7bcc50/internal/routes/client/client.go#L78",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4222,
      "state": "stable",
      "source": "https://github.com/beeper/babbleserv/blob/e391ad0b9332d2fa80f8450b8788f390ea7bcc50/internal/databases/rooms/sync.go#L496",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4225,
      "state": "stable",
      "source": "https://github.com/beeper/babbleserv/blob/e391ad0b9332d2fa80f8450b8788f390ea7bcc50/internal/databases/accounts/devices/devices.go#L35",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4306,
      "state": "unstable",
      "source": "https://github.com/beeper/babbleserv/blob/e391ad0b9332d2fa80f8450b8788f390ea7bcc50/internal/routes/client/pushrules.go#L31",
      "note": "referenced in code, no flag found; extent not checked"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "config-only",
     "evidence": [
      "agent files: .claude/prompts/01-notification-counts.md, .claude/prompts/02-push-rules.md, .claude/prompts/03-key-backup.md, AGENTS.md, CLAUDE.md"
     ],
     "checked_at": "e391ad0b9332d2fa80f8450b8788f390ea7bcc50"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Maturity is our reading.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 3,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 70,
     "share_365d": 0,
     "suggested_dev_usage": "config-only",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 70,
    "commits_90d": 34,
    "commits_all": 77,
    "first_commit": "2024-06-04T20:02:16+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9953,
     "Shell": 0.0043
    },
    "last_commit": "2026-09-30T22:27:46+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Go": 25058,
     "Python": 9,
     "Shell": 109
    },
    "loc_total": 25176,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     7,
     0,
     0,
     13,
     10,
     2,
     4,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     34,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "baibot",
   "name": "baibot",
   "category": "bot",
   "kind": "ai-assistant",
   "homepage": "https://github.com/etkecc/baibot",
   "summary": "A Matrix bot that exposes LLM text generation, speech-to-text, text-to-speech and image generation from several providers in chat.",
   "repos": [
    {
     "url": "https://github.com/etkecc/baibot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "docker",
    "ansible-playbook"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "AI assistant (text generation, speech-to-text, text-to-speech, image generation and editing)",
     "how": "claimed",
     "source": "https://github.com/etkecc/baibot/blob/3cb5a46fdc3d78e8d9b5dcf989f35e5d4b9e8a02/README.md"
    },
    "framework": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "source": "https://github.com/etkecc/baibot/blob/3cb5a46fdc3d78e8d9b5dcf989f35e5d4b9e8a02/Cargo.toml",
     "note": "matrix-sdk 0.19, through etke.cc's mxlink helper"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/baibot/blob/3cb5a46fdc3d78e8d9b5dcf989f35e5d4b9e8a02/README.md",
     "note": "encrypted rooms, and encrypted Account-Data-stored configuration"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/etkecc/baibot/blob/3cb5a46fdc3d78e8d9b5dcf989f35e5d4b9e8a02/docs/installation.md",
     "note": "container image or own binary; a matrix-docker-ansible-deploy role exists"
    },
    "config": {
     "value": "config file and chat commands",
     "how": "claimed",
     "source": "https://github.com/etkecc/baibot/blob/3cb5a46fdc3d78e8d9b5dcf989f35e5d4b9e8a02/docs/configuration/README.md"
    },
    "ai_backend": {
     "value": "Anthropic, Groq, LocalAI, Mistral, Ollama, OpenAI, OpenAI-compatible endpoints, OpenRouter, Together AI, Venice",
     "how": "code",
     "source": "https://github.com/etkecc/baibot/blob/3cb5a46fdc3d78e8d9b5dcf989f35e5d4b9e8a02/docs/providers.md",
     "note": "sample configs in docs/sample-provider-configs/; async-openai crate in Cargo.toml"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "77 of 156 non-bot commits in the last 365 days carry an AI attribution (49.4%), counted at 3cb5a46fdc3d",
      "tools named in attributions: claude",
      "example: ad09fc6bb9fa (Co-Authored-By: Claude)",
      "example: 57fed281ba6c (Co-Authored-By: Claude)",
      "1 merged pull request(s) since 2025-11-05 whose description explicitly discloses AI help (squash merges can drop this from git history): https://github.com/etkecc/baibot/pull/150 (Generated with [Claude)"
     ]
    },
    "in_product": {
     "value": "core",
     "note": "The product is an LLM front-end: chat, voice transcription, speech synthesis and image generation through the configured providers.",
     "source": "https://github.com/etkecc/baibot/blob/3cb5a46fdc3d78e8d9b5dcf989f35e5d4b9e8a02/README.md"
    }
   },
   "icon": {
    "file": "baibot.webp",
    "source": "https://github.com/etkecc/baibot/blob/3cb5a46fdc3d78e8d9b5dcf989f35e5d4b9e8a02/etc/assets/baibot.svg",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Maintained by etke.cc. The AI-attributed commits are Co-Authored-By Claude trailers. No contribution policy on AI found (no CONTRIBUTING file). Maturity is our reading.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 77,
     "commits_365d": 153,
     "share_365d": 0.5033,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 77
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 8,
    "authors_90d": 4,
    "authors_all": 8,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 4,
     "2026-Q2": 2,
     "2026-Q3": 2,
     "2026-Q4": 3
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 28,
    "commits_365d": 153,
    "commits_90d": 46,
    "commits_all": 304,
    "first_commit": "2024-09-12T10:44:06+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0015,
     "Python": 0.0326,
     "Rust": 0.9643,
     "Shell": 0.0017
    },
    "last_commit": "2026-11-02T21:26:15+00:00",
    "last_tag": "v2026.11.02.1",
    "last_tag_date": "2026-11-02T21:25:51+00:00",
    "last_tag_repo": "https://github.com/etkecc/baibot",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 31,
     "Python": 688,
     "Rust": 20367,
     "Shell": 35
    },
    "loc_total": 21121,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 37,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     6,
     0,
     8,
     2,
     6,
     5,
     0,
     0,
     0,
     0,
     4,
     7,
     4,
     7,
     0,
     0,
     6,
     0,
     10,
     0,
     0,
     3,
     3,
     0,
     0,
     6,
     0,
     3,
     3,
     6,
     0,
     8,
     7,
     0,
     3,
     0,
     0,
     0,
     0,
     1,
     5,
     0,
     1,
     3,
     2,
     6,
     0,
     3,
     1,
     2,
     22
    ]
   }
  },
  {
   "slug": "barkvr",
   "name": "BarkVR",
   "category": "client",
   "kind": "XR social",
   "homepage": "https://github.com/zodiepupper/barkvr",
   "summary": "An open-source decentralised social XR tool built on Godot 4, with Matrix login and chat among its networks.",
   "repos": [
    {
     "url": "https://github.com/zodiepupper/barkvr",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub repository search \"matrix client\" (pushed since 2025-11), 2026-11-05"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "linux",
    "windows"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/zodiepupper/barkvr/blob/9084ebeb6325275cbaf62899a3bf1fdcccb54d98/README.md",
     "note": "Godot 4; pre-alpha, \"not secure in its current state\"."
    }
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own (GDScript)",
     "how": "code",
     "source": "https://github.com/zodiepupper/barkvr/blob/9084ebeb6325275cbaf62899a3bf1fdcccb54d98/barkvr-system/ui/3dPanel/local ui/login/matrix.gd"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "banned",
     "quote": "Contributions MUST NOT contain LLM generated content.",
     "source": "https://github.com/zodiepupper/barkvr/blob/9084ebeb6325275cbaf62899a3bf1fdcccb54d98/README.md"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits among 205 non-bot commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "barkvr.svg",
    "source": "https://github.com/zodiepupper/barkvr/blob/9084ebeb6325275cbaf62899a3bf1fdcccb54d98/addons/vector/logo.svg",
    "licence": "MIT",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "A not-chat client: Matrix is one of its networks (description: \"matrix/mastodon client\").",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 205,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 6,
    "authors_90d": 3,
    "authors_all": 10,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 3,
     "2024-Q1": 2,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 2,
     "2025-Q2": 2,
     "2025-Q3": 2,
     "2025-Q4": 4,
     "2026-Q1": 3,
     "2026-Q2": 1,
     "2026-Q3": 3,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 16,
    "commits_365d": 205,
    "commits_90d": 51,
    "commits_all": 576,
    "first_commit": "2022-12-16T22:22:22+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "GDScript": 0.6986,
     "Godot Scene": 0.3014
    },
    "last_commit": "2026-11-02T21:04:24+00:00",
    "last_tag": "dev-2026-10-13",
    "last_tag_date": "2026-10-10T18:40:50-04:00",
    "last_tag_repo": "https://github.com/zodiepupper/barkvr",
    "licence_detected": "MIT",
    "loc": {
     "GDScript": 21209,
     "Godot Scene": 9149
    },
    "loc_total": 30358,
    "main_language": "GDScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 6,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     7,
     3,
     23,
     15,
     5,
     0,
     0,
     2,
     46,
     18,
     1,
     2,
     4,
     1,
     1,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     13,
     2,
     0,
     1,
     0,
     0,
     0,
     0,
     2,
     1,
     3,
     2,
     7,
     0,
     12,
     3,
     1,
     9,
     6,
     0,
     3,
     5
    ]
   }
  },
  {
   "slug": "beeper-googlevoice",
   "name": "beeper-googlevoice",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Archived early Google Voice SMS bridge from Beeper, replaced by mautrix-gvoice.",
   "repos": [
    {
     "url": "https://github.com/beeper/googlevoice",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:beeper"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": null,
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Google Voice",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/googlevoice/blob/fc724fa68bfb91749341f7c0a5dd0fb9c35ddf82/go.mod",
     "note": "mautrix-go (legacy bridge)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD fc724fa68bfb; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub (last commit 2023-03-19).",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 1,
    "first_commit": "2023-03-20T05:44:38+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 1
    },
    "last_commit": "2023-03-20T05:44:38+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": null,
    "loc": {
     "Go": 988
    },
    "loc_total": 988,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "beeper-groupme",
   "name": "beeper-groupme",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Development-stage GroupMe puppeting bridge on mautrix-go bridgev2 from Beeper.",
   "repos": [
    {
     "url": "https://github.com/beeper/groupme",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:beeper"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "GroupMe",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/groupme/blob/6d88dd2d97547e1172a8d27a26f6e191863d29cb/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/groupme/blob/6d88dd2d97547e1172a8d27a26f6e191863d29cb/pkg/connector/backfill.go"
    },
    "media": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/beeper/groupme/blob/6d88dd2d97547e1172a8d27a26f6e191863d29cb/README.md",
     "note": "images, videos, group files; media validation incomplete"
    },
    "reactions_edits": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/beeper/groupme/blob/6d88dd2d97547e1172a8d27a26f6e191863d29cb/README.md",
     "note": "reactions"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/beeper/groupme/blob/6d88dd2d97547e1172a8d27a26f6e191863d29cb/README.md"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/beeper/groupme/blob/6d88dd2d97547e1172a8d27a26f6e191863d29cb/README.md",
     "note": "token or Beeper webview login"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "52 of 105 non-bot commits in the last 365 days (49.5 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/beeper/groupme/commit/e9413a098e45aba6cfe9289cde4873862ffe9844, https://github.com/beeper/groupme/commit/e0891b3644fb7162aac48847bb791da855d75605"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "README calls it a development bridge. Successor to mx-puppet-groupme (matrix.org: Obsolete).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 52,
     "commits_365d": 105,
     "share_365d": 0.4952,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 52
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 3,
    "authors_all": 29,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 2
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 50,
    "commits_365d": 105,
    "commits_90d": 105,
    "commits_all": 653,
    "first_commit": "2018-08-12T19:26:05+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.002,
     "Go": 0.9948,
     "Shell": 0.0032
    },
    "last_commit": "2026-11-04T13:13:19+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 16,
     "Go": 8085,
     "Shell": 26
    },
    "loc_total": 8127,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     44,
     4,
     7,
     17,
     6,
     19,
     8
    ]
   }
  },
  {
   "slug": "beeper-imessage",
   "name": "beeper-imessage",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Archived iMessage puppeting bridge from Beeper, a mautrix-go bridge that used registration relays instead of a Mac.",
   "repos": [
    {
     "url": "https://github.com/beeper/imessage",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Mautrix-iMessage Bridge topic)"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "iMessage",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/imessage/blob/3bed8bdcd6a10615679e7ac7e66417f520112b5c/go.mod",
     "note": "mautrix-go (legacy bridge)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 3bed8bdcd6a1; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub (last commit 2024-01-16). Differs from mautrix-imessage by not needing a Mac for every user (registration providers, also archived).",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 3,
     "2024-Q1": 3,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 25,
    "first_commit": "2023-12-20T14:03:02+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0027,
     "Go": 0.9692,
     "Kotlin": 0.0043,
     "Protocol Buffers": 0.0065,
     "Python": 0.003,
     "SQL": 0.0044,
     "Shell": 0.0083
    },
    "last_commit": "2024-01-17T01:09:37+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "BASH": 7,
     "Batch": 68,
     "Dockerfile": 16,
     "Go": 24625,
     "Kotlin": 109,
     "Prolog": 18,
     "Protocol Buffers": 164,
     "Python": 77,
     "SQL": 112,
     "Shell": 212
    },
    "loc_total": 25408,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "beeper-line",
   "name": "beeper-line",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Puppeting bridge between Matrix and LINE on mautrix-go bridgev2, presenting itself as the LINE Chrome extension.",
   "repos": [
    {
     "url": "https://github.com/beeper/line",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/line/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "LINE",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/line/blob/a9cefaf244d17f7bb6fb9685cdfd3ccf993c3293/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/beeper/line/blob/a9cefaf244d17f7bb6fb9685cdfd3ccf993c3293/README.md",
     "note": "LINE Letter Sealing (E2EE) decryption on the LINE side"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/line/blob/a9cefaf244d17f7bb6fb9685cdfd3ccf993c3293/pkg/connector/sync.go"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/beeper/line/blob/a9cefaf244d17f7bb6fb9685cdfd3ccf993c3293/README.md",
     "note": "LINE account, as a Chrome Extension session (one at a time)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "README warns the bridge's session invalidates the official Chrome extension session and vice versa"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "agent files at HEAD: https://github.com/beeper/line/blob/a9cefaf244d17f7bb6fb9685cdfd3ccf993c3293/.claude/commands, https://github.com/beeper/line/blob/a9cefaf244d17f7bb6fb9685cdfd3ccf993c3293/AGENTS.md, https://github.com/beeper/line/blob/a9cefaf244d17f7bb6fb9685cdfd3ccf993c3293/CLAUDE.md",
      "41 of 397 non-bot commits in the last 365 days (10.3 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/beeper/line/commit/41482abe509cf78294a6e902713d19aecc9318b0, https://github.com/beeper/line/commit/b81acddcd0c4cf6b6dd3ccfb0b883d7d346aaebd"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Based on mautrix-twilio (README). matrix.org lists maintainers beeper and highesttt. The older matrix-puppeteer-line (miscworks) is unreachable.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 3,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 41,
     "commits_365d": 320,
     "share_365d": 0.1281,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 41
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 9,
    "authors_90d": 5,
    "authors_all": 9,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 3,
     "2026-Q1": 3,
     "2026-Q2": 6,
     "2026-Q3": 4,
     "2026-Q4": 4
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 33,
    "commits_365d": 320,
    "commits_90d": 55,
    "commits_all": 338,
    "first_commit": "2024-07-06T13:20:12+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9976,
     "Python": 0.0016
    },
    "last_commit": "2026-11-03T21:36:32+00:00",
    "last_tag": "1.2.0",
    "last_tag_date": "2026-05-17T02:30:09-05:00",
    "last_tag_repo": "https://github.com/beeper/line",
    "licence_detected": "MIT",
    "loc": {
     "Dockerfile": 25,
     "Go": 457891,
     "Python": 712,
     "Shell": 351
    },
    "loc_total": 458979,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 5,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     1,
     0,
     0,
     1,
     18,
     10,
     6,
     1,
     10,
     18,
     0,
     3,
     6,
     0,
     11,
     3,
     4,
     8,
     4,
     16,
     18,
     13,
     0,
     1,
     0,
     6,
     28,
     5,
     9,
     11,
     11,
     2,
     11,
     3,
     14,
     5,
     6,
     2,
     3,
     2,
     2,
     2,
     1,
     0,
     3,
     4,
     10,
     11,
     0,
     9,
     8
    ]
   }
  },
  {
   "slug": "beeper-linkedin",
   "name": "beeper-linkedin",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Archived Python LinkedIn messaging bridge from Beeper, replaced by mautrix-linkedin.",
   "repos": [
    {
     "url": "https://github.com/beeper/linkedin",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:beeper"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "LinkedIn",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/linkedin/blob/cb3783855b79af7ec0df14af0c7e8dce18faff93/setup.py",
     "note": "mautrix-python"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD cb3783855b79; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub (last commit 2025-03-17).",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 7,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 2,
     "2024-Q1": 2,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 352,
    "first_commit": "2021-05-31T23:13:15+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0065,
     "Python": 0.9888,
     "Shell": 0.0047
    },
    "last_commit": "2025-03-17T16:41:41+00:00",
    "last_tag": "v0.5.4",
    "last_tag_date": "2022-12-23T01:52:55-07:00",
    "last_tag_repo": "https://github.com/beeper/linkedin",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 35,
     "Python": 5307,
     "Shell": 25
    },
    "loc_total": 5367,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "botdarr",
   "name": "botdarr",
   "category": "bot",
   "kind": "media-server",
   "homepage": "https://github.com/shayaantx/botdarr",
   "summary": "A multi-network Java bot (Slack, Discord, Telegram, Matrix) for searching and adding films, shows and music in Radarr, Sonarr and Lidarr.",
   "repos": [
    {
     "url": "https://github.com/shayaantx/botdarr",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, repositories sorted by stars, 2026-11-05"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "media-server control (Radarr, Sonarr, Lidarr)",
     "how": "claimed",
     "source": "https://github.com/shayaantx/botdarr/blob/107469c5c471dc72b8a0753585d581b00953c58a/README.md"
    },
    "framework": {
     "value": "own",
     "how": "code",
     "source": "https://github.com/shayaantx/botdarr/blob/107469c5c471dc72b8a0753585d581b00953c58a/src/main/java/com/botdarr/clients/matrix/MatrixChatClient.java",
     "note": "own Java client-server API calls"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/shayaantx/botdarr/blob/107469c5c471dc72b8a0753585d581b00953c58a/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/shayaantx/botdarr/blob/107469c5c471dc72b8a0753585d581b00953c58a/README.md",
     "note": "Docker or jar"
    },
    "config": {
     "value": "properties file / environment variables and chat commands",
     "how": "claimed",
     "source": "https://github.com/shayaantx/botdarr/blob/107469c5c471dc72b8a0753585d581b00953c58a/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/shayaantx/botdarr/blob/107469c5c471dc72b8a0753585d581b00953c58a/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 7 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 107469c5c471"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Multi-network: Matrix is one of four chat clients. Licence from the LICENSE file (GPL v3) and the README badge; -only vs -or-later not stated.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 7,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 7,
    "commits_90d": 1,
    "commits_all": 251,
    "first_commit": "2019-09-08T17:17:02+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Java": 0.9937,
     "Shell": 0.0052
    },
    "last_commit": "2026-08-17T12:10:54+00:00",
    "last_tag": "5.6.23",
    "last_tag_date": "2026-08-17T08:10:54-04:00",
    "last_tag_repo": "https://github.com/shayaantx/botdarr",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Dockerfile": 8,
     "Java": 10069,
     "SQL": 3,
     "Shell": 53
    },
    "loc_total": 10133,
    "main_language": "Java",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 7,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     5,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "botkit-matrix",
   "name": "botkit-matrix",
   "category": "sdk",
   "kind": "JavaScript",
   "homepage": "https://github.com/frankgerhardt/botkit-matrix",
   "summary": "A Matrix connector for the Botkit bot framework.",
   "repos": [
    {
     "url": "https://github.com/frankgerhardt/botkit-matrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 5a9a3deae132"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"botkit-matrix\" (Obsolete, JavaScript, maintainer: frankgerhardt). Last non-bot commit 2019-05-17, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 5a9a3deae132 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "bromal",
   "name": "Bromal",
   "category": "server",
   "kind": "homeserver",
   "homepage": "https://bromal.im",
   "summary": "A lightweight Matrix homeserver in Elixir, aimed at small servers, funded by NLnet's NGI0 Commons Fund.",
   "repos": [
    {
     "url": "https://code.bromal.im/main/bromal",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "notes/05.md (NLnet project index)",
     "https://nlnet.nl/project/Bromal/"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [
    "guix"
   ],
   "funding": [
    "https://nlnet.nl/project/Bromal/"
   ],
   "features": {
    "language": "Elixir",
    "database": "PostgreSQL",
    "federation": {
     "value": "planned",
     "how": "claimed",
     "source": "https://code.bromal.im/main/bromal/src/commit/128b01ca6accf70c8f4a55f3a7ce11e1f652f9e2/README.org",
     "note": "\"The project aims to support server-to-server federation, state resolution …\""
    },
    "resource_needs": {
     "value": "modest: \"could be deployed even on small servers, including VPS\"",
     "how": "claimed",
     "source": "https://code.bromal.im/main/bromal/src/commit/128b01ca6accf70c8f4a55f3a7ce11e1f652f9e2/README.org"
    },
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "banned",
     "quote": "Contributions are always welcome, however they are always welcome without ANY use of generative AI/LLMs.",
     "source": "https://code.bromal.im/main/bromal/src/commit/128b01ca6accf70c8f4a55f3a7ce11e1f652f9e2/README.org#L55-L56"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 172 non-merge commits since 2025-11-05 attributed; no agent files, counted at 128b01ca"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    },
    "funder_policy": [
     {
      "funder": "NLnet Foundation (NGI0 Commons Fund)",
      "grant": "https://nlnet.nl/project/Bromal/",
      "policy": "https://nlnet.nl/foundation/policies/generativeAI/1.1/",
      "value": "restricted",
      "grant_start": "2026-04",
      "grant_source": "https://code.bromal.im/main/bromal/src/commit/128b01ca6accf70c8f4a55f3a7ce11e1f652f9e2/README.org",
      "policy_version": "1.1 (from 2026-01-26) under the transitional arrangement; 2.0 (from 2026-10-20, read-only use only) if the grantee opts in",
      "quote": "In any case, outcomes purely generated by AI are not allowed to be submitted as work eligible for payment (as part) of the grant. … For any substantive use of GenAI that materially affects outputs, public disclosure is required, making it available to both users and contributors.",
      "scope": "work delivered within the NLnet-funded grant",
      "transition": "The 1.1 page: \"grantees from concluding programmes (notably NGI Zero Commons Fund, NGI Taler and Fediversity) can opt to continue to follow this version (1.1) of the policy.\" Under 2.0 the value would be banned. https://nlnet.nl/foundation/policies/generativeAI/1.1/",
      "transparency": "found: the README states the project's own rule, \"Contributions are always welcome, however they are always welcome without ANY use of generative AI/LLMs.\" (README.org#L55-L56), stricter than either policy version",
      "checked": "2026-11-05"
     }
    ]
   },
   "notes": "Added in the integration pass from lane 5's NLnet list. README: \"This software is under active development\"; no releases, so maturity alpha is our reading. The repo carries a complement/ directory (Matrix compliance tests). The project's own ban is stricter than either NLnet policy version.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 172,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 2,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 2,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 51,
    "commits_365d": 172,
    "commits_90d": 82,
    "commits_all": 461,
    "first_commit": "2023-09-28T09:48:06+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0016,
     "Elixir": 0.9977
    },
    "last_commit": "2026-11-01T19:01:55+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 67,
     "Elixir": 40799,
     "Scheme": 24,
     "Shell": 5
    },
    "loc_total": 40895,
    "main_language": "Elixir",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     4,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     5,
     0,
     0,
     0,
     2,
     0,
     0,
     3,
     0,
     1,
     0,
     0,
     2,
     0,
     0,
     5,
     4,
     11,
     2,
     13,
     14,
     7,
     15,
     2,
     0,
     2,
     5,
     2,
     9,
     9,
     0,
     2,
     2,
     19,
     16,
     8,
     8
    ]
   }
  },
  {
   "slug": "bubo",
   "name": "Bubo",
   "category": "bot",
   "kind": "community-management",
   "homepage": "https://github.com/elokapina/bubo",
   "summary": "A community-management bot that creates and maintains rooms and spaces, power levels, aliases and room upgrades, with optional Keycloak user management.",
   "repos": [
    {
     "url": "https://github.com/elokapina/bubo",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "community management (rooms, spaces, power levels, users)",
     "how": "claimed",
     "source": "https://github.com/elokapina/bubo/blob/d62675eb9d3f60e4f068e627e793f9e29a99cbf0/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/elokapina/bubo/blob/d62675eb9d3f60e4f068e627e793f9e29a99cbf0/requirements.txt",
     "note": "matrix-nio[e2e]"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/elokapina/bubo/blob/d62675eb9d3f60e4f068e627e793f9e29a99cbf0/requirements.txt",
     "note": "matrix-nio[e2e] and python-olm; the README has it keep rooms marked encrypted encrypted"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/elokapina/bubo/blob/d62675eb9d3f60e4f068e627e793f9e29a99cbf0/README.md",
     "note": "Docker"
    },
    "config": {
     "value": "config.yaml and !bubo commands",
     "how": "claimed",
     "source": "https://github.com/elokapina/bubo/blob/d62675eb9d3f60e4f068e627e793f9e29a99cbf0/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/elokapina/bubo/blob/d62675eb9d3f60e4f068e627e793f9e29a99cbf0/requirements.txt"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2025-09-14), counted at d62675eb9d3f"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Last commit 2025-09-14; maturity is our reading. The README states the licence as \"Apache2\".",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 223,
    "first_commit": "2020-07-17T19:21:09+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0088,
     "Python": 0.9887,
     "Shell": 0.0025
    },
    "last_commit": "2025-09-14T01:31:33+00:00",
    "last_tag": "v0.3.0",
    "last_tag_date": "2022-01-23T00:23:32+02:00",
    "last_tag_repo": "https://github.com/elokapina/bubo",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 28,
     "Python": 3139,
     "Shell": 8
    },
    "loc_total": 3175,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "bullettime",
   "name": "bullettime",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "An experimental Go homeserver.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/bullettime",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Go",
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "no commits since 2015-09-21; not cloned"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "matrix.org labels it \"Obsolete\". Last push 2015-09-21 (GitHub API); not cloned or MSC-scanned.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 195,
    "first_commit": "2015-09-17T22:49:09+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9807,
     "HTML": 0.0047,
     "JavaScript": 0.014
    },
    "last_commit": "2015-09-20T20:42:54+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "Go": 4632,
     "HTML": 22,
     "JavaScript": 66,
     "Shell": 3
    },
    "loc_total": 4723,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "cactus-comments",
   "name": "Cactus Comments",
   "category": "client",
   "kind": "web (comments widget)",
   "homepage": "https://cactus.chat",
   "summary": "An embeddable Elm web client that turns Matrix rooms into federated comment sections, with a companion appservice.",
   "repos": [
    {
     "url": "https://gitlab.com/cactus-comments/cactus-client",
     "forge": "gitlab",
     "role": "main"
    },
    {
     "url": "https://gitlab.com/cactus-comments/cactus-appservice",
     "forge": "gitlab",
     "role": "server"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv: room \"Cactus Comments\" (Not-chat Clients)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://gitlab.com/cactus-comments/cactus-client/-/blob/401f4ca35d15a7c8d2cb4b4d944113fa4fe6dafc/README.md"
    }
   ],
   "licence": "LGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [
    "https://opencollective.com/cactus-comments"
   ],
   "features": {
    "sdk": {
     "value": "own (Elm)",
     "how": "code",
     "source": "https://gitlab.com/cactus-comments/cactus-client/-/blob/401f4ca35d15a7c8d2cb4b4d944113fa4fe6dafc/elm.json"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://gitlab.com/cactus-comments/cactus-client/-/blob/401f4ca35d15a7c8d2cb4b4d944113fa4fe6dafc/README.md",
     "note": "Public comment rooms."
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days (last 2023-07-14); no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "cactus-comments.webp",
    "source": "https://cactus.chat/apple-touch-icon.png",
    "licence": null,
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Our reading: dormant (last client commit 2023-07-14). A not-chat client; the appservice half could interest lane 5.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 11,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 396,
    "first_commit": "2020-09-28T14:03:45+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0936,
     "Elm": 0.874,
     "HTML": 0.0183,
     "JavaScript": 0.0048,
     "Nix": 0.0034,
     "Python": 0.006
    },
    "last_commit": "2023-07-07T01:18:00+00:00",
    "last_tag": "v0.13.0",
    "last_tag_date": "2022-07-08T16:02:39+02:00",
    "last_tag_repo": "https://gitlab.com/cactus-comments/cactus-client",
    "licence_detected": "LGPL-3.0",
    "loc": {
     "CSS": 389,
     "Dockerfile": 9,
     "Elm": 3634,
     "HTML": 76,
     "JavaScript": 20,
     "Nix": 14,
     "Python": 811,
     "Shell": 2,
     "Systemd": 49
    },
    "loc_total": 5004,
    "main_language": "Elm",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "cerulean",
   "name": "Cerulean",
   "category": "client",
   "kind": "web (microblogging)",
   "homepage": "https://matrix.org/blog/2020/12/18/introducing-cerulean",
   "summary": "An experimental matrix.org web client demonstrating Twitter-style public threaded conversations (MSC2836).",
   "repos": [
    {
     "url": "https://github.com/matrix-org/cerulean",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv: room \"Cerulean (OLD)\" (Not-chat Clients)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/matrix-org/cerulean/blob/6c9d7814f63bdc5bf62a5e68dc9fbbdf118cc338/README.md"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own (direct Client-Server API calls, no SDK dependency)",
     "how": "code",
     "source": "https://github.com/matrix-org/cerulean/blob/6c9d7814f63bdc5bf62a5e68dc9fbbdf118cc338/package.json"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/cerulean/blob/6c9d7814f63bdc5bf62a5e68dc9fbbdf118cc338/README.md",
     "note": "README describes public rooms only; no crypto dependency in package.json."
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-org/cerulean/blob/6c9d7814f63bdc5bf62a5e68dc9fbbdf118cc338/README.md",
     "note": "Threads via MSC2836 (not m.thread)."
    },
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days, so no attributed commits; no agent files in the tree."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "cerulean.svg",
    "source": "https://github.com/matrix-org/cerulean/blob/6c9d7814f63bdc5bf62a5e68dc9fbbdf118cc338/public/icon.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05",
    "backing": "dark"
   },
   "notes": "Last commit 2023-04-03. A not-chat client (social/microblogging demo).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 5,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 125,
    "first_commit": "2020-10-05T01:16:36+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.1743,
     "Dockerfile": 0.0037,
     "HTML": 0.0045,
     "JavaScript": 0.8016,
     "Smarty Template": 0.0151
    },
    "last_commit": "2023-01-24T12:22:55+00:00",
    "last_tag": "helm-cerulean-0.1.0",
    "last_tag_date": "2023-04-03T15:59:17-05:00",
    "last_tag_repo": "https://github.com/matrix-org/cerulean",
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 659,
     "Dockerfile": 14,
     "HTML": 17,
     "JavaScript": 3030,
     "Shell": 3,
     "Smarty Template": 57
    },
    "loc_total": 3780,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "cetirizine",
   "name": "Cetirizine",
   "category": "client",
   "kind": "web",
   "homepage": "https://github.com/MTRNord/cetirizine",
   "summary": "An experimental personal React web client built around sliding sync.",
   "repos": [
    {
     "url": "https://github.com/MTRNord/cetirizine",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv: room \"Cetirizine\" (Chat Clients)",
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/MTRNord/cetirizine/blob/cb4e6a18b388553295e660fd6f6c167d5bd96bc0/README.md"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own, with @mtrnord/matrix-sdk-crypto-js",
     "how": "code",
     "source": "https://github.com/MTRNord/cetirizine/blob/cb4e6a18b388553295e660fd6f6c167d5bd96bc0/package.json"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/MTRNord/cetirizine/blob/cb4e6a18b388553295e660fd6f6c167d5bd96bc0/README.md",
     "note": "README: \"A Matrix client using sliding sync\" (the MSC3575 proxy era, 2023)."
    },
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days, so no attributed commits; no agent files in the tree."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "README: \"meant to be the personal client for MTRNord\". Last commit 2023-10-20; our reading: unmaintained.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 2,
     "2023-Q3": 2,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 180,
    "first_commit": "2023-04-19T19:26:02+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "HTML": 0.0017,
     "JavaScript": 0.0241,
     "Sass": 0.0782,
     "TypeScript": 0.8949
    },
    "last_commit": "2023-09-19T11:35:16+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "Gherkin Specification": 5,
     "HTML": 21,
     "JavaScript": 294,
     "MDX": 8,
     "Sass": 953,
     "TypeScript": 10912
    },
    "loc_total": 12193,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "beeper-chatgpt-dots",
   "name": "ChatGPT Dots",
   "category": "bridge",
   "kind": "AI chat bridge",
   "homepage": null,
   "summary": "Experimental bridgev2 bridge connecting a user's ChatGPT Dot (an OpenAI assistant) to Beeper and Matrix.",
   "repos": [
    {
     "url": "https://github.com/beeper/chatgpt-dots",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:beeper"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "ChatGPT Dots (OpenAI)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/chatgpt-dots/blob/c07a8a090e6c7e1d2cf146f6c7209f9570dd54c3/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/beeper/chatgpt-dots/blob/c07a8a090e6c7e1d2cf146f6c7209f9570dd54c3/README.md",
     "note": "no pre-link history"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/beeper/chatgpt-dots/blob/c07a8a090e6c7e1d2cf146f6c7209f9570dd54c3/README.md"
    },
    "reactions_edits": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/beeper/chatgpt-dots/blob/c07a8a090e6c7e1d2cf146f6c7209f9570dd54c3/README.md",
     "note": "reactions"
    },
    "group_chats": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/beeper/chatgpt-dots/blob/c07a8a090e6c7e1d2cf146f6c7209f9570dd54c3/README.md"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "README: unofficial, unaffiliated with OpenAI, uses an undocumented protocol"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "4 of 39 non-bot commits in the last 365 days (10.3 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/beeper/chatgpt-dots/commit/265398af80d5f75c6ee0d9ff835fcffcd8afabc0, https://github.com/beeper/chatgpt-dots/commit/ff12c9acb70507175a8fa2b6bb65b91c3d9bbfba"
     ]
    },
    "in_product": {
     "value": "core",
     "note": "the bridged network is an AI assistant (ChatGPT Dot)",
     "source": "https://github.com/beeper/chatgpt-dots/blob/c07a8a090e6c7e1d2cf146f6c7209f9570dd54c3/README.md"
    }
   },
   "notes": "Found with GitHub search org:beeper.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 4,
     "commits_365d": 37,
     "share_365d": 0.1081,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 4
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 3,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 3
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 35,
    "commits_365d": 37,
    "commits_90d": 37,
    "commits_all": 37,
    "first_commit": "2026-10-02T13:28:42+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0039,
     "Go": 0.9845,
     "Powershell": 0.0038,
     "Shell": 0.0079
    },
    "last_commit": "2026-11-04T12:24:21+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 24,
     "Go": 6019,
     "Powershell": 23,
     "Shell": 48
    },
    "loc_total": 6114,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/beeper/chatgpt-dots/blob/c07a8a090e6c7e1d2cf146f6c7209f9570dd54c3/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     7,
     5,
     7,
     10,
     8
    ]
   }
  },
  {
   "slug": "chatrix",
   "name": "Chatrix",
   "category": "client",
   "kind": "web (WordPress plugin)",
   "homepage": "https://wordpress.com/plugins/chatrix",
   "summary": "A WordPress plugin by Automattic that embeds a Matrix client (built on Hydrogen) in pages, as a block or a popup.",
   "repos": [
    {
     "url": "https://github.com/Automattic/chatrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/chatrix/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "wordpress-plugins",
       "url": "https://wordpress.com/plugins/chatrix"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatrix.md"
    }
   ],
   "licence": "GPL-2.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "hydrogen-web (Automattic fork, chatrix-0.8.3)",
     "how": "code",
     "source": "https://github.com/Automattic/chatrix/blob/6ce3da78f66e11eaf0d7bc1993f4c00e687549b2/package.json"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatrix.md"
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatrix.md"
    },
    "threads": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatrix.md"
    },
    "spaces": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatrix.md"
    },
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatrix.md"
    },
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "3 commits in the last 365 days, none attributed; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "chatrix.svg",
    "source": "https://github.com/Automattic/chatrix/blob/6ce3da78f66e11eaf0d7bc1993f4c00e687549b2/frontend/iframe/assets/icon.svg",
    "licence": "GPL-2.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Stable. Last commit 2026-06-08.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 3,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 0,
    "authors_all": 13,
    "authors_by_quarter": {
     "2023-Q1": 5,
     "2023-Q2": 2,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 2,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 3,
    "commits_90d": 0,
    "commits_all": 1061,
    "first_commit": "2021-12-27T09:31:52+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0259,
     "HTML": 0.0231,
     "JavaScript": 0.2817,
     "Makefile": 0.0025,
     "PHP": 0.15,
     "Sass": 0.0186,
     "Shell": 0.0273,
     "TypeScript": 0.4676,
     "TypeScript Typings": 0.0034
    },
    "last_commit": "2026-06-08T03:19:29+00:00",
    "last_tag": "0.9.2",
    "last_tag_date": "2025-04-17T21:16:58+04:00",
    "last_tag_repo": "https://github.com/Automattic/chatrix",
    "licence_detected": "GPL-2.0",
    "loc": {
     "CSS": 92,
     "HTML": 82,
     "JavaScript": 1001,
     "Makefile": 9,
     "PHP": 533,
     "Sass": 66,
     "Shell": 97,
     "TypeScript": 1662,
     "TypeScript Typings": 12
    },
    "loc_total": 3554,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "chatty",
   "name": "Chatty (Chats)",
   "category": "client",
   "kind": "mobile, desktop",
   "homepage": "https://gitlab.gnome.org/World/Chatty",
   "summary": "Purism's GTK messaging app for SMS/MMS, Matrix (via libcmatrix) and XMPP, aimed at Linux phones and desktops.",
   "repos": [
    {
     "url": "https://gitlab.gnome.org/World/Chatty",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/chatty/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "linux"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "gtk",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "distribution packages",
       "url": "https://gitlab.gnome.org/World/Chatty"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatty.md",
     "note": "Linux phones (Librem 5, postmarketOS, Mobian) and desktop."
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "libcmatrix",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/Chatty/-/blob/55cb152cf296bcf29d8f278c2e3d882de6ff04d8/meson.build"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatty.md"
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatty.md"
    },
    "threads": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatty.md"
    },
    "spaces": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatty.md"
    },
    "voip_1to1": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chatty.md"
    },
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/Chatty/-/blob/55cb152cf296bcf29d8f278c2e3d882de6ff04d8/po",
     "note": "GNOME translation platform; about 46 po files."
    },
    "telemetry": {
     "value": "none-found",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/Chatty/-/blob/55cb152cf296bcf29d8f278c2e3d882de6ff04d8/meson.build"
    },
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://gitlab.gnome.org/World/Chatty/-/blob/55cb152cf296bcf29d8f278c2e3d882de6ff04d8/README.md",
     "note": "C/GTK with Meson and Debian build-deps; Matrix support lives in the separate libcmatrix; GPL-3.0-or-later."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits among 94 non-bot commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "chatty.svg",
    "source": "https://gitlab.gnome.org/World/Chatty/-/blob/55cb152cf296bcf29d8f278c2e3d882de6ff04d8/data/icons/hicolor/scalable/apps/sm.puri.Chatty.svg",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: beta. Matrix is one of several protocols (SMS/MMS via ModemManager and mmsd-tng).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 94,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 35,
    "authors_90d": 9,
    "authors_all": 110,
    "authors_by_quarter": {
     "2023-Q1": 10,
     "2023-Q2": 9,
     "2023-Q3": 7,
     "2023-Q4": 18,
     "2024-Q1": 20,
     "2024-Q2": 18,
     "2024-Q3": 22,
     "2024-Q4": 19,
     "2025-Q1": 19,
     "2025-Q2": 20,
     "2025-Q3": 16,
     "2025-Q4": 17,
     "2026-Q1": 19,
     "2026-Q2": 6,
     "2026-Q3": 8,
     "2026-Q4": 4
    },
    "bus_factor_365d": 5,
    "ci": true,
    "commits_30d": 19,
    "commits_365d": 94,
    "commits_90d": 39,
    "commits_all": 3755,
    "first_commit": "2018-10-01T11:56:26+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0026,
     "C": 0.7913,
     "C Header": 0.0754,
     "CSS": 0.0036,
     "Meson": 0.013,
     "Python": 0.0055,
     "SQL": 0.1048,
     "Shell": 0.0025
    },
    "last_commit": "2026-10-31T11:19:22+00:00",
    "last_tag": "v0.8.9",
    "last_tag_date": "2026-02-28T13:26:24+01:00",
    "last_tag_repo": "https://gitlab.gnome.org/World/Chatty",
    "licence_detected": "GPL-3.0",
    "loc": {
     "BASH": 112,
     "C": 34580,
     "C Header": 3293,
     "C++": 31,
     "CSS": 157,
     "Dockerfile": 10,
     "Emacs Lisp": 12,
     "JavaScript": 6,
     "Makefile": 5,
     "Meson": 567,
     "Python": 239,
     "SQL": 4579,
     "Shell": 110
    },
    "loc_total": 43701,
    "main_language": "C",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     3,
     5,
     3,
     0,
     4,
     0,
     1,
     0,
     3,
     0,
     0,
     1,
     0,
     0,
     0,
     6,
     2,
     8,
     3,
     1,
     3,
     0,
     0,
     0,
     0,
     2,
     5,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     2,
     3,
     7,
     0,
     0,
     10,
     0,
     0,
     0,
     1,
     5,
     10,
     2,
     1
    ]
   }
  },
  {
   "slug": "chooj",
   "name": "chooj",
   "category": "client",
   "kind": "mobile (feature phone)",
   "homepage": "https://chooj.app",
   "summary": "A Matrix client for KaiOS feature phones with VoIP calls; no longer developed.",
   "repos": [
    {
     "url": "https://codeberg.org/chooj/chooj",
     "forge": "forgejo",
     "role": "main"
    },
    {
     "url": "https://github.com/farooqkz/chooj",
     "forge": "github",
     "role": "other"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/chooj/",
    "other": [
     "GitHub topic matrix-client (archived GitHub copy)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [],
   "apps": [
    {
     "os": "other",
     "tech": "webview",
     "min_os": "KaiOS 2.5",
     "status": "discontinued",
     "stores": [],
     "source": "https://codeberg.org/chooj/chooj/src/commit/763013c554bead6c80de2c43ba7cc44de77e7603/README.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk ^26.0.0",
     "how": "code",
     "source": "https://codeberg.org/chooj/chooj/src/commit/763013c554bead6c80de2c43ba7cc44de77e7603/package.json"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/chooj.md"
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": {
     "value": "yes",
     "how": "claimed",
     "source": "https://codeberg.org/chooj/chooj/src/commit/763013c554bead6c80de2c43ba7cc44de77e7603/README.md",
     "note": "\"Matrix client for KaiOS with VoIP call support\"; matrix.org lists voip_1to1 as unsupported."
    },
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "chooj.webp",
    "source": "https://codeberg.org/chooj/chooj/src/commit/763013c554bead6c80de2c43ba7cc44de77e7603/src/chooj.png",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "README: \"Given the state of KaiOS, chooj is no longer developed or maintained\". matrix.org maturity: Obsolete. Last commit 2025-08-03.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 6,
    "authors_by_quarter": {
     "2023-Q1": 3,
     "2023-Q2": 1,
     "2023-Q3": 3,
     "2023-Q4": 1,
     "2024-Q1": 2,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 513,
    "first_commit": "2021-07-16T14:15:50+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0495,
     "HTML": 0.0039,
     "JavaScript": 0.1298,
     "TypeScript": 0.8063,
     "TypeScript Typings": 0.0105
    },
    "last_commit": "2025-08-03T07:55:38+00:00",
    "last_tag": "1.0.1",
    "last_tag_date": "2024-10-05T14:49:39+03:30",
    "last_tag_repo": "https://codeberg.org/chooj/chooj",
    "licence_detected": null,
    "loc": {
     "CSS": 441,
     "HTML": 37,
     "JavaScript": 1275,
     "TypeScript": 7534,
     "TypeScript Typings": 100
    },
    "loc_total": 9387,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "cinny",
   "name": "Cinny",
   "category": "client",
   "kind": "web, desktop",
   "homepage": "https://cinny.in",
   "summary": "A web and desktop Matrix client with a Discord-like layout, built on matrix-js-sdk; the desktop app wraps it with Tauri.",
   "repos": [
    {
     "url": "https://github.com/cinnyapp/cinny",
     "forge": "github",
     "role": "main"
    },
    {
     "url": "https://github.com/cinnyapp/cinny-desktop",
     "forge": "github",
     "role": "desktop"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/cinny/",
    "other": [
     "PLAN.md extra sources (https://cinny.in)",
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "web",
       "url": "https://app.cinny.in/"
      },
      {
       "name": "docker",
       "url": "https://hub.docker.com/r/ajbura/cinny"
      }
     ],
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/README.md"
    },
    {
     "os": "windows",
     "tech": "tauri",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "github-releases",
       "url": "https://github.com/cinnyapp/cinny-desktop/releases"
      }
     ],
     "source": "https://github.com/cinnyapp/cinny-desktop/blob/d4f78de9335976f3ac66de66772b1e28b75be95d/README.md"
    },
    {
     "os": "macos",
     "tech": "tauri",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "github-releases",
       "url": "https://github.com/cinnyapp/cinny-desktop/releases"
      }
     ],
     "source": "https://github.com/cinnyapp/cinny-desktop/blob/d4f78de9335976f3ac66de66772b1e28b75be95d/README.md"
    },
    {
     "os": "linux",
     "tech": "tauri",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/details/in.cinny.Cinny"
      },
      {
       "name": "appimage",
       "url": "https://github.com/cinnyapp/cinny-desktop/releases/latest"
      }
     ],
     "source": "https://github.com/cinnyapp/cinny-desktop/blob/d4f78de9335976f3ac66de66772b1e28b75be95d/README.md"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "flathub",
    "docker",
    "appimage"
   ],
   "funding": [
    "https://opencollective.com/cinny",
    "https://liberapay.com/ajbura"
   ],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk 41.7.0 (Rust crypto via initRustCrypto)",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/package.json"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/client/initMatrix.ts",
     "note": "Rust crypto initialised with initRustCrypto()."
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/features/settings/devices/Devices.tsx"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/hooks/useKeyBackup.ts"
    },
    "sliding_sync": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/package.json",
     "note": "No MSC4186 or MSC3575 code found; matrix.org lists it as unknown."
    },
    "oidc_auth": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/features/settings/devices/OtherDevices.tsx",
     "note": "Reads auth metadata and links device management to the OIDC account dashboard; no OIDC login flow found in the code. matrix.org: unknown."
    },
    "multi_account": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/cinny.md"
    },
    "threads": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/features/room/RoomTimeline.tsx",
     "note": "Can send m.thread relations from the timeline; matrix.org lists threads as unsupported (no thread panel found)."
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/types/matrix/room.ts"
    },
    "voip_1to1": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/cinny.md"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/plugins/call/CallEmbed.ts",
     "note": "Embeds Element Call (MatrixRTC); matrix.org lists voip_matrixrtc as supported."
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/types/matrix/room.ts"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/utils/room.ts"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/features/room/RoomInput.tsx"
    },
    "polls": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/components/RenderMessageContent.tsx",
     "note": "No m.poll / MSC3381 handling found."
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/plugins/custom-emoji/types.ts",
     "note": "im.ponies image packs (MSC2545); matrix.org: partial."
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/utils/room.ts"
    },
    "location": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/components/RenderMessageContent.tsx",
     "note": "Renders m.location messages; no sending UI found."
    },
    "voice_messages": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/components/RenderMessageContent.tsx",
     "note": "Audio files play; no voice recording (MediaRecorder) found."
    },
    "rich_text_editor": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/components/editor/Editor.tsx",
     "note": "Slate-based composer with formatting."
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/components/url-preview/index.ts"
    },
    "push_notifications": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/features/settings/notifications/SystemNotification.tsx",
     "note": "Browser/system notifications while open and email notifications; no mobile push."
    },
    "private_read_receipts": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/utils/room.ts",
     "note": "No m.read.private found."
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/hooks/useUserPresence.ts"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/features/room/RoomTombstone.tsx",
     "note": "Shows tombstones and the successor room."
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/features/common-settings/permissions/Powers.tsx",
     "note": "Power levels, kick/ban/redact."
    },
    "accessibility": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/src/app/components/editor/Editor.tsx",
     "note": "aria-label attributes in about 20 files; no documented screen-reader work found."
    },
    "translations": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/public/locales/en.json",
     "note": "Two locale files in the repo (en, de)."
    },
    "telemetry": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/package.json",
     "note": "No analytics or crash-report SDK in package.json."
    },
    "default_homeserver": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/config.json",
     "note": "matrix.org (defaultHomeserver index 1 in the list converser.eu, matrix.org, mozilla.org, unredacted.org, xmr.se)."
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/package.json",
     "note": "About 75k lines of TS/JS/CSS; Vite build with npm; the desktop app adds a Rust/Tauri toolchain. AGPL-3.0-only: hosted forks must offer source. Forks exist (Sable, Extera, app.cinny.ir)."
    }
   },
   "ai": {
    "policy": {
     "value": "banned",
     "quote": "The Cinny project strictly does not allow any AI generated code. Any pull request containing it will be rejected. **This is very important.**",
     "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits found in the last 365 days (103 non-bot commits in cinny, 54 in cinny-desktop).",
      "No agent files in either tree."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "cinny.svg",
    "source": "https://github.com/cinnyapp/cinny/blob/474400cedc438f6fb4db69bc763037b0948bbe48/public/res/svg/cinny.svg",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Stable. The old #cinny:matrix.org room is archived and replaced (community-space.tsv).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 157,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 22,
    "authors_90d": 5,
    "authors_all": 88,
    "authors_by_quarter": {
     "2023-Q1": 5,
     "2023-Q2": 4,
     "2023-Q3": 5,
     "2023-Q4": 6,
     "2024-Q1": 2,
     "2024-Q2": 6,
     "2024-Q3": 7,
     "2024-Q4": 6,
     "2025-Q1": 10,
     "2025-Q2": 5,
     "2025-Q3": 7,
     "2025-Q4": 3,
     "2026-Q1": 13,
     "2026-Q2": 8,
     "2026-Q3": 4,
     "2026-Q4": 4
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 9,
    "commits_365d": 157,
    "commits_90d": 17,
    "commits_all": 1293,
    "first_commit": "2021-07-28T13:15:52+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.003,
     "HTML": 0.0014,
     "JavaScript": 0.0049,
     "TypeScript": 0.9886,
     "TypeScript Typings": 0.0019
    },
    "last_commit": "2026-11-04T01:50:42+00:00",
    "last_tag": "v4.12.8",
    "last_tag_date": "2026-10-26T00:38:58+11:00",
    "last_tag_repo": "https://github.com/cinnyapp/cinny-desktop",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 203,
     "Dockerfile": 12,
     "HTML": 92,
     "JavaScript": 472,
     "Rust": 138,
     "TypeScript": 66665,
     "TypeScript Typings": 130
    },
    "loc_total": 67712,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 25,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     3,
     11,
     13,
     12,
     22,
     10,
     10,
     4,
     0,
     2,
     2,
     0,
     1,
     3,
     11,
     9,
     0,
     0,
     1,
     12,
     2,
     1,
     1,
     3,
     0,
     3,
     1,
     0,
     0,
     0,
     0,
     7,
     0,
     0,
     0,
     0,
     0,
     5,
     4
    ]
   }
  },
  {
   "slug": "circles",
   "name": "Circles (FUTO)",
   "category": "client",
   "kind": "mobile (social network)",
   "homepage": "https://github.com/circles-project",
   "summary": "FUTO's prototype end-to-end encrypted social network for friends and families, built on Matrix; development ended in late 2024.",
   "repos": [
    {
     "url": "https://github.com/circles-project/circles-android",
     "forge": "github",
     "role": "android"
    },
    {
     "url": "https://github.com/circles-project/circles-ios",
     "forge": "github",
     "role": "ios"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv: room \"Circles\" (Not-chat Clients)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "android",
    "ios"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "native",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/circles-project/circles-android/blob/250f9e53382d20e266be6a3d865582b4f7704879/README.md"
    },
    {
     "os": "ios",
     "tech": "native",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/circles-project/circles-ios/blob/5aec0b5cdb379fe13113ec55f4475a020b9c1834/README.md"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": "not-found",
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/circles-project/circles-android/blob/250f9e53382d20e266be6a3d865582b4f7704879/README.md"
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "circles.webp",
    "source": "https://github.com/circles-project/circles-android/blob/250f9e53382d20e266be6a3d865582b4f7704879/fastlane/metadata/android/en-US/images/icon.png",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "README: \"Active development wrapped up in late 2024, and the code is now available under a very liberal Open Source license to allow for new forks\". A not-chat client.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 2,
     "2023-Q3": 3,
     "2023-Q4": 3,
     "2024-Q1": 2,
     "2024-Q2": 4,
     "2024-Q3": 3,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 5337,
    "first_commit": "2021-05-26T01:43:19+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.002,
     "C": 0.0767,
     "C Header": 0.0083,
     "Kotlin": 0.9017,
     "Prolog": 0.0055,
     "Shell": 0.0053
    },
    "last_commit": "2025-02-03T21:48:36+00:00",
    "last_tag": "v1.1.0",
    "last_tag_date": "2025-02-03T15:13:44-06:00",
    "last_tag_repo": "https://github.com/circles-project/circles-ios",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Batch": 68,
     "C": 3327,
     "C Header": 554,
     "CMake": 14,
     "Gemfile": 2,
     "Kotlin": 30442,
     "Objective C": 1007,
     "Prolog": 185,
     "Shell": 179,
     "Swift": 17190
    },
    "loc_total": 52968,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Firebase Analytics",
     "Firebase Crashlytics"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "commet",
   "name": "Commet",
   "category": "client",
   "kind": "desktop, mobile, web",
   "homepage": "https://commet.chat",
   "summary": "A Flutter Matrix client for Windows, Linux, Android and web, focused on features with a simple interface.",
   "repos": [
    {
     "url": "https://github.com/commetchat/commet",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/commet/",
    "other": [
     "PLAN.md extra sources (https://commet.chat)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "windows",
    "linux",
    "android",
    "web"
   ],
   "apps": [
    {
     "os": "windows",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "installer",
       "url": "https://commet.chat/install/windows"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/commet.md"
    },
    {
     "os": "linux",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "linux packages",
       "url": "https://commet.chat/install/linux"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/commet.md"
    },
    {
     "os": "android",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/README.md"
    },
    {
     "os": "web",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "web",
       "url": "https://app.commet.chat/"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/commet.md"
    },
    {
     "os": "ios",
     "tech": "flutter",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/README.md",
     "note": "README: \"MacOS and iOS planned in future\"."
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-dart-sdk with vodozemac; some Rust via flutter_rust_bridge",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/pubspec.yaml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/matrix_client.dart"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/ui/pages/settings/categories/account/security/matrix/cross_signing/cross_signing_view.dart"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/ui/pages/settings/categories/account/security/matrix/cross_signing/cross_signing_page.dart"
    },
    "sliding_sync": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/pubspec.yaml",
     "note": "No sliding sync code found."
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/components/widgets/capabilities/mx_capability_oidc.dart",
     "note": "Only a widget OIDC capability found; matrix.org: oauth unknown, sso supported."
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/README.md"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/components/threads/matrix_threads_component.dart"
    },
    "spaces": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/README.md"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/components/voip/matrix_voip_component.dart"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/pubspec.yaml",
     "note": "MatrixRTC with livekit_client, screen share annotations."
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/matrix_room.dart"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/matrix_room.dart"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/timeline_events/matrix_timeline_event_mixin_related.dart"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/components/polls/matrix_poll_component.dart"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/components/emoticon/matrix_emoticon_component.dart",
     "note": "Image packs, import of packs; matrix.org: partial."
    },
    "stickers": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/README.md",
     "note": "Plus GIF search."
    },
    "location": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/matrix_room.dart"
    },
    "voice_messages": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/matrix_room.dart"
    },
    "rich_text_editor": "not-found",
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/components/url_preview/matrix_url_preview_component.dart"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/ui/pages/setup/menus/unified_push_setup.dart",
     "note": "UnifiedPush; a Firebase notifier also exists (commented out in pubspec.yaml)."
    },
    "private_read_receipts": "not-found",
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/components/user_presence/matrix_user_presence.dart"
    },
    "room_upgrades": "not-found",
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/client/matrix/timeline_events/matrix_timeline_event_redaction.dart"
    },
    "accessibility": "not-found",
    "translations": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/README.md",
     "note": "Weblate; 28 .arb files."
    },
    "telemetry": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/pubspec.yaml"
    },
    "default_homeserver": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/commet/lib/config/global_config.dart",
     "note": "matrix.org unless configured."
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/README.md",
     "note": "Flutter plus a Rust part (flutter_rust_bridge) and code generation before building; AGPL-3.0-only."
    }
   },
   "ai": {
    "policy": {
     "value": "banned",
     "quote": "We expect and appreciate authentic engagement in our community, as such usage of generative AI tools is prohibited. [...] Usage of AI / LLMs to generate code or documentation is strictly prohibited.",
     "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits among 346 non-bot commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "commet.webp",
    "source": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/fastlane/metadata/android/zh-CN/images/icon.jpg",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Beta.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 277,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 16,
    "authors_90d": 6,
    "authors_all": 24,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 2,
     "2023-Q4": 3,
     "2024-Q1": 2,
     "2024-Q2": 3,
     "2024-Q3": 1,
     "2024-Q4": 2,
     "2025-Q1": 3,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 11,
     "2026-Q2": 5,
     "2026-Q3": 4,
     "2026-Q4": 4
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 14,
    "commits_365d": 277,
    "commits_90d": 44,
    "commits_all": 807,
    "first_commit": "2023-02-07T09:20:30+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0039,
     "C++": 0.0132,
     "CMake": 0.0098,
     "Dart": 0.9373,
     "GLSL": 0.0016,
     "Gradle": 0.0046,
     "HTML": 0.011,
     "JavaScript": 0.0013,
     "Kotlin": 0.0033,
     "Nix": 0.0011,
     "Rust": 0.0056,
     "Shell": 0.002,
     "Swift": 0.0017,
     "Windows Resource-Definition Script": 0.0016
    },
    "last_commit": "2026-10-28T10:58:44+00:00",
    "last_tag": "v0.5.1",
    "last_tag_date": "2026-10-28T21:28:44+10:30",
    "last_tag_repo": "https://github.com/commetchat/commet",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 66,
     "C Header": 327,
     "C++": 1109,
     "CMake": 823,
     "Dart": 78469,
     "GLSL": 131,
     "Gradle": 383,
     "HTML": 920,
     "Java": 26,
     "JavaScript": 110,
     "Kotlin": 273,
     "Nix": 88,
     "Powershell": 27,
     "Rust": 467,
     "Shell": 165,
     "Swift": 142,
     "Windows Resource-Definition Script": 138,
     "Xcode Config": 56
    },
    "loc_total": 83720,
    "main_language": "Dart",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/commetchat/commet/blob/4f2bb0860c90667d123fc219422e089310aa863a/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 7,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     4,
     1,
     5,
     5,
     0,
     1,
     6,
     3,
     6,
     10,
     1,
     23,
     12,
     13,
     21,
     25,
     14,
     5,
     12,
     1,
     1,
     3,
     6,
     0,
     5,
     1,
     0,
     10,
     1,
     0,
     11,
     11,
     5,
     1,
     5,
     0,
     2,
     0,
     2,
     1,
     0,
     2,
     0,
     5,
     1,
     9,
     4,
     9,
     6,
     4,
     4,
     0
    ]
   }
  },
  {
   "slug": "conduit",
   "name": "Conduit",
   "category": "server",
   "kind": "homeserver",
   "homepage": "https://conduit.rs",
   "summary": "A simple, fast and reliable Matrix homeserver written in Rust.",
   "repos": [
    {
     "url": "https://gitlab.com/famedly/conduit",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml",
     "sources/community-space.tsv (Servers/Hosting)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "debian"
   ],
   "funding": [],
   "features": {
    "language": "Rust",
    "database": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/docs/configuration.md#L32",
     "note": "RocksDB (recommended), SQLite"
    },
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/conduit/src/api/client_server/unversioned.rs#L22",
     "versions": [
      "r0.5.0",
      "r0.6.0",
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.6",
      "v1.7",
      "v1.8",
      "v1.9",
      "v1.10",
      "v1.11",
      "v1.12"
     ]
    },
    "appservices": {
     "value": "yes",
     "how": "claimed"
    },
    "admin_api": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/docs/administration.md",
     "note": "admin room commands"
    },
    "oidc_delegation": {
     "value": "not-found",
     "note": "no reference to MSC3861/2964/2965/2967 found in the code"
    },
    "native_sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/conduit/Cargo.toml#L159",
     "note": "MSC4186: unstable"
    },
    "workers_scaling": {
     "value": "no",
     "how": "claimed"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/conduit/src/api/client_server/unversioned.rs#L39",
     "note": "MSC3916: stable"
    },
    "msc": [
     {
      "msc": 2448,
      "state": "unstable",
      "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/conduit/Cargo.toml#L158",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3575,
      "state": "unstable",
      "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/conduit/src/api/client_server/unversioned.rs#L40",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3911,
      "state": "unstable",
      "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/conduit/src/service/admin/mod.rs#L1174",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3916,
      "state": "stable",
      "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/conduit/src/api/client_server/unversioned.rs#L39",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3967,
      "state": "stable",
      "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/conduit/src/api/client_server/keys.rs#L161",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4029,
      "state": "unstable",
      "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/conduit/src/api/ruma_wrapper/axum.rs#L141",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4186,
      "state": "unstable",
      "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/conduit/Cargo.toml#L159",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4311,
      "state": "stable",
      "source": "https://gitlab.com/famedly/conduit/-/blob/c201feb4851f837d809244fd536c1c189266089f/conduit/src/utils/mod.rs#L205",
      "note": "referenced in code; MSC is in the spec"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "c201feb4851f837d809244fd536c1c189266089f"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "conduit.svg",
    "source": "https://conduit.rs/conduit.svg",
    "licence": null,
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 29,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 4,
    "authors_90d": 1,
    "authors_all": 120,
    "authors_by_quarter": {
     "2023-Q1": 9,
     "2023-Q2": 10,
     "2023-Q3": 12,
     "2023-Q4": 3,
     "2024-Q1": 11,
     "2024-Q2": 13,
     "2024-Q3": 7,
     "2024-Q4": 5,
     "2025-Q1": 1,
     "2025-Q2": 3,
     "2025-Q3": 7,
     "2025-Q4": 2,
     "2026-Q1": 3,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 3,
    "commits_365d": 29,
    "commits_90d": 8,
    "commits_all": 1846,
    "first_commit": "2020-02-15T21:42:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.001,
     "Nix": 0.0099,
     "Python": 0.005,
     "Rust": 0.9786,
     "Shell": 0.0036,
     "Systemd": 0.0011
    },
    "last_commit": "2026-10-18T17:46:05+00:00",
    "last_tag": "v0.10.15",
    "last_tag_date": "2026-09-29T16:06:02+01:00",
    "last_tag_repo": "https://gitlab.com/famedly/conduit",
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 25,
     "Dockerfile": 38,
     "Nix": 364,
     "Python": 184,
     "Rust": 35863,
     "Shell": 133,
     "Systemd": 42
    },
    "loc_total": 36649,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 6,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     2,
     0,
     0,
     1,
     1,
     0,
     0,
     1,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     13,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     4,
     0,
     0,
     3,
     0,
     0
    ]
   }
  },
  {
   "slug": "conduwuit",
   "name": "conduwuit",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A hard fork of Conduit with many features and fixes; archived, succeeded by Tuwunel and continuwuity.",
   "repos": [
    {
     "url": "https://github.com/x86pup/conduwuit",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": "conduit",
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Rust",
    "database": "RocksDB",
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L27",
     "versions": [
      "r0.0.1",
      "r0.1.0",
      "r0.2.0",
      "r0.3.0",
      "r0.4.0",
      "r0.5.0",
      "r0.6.0",
      "r0.6.1",
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.11"
     ]
    },
    "appservices": {
     "value": "yes",
     "how": "claimed"
    },
    "admin_api": {
     "value": "yes",
     "how": "claimed",
     "note": "admin room commands"
    },
    "oidc_delegation": {
     "value": "not-found",
     "note": "no reference to MSC3861/2964/2965/2967 found in the code"
    },
    "native_sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L383",
     "note": "MSC4186: unstable"
    },
    "workers_scaling": {
     "value": "no",
     "how": "claimed"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L52",
     "note": "MSC3916: stable"
    },
    "msc": [
     {
      "msc": 1659,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/core/matrix/state_res/room_version.rs#L19",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 1884,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/core/matrix/state_res/room_version.rs#L21",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2175,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/core/matrix/state_res/room_version.rs#L81",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2209,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/core/matrix/state_res/room_version.rs#L58",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2261,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/core/matrix/state_res/room_version.rs#L49",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2285,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L44",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2432,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/core/matrix/state_res/room_version.rs#L49",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2448,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L367",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2666,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L45",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2702,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/core/utils/content_disposition.rs#L7",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2836,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L46",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2867,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L369",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2870,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L370",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2946,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L47",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3026,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L48",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3061,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L372",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3245,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L373",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3266,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L374",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3289,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/core/matrix/state_res/room_version.rs#L68",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3381,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L375",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3401,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/room/create.rs#L506",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3489,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L376",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3575,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L51",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3667,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/core/matrix/state_res/room_version.rs#L76",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3787,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/core/matrix/state_res/room_version.rs#L72",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3827,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L49",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3916,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L52",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3930,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L378",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3952,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L50",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3967,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/keys.rs#L189",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4075,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L379",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4076,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/service/pusher/mod.rs#L428",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4095,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L380",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4121,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L381",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4125,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L382",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4133,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L54",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4166,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/voip.rs#L23",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4175,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L55",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4180,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/unversioned.rs#L53",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4186,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L383",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4190,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/src/api/client/device.rs#L93",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4203,
      "state": "unstable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L384",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4210,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/Cargo.toml#L385",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4267,
      "state": "stable",
      "source": "https://github.com/girlbossceo/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/conduwuit-example.toml#L449",
      "note": "referenced in code; MSC is in the spec"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "ffd7d61bc285b4159b4186ec5952aea695bc7eb2"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "conduwuit.svg",
    "source": "https://github.com/x86pup/conduwuit/blob/ffd7d61bc285b4159b4186ec5952aea695bc7eb2/docs/assets/conduwuit_logo.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org links github.com/girlbossceo/conduwuit, which redirects here. The README names Tuwunel as its only official successor; continuwuity also continues it.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 2,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 145,
    "authors_by_quarter": {
     "2023-Q1": 9,
     "2023-Q2": 10,
     "2023-Q3": 13,
     "2023-Q4": 9,
     "2024-Q1": 14,
     "2024-Q2": 20,
     "2024-Q3": 14,
     "2024-Q4": 15,
     "2025-Q1": 13,
     "2025-Q2": 2,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 2,
    "commits_90d": 0,
    "commits_all": 4458,
    "first_commit": "2020-02-15T21:42:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.002,
     "CSS": 0.0146,
     "Nix": 0.0156,
     "Rust": 0.9641,
     "Shell": 0.0018,
     "Systemd": 0.0019
    },
    "last_commit": "2026-05-29T13:47:00+00:00",
    "last_tag": "v0.4.6",
    "last_tag_date": "2024-09-01T12:44:24-04:00",
    "last_tag_repo": "https://github.com/x86pup/conduwuit",
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 123,
     "CSS": 912,
     "Nix": 971,
     "Rust": 60048,
     "Shell": 110,
     "Systemd": 121
    },
    "loc_total": 62285,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "construct",
   "name": "Construct",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A Matrix homeserver written in C++.",
   "repos": [
    {
     "url": "https://github.com/matrix-construct/construct",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "ISC",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "C++",
    "database": "RocksDB",
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-construct/construct/blob/0624b69246878da592d3f5c2c3737ad0b5ff6277/modules/client/versions.cc#L75",
     "versions": [
      "r0.0.1",
      "r0.1.0",
      "r0.2.0",
      "r0.3.0",
      "r0.4.0",
      "r0.5.0",
      "r0.6.0",
      "r0.6.1",
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.6"
     ]
    },
    "oidc_delegation": {
     "value": "not-found",
     "note": "no reference to MSC3861/2964/2965/2967 found in the code"
    },
    "native_sliding_sync": {
     "value": "not-found",
     "note": "no reference to MSC4186 found in the code"
    },
    "workers_scaling": {
     "value": "not-found"
    },
    "media_auth": {
     "value": "not-found",
     "note": "no reference to MSC3916 found in the code"
    },
    "msc": [
     {
      "msc": 2285,
      "state": "stable",
      "source": "https://github.com/matrix-construct/construct/blob/0624b69246878da592d3f5c2c3737ad0b5ff6277/modules/m_receipt.cc#L367",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2314,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/construct/blob/0624b69246878da592d3f5c2c3737ad0b5ff6277/modules/federation/state.cc#L137",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2432,
      "state": "stable",
      "source": "https://github.com/matrix-construct/construct/blob/0624b69246878da592d3f5c2c3737ad0b5ff6277/matrix/fed.cc#L905",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2697,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/construct/blob/0624b69246878da592d3f5c2c3737ad0b5ff6277/modules/client/dehydrated_device.cc#L28",
      "note": "unstable prefix in code"
     },
     {
      "msc": 2855,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/construct/blob/0624b69246878da592d3f5c2c3737ad0b5ff6277/modules/client/sync.cc#L31",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3030,
      "state": "stable",
      "source": "https://github.com/matrix-construct/construct/blob/0624b69246878da592d3f5c2c3737ad0b5ff6277/matrix/fed.cc#L668",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3316,
      "state": "stable",
      "source": "https://github.com/matrix-construct/construct/blob/0624b69246878da592d3f5c2c3737ad0b5ff6277/include/ircd/m/vm/opts.h#L226",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3827,
      "state": "stable",
      "source": "https://github.com/matrix-construct/construct/blob/0624b69246878da592d3f5c2c3737ad0b5ff6277/modules/client/versions.cc#L245",
      "note": "referenced in code; MSC is in the spec"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "0624b69246878da592d3f5c2c3737ad0b5ff6277"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "matrix.org labels it \"Obsolete\"; last commit 2023-05-01. matrix.org says \"BSD\", but the LICENSE file is the ISC text (https://github.com/matrix-construct/construct/blob/0624b69246878da592d3f5c2c3737ad0b5ff6277/LICENSE, checked 2026-11-05); the forge reports NOASSERTION.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 63,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 2,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 14818,
    "first_commit": "2007-01-25T06:40:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.1872,
     "C++": 0.6655,
     "CSS": 0.0135,
     "Dockerfile": 0.0014,
     "HTML": 0.0119,
     "JavaScript": 0.1059,
     "Nix": 0.0056,
     "Shell": 0.0025,
     "m4": 0.0062
    },
    "last_commit": "2023-05-01T19:45:37+00:00",
    "last_tag": "0.9.578",
    "last_tag_date": "2023-05-01T12:45:37-07:00",
    "last_tag_repo": "https://github.com/matrix-construct/construct",
    "licence_detected": "ISC",
    "loc": {
     "Assembly": 69,
     "C Header": 43973,
     "C++": 156347,
     "CSS": 3177,
     "Dockerfile": 327,
     "HTML": 2786,
     "JavaScript": 24879,
     "Nix": 1309,
     "Python": 17,
     "Shell": 589,
     "m4": 1448
    },
    "loc_total": 234921,
    "main_language": "C++",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "continuwuity",
   "name": "continuwuity",
   "category": "server",
   "kind": "homeserver",
   "homepage": "https://continuwuity.org",
   "summary": "A community-driven Matrix homeserver in Rust, a continuation of conduwuit (itself a fork of Conduit).",
   "repos": [
    {
     "url": "https://forgejo.ellis.link/continuwuation/continuwuity",
     "forge": "forgejo",
     "role": "main"
    },
    {
     "url": "https://github.com/continuwuity/continuwuity",
     "forge": "github",
     "role": "other"
    },
    {
     "url": "https://gitlab.com/continuwuity/continuwuity",
     "forge": "gitlab",
     "role": "other"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": "conduwuit",
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://opencollective.com/continuwuity"
   ],
   "features": {
    "language": "Rust",
    "database": {
     "value": "yes",
     "how": "claimed",
     "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/docs/deploying/generic.mdx#L27",
     "note": "RocksDB (embedded)"
    },
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/matrix/versions.rs#L6",
     "versions": [
      "r0.0.1",
      "r0.1.0",
      "r0.2.0",
      "r0.3.0",
      "r0.4.0",
      "r0.5.0",
      "r0.6.0",
      "r0.6.1",
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.8",
      "v1.11",
      "v1.12",
      "v1.13",
      "v1.14",
      "v1.15",
      "v1.16",
      "v1.17",
      "v1.18"
     ]
    },
    "appservices": {
     "value": "yes",
     "how": "claimed"
    },
    "admin_api": {
     "value": "yes",
     "how": "claimed",
     "note": "admin room commands"
    },
    "oidc_delegation": {
     "value": "yes",
     "how": "claimed",
     "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/docs/authentication.mdx#L9",
     "note": "built-in OAuth login (\"next-gen auth\") served by the homeserver itself, not MAS delegation"
    },
    "native_sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L376",
     "note": "MSC4186: unstable"
    },
    "workers_scaling": {
     "value": "no",
     "how": "claimed"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/matrix/versions.rs#L6",
     "note": "implied: the server advertises spec v1.11, where MSC3916 landed; no MSC reference in the code"
    },
    "msc": [
     {
      "msc": 1929,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/conduwuit-example.toml#L2353",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2409,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/service/rooms/read_receipt/mod.rs#L148",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2666,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/matrix/versions.rs#L38",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2702,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/utils/content_disposition.rs#L7",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2815,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/service/rooms/timeline/append.rs#L493",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2867,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L365",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2870,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L366",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2967,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/service/oauth/grant.rs#L112",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3202,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/api/router/args.rs#L22",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3245,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L368",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3381,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L369",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3489,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L370",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3575,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/matrix/versions.rs#L42",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3814,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L367",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3930,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L371",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4075,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L372",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4076,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/service/pusher/mod.rs#L44",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4095,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L373",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4121,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L374",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4125,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L375",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4133,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/service/migrations.rs#L112",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4143,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/matrix/versions.rs#L35",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4155,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/matrix/versions.rs#L44",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4166,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/api/client/voip.rs#L21",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4168,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/api/client/room/upgrade.rs#L622",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4169,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/api/client/send.rs#L133",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4174,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/matrix/versions.rs#L48",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4175,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/service/migrations.rs#L113",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4186,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L376",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4190,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/api/router/auth.rs#L366",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4195,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L377",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4203,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L378",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4210,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/api/client/push.rs#L64",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4267,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/conduwuit-example.toml#L803",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4283,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/ruminuwuity/invite_permission_config.rs#L15",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4284,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/ruminuwuity/policy/event.rs#L1",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4293,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L382",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4310,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L379",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4323,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/ruminuwuity/admin/get_suspended.rs#L6",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4354,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L386",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4363,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L383",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4380,
      "state": "stable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L380",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4406,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L384",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4439,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L385",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4466,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/matrix/versions.rs#L46",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4480,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L387",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4484,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/matrix/versions.rs#L52",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4494,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/matrix/versions.rs#L50",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4540,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/Cargo.toml#L391",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4560,
      "state": "unstable",
      "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/src/core/matrix/versions.rs#L54",
      "note": "advertised in unstable_features"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "allowed",
     "quote": "While we allow LLM-assisted contributions, we do not appreciate contributions that are low quality, which is typical of machine-generated contributions that have not had a lot of love and care from a human.",
     "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/223e8894596eb46aa46e5fc6a60f7c00f184ba72/.forgejo/pull_request_template.md#L54"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "223e8894596eb46aa46e5fc6a60f7c00f184ba72"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "continuwuity.svg",
    "source": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/db86d42801695fe822f2ab25dbab420394849065/docs/public/assets/logo.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "GitHub and GitLab repos are mirrors; the Forgejo instance is the main repo.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 6261,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 85,
    "authors_90d": 21,
    "authors_all": 229,
    "authors_by_quarter": {
     "2023-Q1": 9,
     "2023-Q2": 10,
     "2023-Q3": 13,
     "2023-Q4": 9,
     "2024-Q1": 14,
     "2024-Q2": 20,
     "2024-Q3": 14,
     "2024-Q4": 15,
     "2025-Q1": 13,
     "2025-Q2": 11,
     "2025-Q3": 15,
     "2025-Q4": 15,
     "2026-Q1": 42,
     "2026-Q2": 23,
     "2026-Q3": 31,
     "2026-Q4": 12
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 128,
    "commits_365d": 2087,
    "commits_90d": 440,
    "commits_all": 7061,
    "first_commit": "2020-02-15T21:42:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0025,
     "CSS": 0.0088,
     "Dockerfile": 0.0038,
     "Jinja": 0.0143,
     "MDX": 0.042,
     "Nix": 0.0043,
     "Rust": 0.9198,
     "Shell": 0.0016,
     "TypeScript": 0.0017
    },
    "last_commit": "2026-11-05T04:27:50+00:00",
    "last_tag": "v26.9.1",
    "last_tag_date": "2026-09-28T02:04:54+01:00",
    "last_tag_repo": "https://gitlab.com/continuwuity/continuwuity",
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 654,
     "CSS": 2265,
     "Dockerfile": 990,
     "Gherkin Specification": 3,
     "JavaScript": 15,
     "Jinja": 3687,
     "MDX": 10833,
     "Nix": 1101,
     "Python": 93,
     "Rust": 237384,
     "Shell": 423,
     "Systemd": 186,
     "TypeScript": 441,
     "TypeScript Typings": 3
    },
    "loc_total": 258078,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/db86d42801695fe822f2ab25dbab420394849065/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 87,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     28,
     7,
     26,
     2,
     45,
     11,
     32,
     40,
     43,
     37,
     12,
     3,
     14,
     27,
     92,
     48,
     38,
     22,
     35,
     53,
     42,
     55,
     66,
     13,
     166,
     40,
     21,
     14,
     58,
     9,
     0,
     19,
     102,
     123,
     62,
     106,
     27,
     38,
     62,
     21,
     63,
     35,
     17,
     3,
     34,
     9,
     57,
     90,
     35,
     10,
     42,
     33
    ]
   }
  },
  {
   "slug": "daydream",
   "name": "Daydream",
   "category": "client",
   "kind": "web",
   "homepage": "https://github.com/daydream-mx/Daydream",
   "summary": "An experimental Matrix web client in Rust compiled to WebAssembly, using an early matrix-rust-sdk.",
   "repos": [
    {
     "url": "https://github.com/daydream-mx/Daydream",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv: room \"[Dead] Daydream Matrix Client\" (Chat Clients)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/daydream-mx/Daydream/blob/85c2cf395906e944174eb8e7acac1afe6426fefa/README.md",
     "note": null
    }
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk 0.1 (fork)",
     "how": "code",
     "source": "https://github.com/daydream-mx/Daydream/blob/85c2cf395906e944174eb8e7acac1afe6426fefa/Cargo.toml"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days, so no attributed commits; no agent files in the tree."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "daydream.webp",
    "source": "https://avatars.githubusercontent.com/u/67391358?v=4&s=256",
    "licence": null,
    "note": "the daydream-mx organisation's avatar on GitHub",
    "checked": "2026-11-05"
   },
   "notes": "The community room is titled \"[Dead]\" and says the hosted app ran only until 2021-06-15. Last commit 2020-08-22. Licence file is AGPL-3.0 (version suffix not stated in README).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 204,
    "first_commit": "2020-05-25T14:26:58+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0397,
     "HTML": 0.0101,
     "JavaScript": 0.0698,
     "Rust": 0.6308,
     "Sass": 0.2497
    },
    "last_commit": "2020-08-22T15:51:50+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 146,
     "HTML": 37,
     "JavaScript": 257,
     "Rust": 2322,
     "Sass": 919
    },
    "loc_total": 3681,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "dendrite",
   "name": "Dendrite",
   "category": "server",
   "kind": "homeserver",
   "homepage": "https://element-hq.github.io/dendrite/",
   "summary": "A second-generation Matrix homeserver written in Go, maintained by Element.",
   "repos": [
    {
     "url": "https://github.com/element-hq/dendrite",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml",
     "sources/community-space.tsv (Servers/Hosting)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later OR LicenseRef-Element-Commercial",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "language": "Go",
    "database": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/.github/ISSUE_TEMPLATE/BUG_REPORT.md#L20",
     "note": "PostgreSQL, SQLite"
    },
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/clientapi/routing/routing.go#L133",
     "versions": [
      "r0.0.1",
      "r0.1.0",
      "r0.2.0",
      "r0.3.0",
      "r0.4.0",
      "r0.5.0",
      "r0.6.1",
      "v1.0",
      "v1.1",
      "v1.2"
     ]
    },
    "appservices": {
     "value": "yes",
     "how": "claimed"
    },
    "admin_api": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/docs/administration/4_adminapi.md"
    },
    "oidc_delegation": {
     "value": "not-found",
     "note": "no reference to MSC3861/2964/2965/2967 found in the code"
    },
    "native_sliding_sync": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/clientapi/routing/routing.go#L49",
     "note": "only an MSC3575 sliding sync proxy reference found (e.g. the .well-known proxy field), no native MSC4186"
    },
    "workers_scaling": {
     "value": "partial",
     "how": "claimed",
     "note": "polylith mode was removed; runs as a monolith"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/clientapi/routing/routing.go#L89",
     "note": "MSC3916: stable"
    },
    "msc": [
     {
      "msc": 1234,
      "state": "experimental",
      "flag": "msc12345",
      "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/setup/config/config_mscs.go#L23",
      "note": "behind a config option"
     },
     {
      "msc": 1772,
      "state": "stable",
      "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/roomserver/internal/query/query_room_hierarchy.go#L487",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2285,
      "state": "stable",
      "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/clientapi/routing/routing.go#L88",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2444,
      "state": "experimental",
      "flag": "mscs.mscs: [msc2444]",
      "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/setup/mscs/mscs.go#L38",
      "note": "opt-in via the mscs config list"
     },
     {
      "msc": 2625,
      "state": "unstable",
      "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/are-we-synapse-yet.list#L914",
      "note": "unstable prefix in code"
     },
     {
      "msc": 2753,
      "state": "experimental",
      "flag": "mscs.mscs: [msc2753]",
      "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/setup/mscs/mscs.go#L39",
      "note": "opt-in via the mscs config list"
     },
     {
      "msc": 2836,
      "state": "experimental",
      "flag": "mscs.mscs: [msc2836]",
      "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/setup/mscs/mscs.go#L36",
      "note": "opt-in via the mscs config list"
     },
     {
      "msc": 2946,
      "state": "stable",
      "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/roomserver/internal/query/query_room_hierarchy.go#L503",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3575,
      "state": "unstable",
      "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/clientapi/routing/routing.go#L49",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3916,
      "state": "stable",
      "source": "https://github.com/element-hq/dendrite/blob/08cac1ccf0a45471132ad24a29e3ec15643675fa/clientapi/routing/routing.go#L89",
      "note": "advertised in unstable_features"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md#L26",
     "note": "Element-wide policy in element-meta CONTRIBUTING.md (added 2026-11-02), which says it applies to all element-hq repositories; the repo's own CONTRIBUTING does not link it yet. Commit messages may be AI-drafted if reviewed; reviews may use AI tools, but only a human approves or closes a PR."
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "08cac1ccf0a45471132ad24a29e3ec15643675fa"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "The older matrix-org/dendrite repo is archived; development moved to element-hq/dendrite. Few commits in the last year.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 5,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 0,
    "authors_all": 197,
    "authors_by_quarter": {
     "2023-Q1": 17,
     "2023-Q2": 14,
     "2023-Q3": 10,
     "2023-Q4": 11,
     "2024-Q1": 9,
     "2024-Q2": 3,
     "2024-Q3": 12,
     "2024-Q4": 4,
     "2025-Q1": 4,
     "2025-Q2": 4,
     "2025-Q3": 5,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 5,
    "commits_90d": 0,
    "commits_all": 2972,
    "first_commit": "2017-01-20T18:25:51+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.994,
     "JavaScript": 0.0016,
     "Python": 0.0017,
     "Shell": 0.001
    },
    "last_commit": "2026-05-20T15:41:45+00:00",
    "last_tag": "v0.15.2",
    "last_tag_date": "2025-08-15T11:44:44+01:00",
    "last_tag_repo": "https://github.com/element-hq/dendrite",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 53,
     "Dockerfile": 30,
     "Gemfile": 2,
     "Go": 112144,
     "HTML": 41,
     "JavaScript": 185,
     "Python": 191,
     "Sass": 3,
     "Shell": 113,
     "Smarty Template": 61
    },
    "loc_total": 112823,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     1,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "dendron",
   "name": "Dendron",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "Discontinued in favour of Dendrite (\"Dendron, done right\").",
   "repos": [
    {
     "url": "https://github.com/matrix-org/dendron",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Go",
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "no commits since 2018-02-27; not cloned"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "matrix.org labels it \"Obsolete\". Last push 2018-02-27 (GitHub API); not cloned or MSC-scanned.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 94,
    "first_commit": "2016-01-15T16:18:23+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.004,
     "Go": 0.8504,
     "Python": 0.0809,
     "Shell": 0.0647
    },
    "last_commit": "2018-02-27T14:22:41+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": null,
    "loc": {
     "BASH": 4,
     "Go": 841,
     "Python": 80,
     "Shell": 64
    },
    "loc_total": 989,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "dial-phone",
   "name": "dial-phone",
   "category": "sdk",
   "kind": "Kotlin",
   "homepage": "https://github.com/mtorials/dial-phone",
   "summary": "A Matrix client-server SDK in Kotlin.",
   "repos": [
    {
     "url": "https://github.com/mtorials/dial-phone",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 1f78fed1af12"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"dial-phone\" (Obsolete, Kotlin, maintainer: mtorials). Last non-bot commit 2022-05-24, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 1f78fed1af12 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-dimension",
   "name": "Dimension",
   "category": "tool",
   "kind": "integration-manager",
   "homepage": "https://dimension.t2bot.io",
   "summary": "An open-source integration manager (widgets, bots, bridges, sticker packs) for Element, an alternative to Element's own; archived.",
   "repos": [
    {
     "url": "https://github.com/turt2live/matrix-dimension",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "integration manager (widgets, bots, bridges, stickers)",
     "how": "claimed",
     "source": "https://github.com/turt2live/matrix-dimension/blob/2f9f848fb082af2eb717c7efe52807d99acbd51a/README.md"
    },
    "framework": {
     "value": "matrix-bot-sdk",
     "how": "code",
     "source": "https://github.com/turt2live/matrix-dimension/blob/2f9f848fb082af2eb717c7efe52807d99acbd51a/package.json"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/turt2live/matrix-dimension/blob/2f9f848fb082af2eb717c7efe52807d99acbd51a/README.md",
     "note": "not applicable"
    },
    "hosting": {
     "value": "both",
     "how": "claimed",
     "source": "https://github.com/turt2live/matrix-dimension/blob/2f9f848fb082af2eb717c7efe52807d99acbd51a/README.md",
     "note": "dimension.t2bot.io hosted instance; self-hosting \"no longer recommended\""
    },
    "config": {
     "value": "config file and admin web UI",
     "how": "claimed",
     "source": "https://github.com/turt2live/matrix-dimension/blob/2f9f848fb082af2eb717c7efe52807d99acbd51a/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/turt2live/matrix-dimension/blob/2f9f848fb082af2eb717c7efe52807d99acbd51a/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2023-08-10), counted at 2f9f848fb082"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "matrix-dimension.webp",
    "source": "https://github.com/turt2live/matrix-dimension/blob/2f9f848fb082af2eb717c7efe52807d99acbd51a/web/assets/img/logo/favicon/apple-touch-icon.png",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "README: \"Dimension is no longer formally maintained.\" Archived on GitHub; last commit 2023-08-10. Licence from the LICENSE file (GPL v3; -only vs -or-later not checked).",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 26,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 600,
    "first_commit": "2017-05-25T21:41:56+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0012,
     "HTML": 0.1153,
     "JavaScript": 0.0043,
     "Sass": 0.0622,
     "TypeScript": 0.8158
    },
    "last_commit": "2023-08-10T16:05:58+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "GPL-3.0",
    "loc": {
     "Dockerfile": 28,
     "HTML": 2622,
     "JavaScript": 97,
     "Sass": 1413,
     "Shell": 8,
     "Systemd": 19,
     "TypeScript": 18545
    },
    "loc_total": 22732,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "ditto",
   "name": "Ditto",
   "category": "client",
   "kind": "mobile",
   "homepage": "https://www.dittochat.org",
   "summary": "A React Native Matrix client for iOS and Android; development on hiatus since 2021.",
   "repos": [
    {
     "url": "https://gitlab.com/ditto-chat/ditto",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv: room \"Ditto\" (Chat Clients), topic \"development on hiatus\"",
     "https://github.com/jryans/awesome-matrix (Clients)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "android",
    "ios"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "react-native",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "google-play",
       "url": "https://play.google.com/store/apps/details?id=chat.ditto.and"
      },
      {
       "name": "apk",
       "url": "https://gitlab.com/ditto-chat/ditto-mobile/raw/dev/android/app/release/ditto.apk"
      }
     ],
     "source": "https://gitlab.com/ditto-chat/ditto/-/blob/39b67697cab948c223a0ff06b0d6ab4154f33431/README.md"
    },
    {
     "os": "ios",
     "tech": "react-native",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "testflight",
       "url": "https://testflight.apple.com/join/9M0ERlKd"
      }
     ],
     "source": "https://gitlab.com/ditto-chat/ditto/-/blob/39b67697cab948c223a0ff06b0d6ab4154f33431/README.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "@rn-matrix/core (wraps matrix-js-sdk)",
     "how": "code",
     "source": "https://gitlab.com/ditto-chat/ditto/-/blob/39b67697cab948c223a0ff06b0d6ab4154f33431/package.json"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days, so no attributed commits; no agent files in the tree."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "ditto.webp",
    "source": "https://gitlab.com/ditto-chat/ditto/-/blob/39b67697cab948c223a0ff06b0d6ab4154f33431/ios/ditto/Images.xcassets/AppIcon.appiconset/app-icon-1024.png",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Last commit 2021-08-25. Store links are from the README and were not re-checked; they may be gone.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 83,
    "first_commit": "2020-08-26T19:54:54+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0115,
     "Bazel": 0.0025,
     "Gradle": 0.0357,
     "HTML": 0.0025,
     "Java": 0.0196,
     "JavaScript": 0.0821,
     "Objective C": 0.0199,
     "Prolog": 0.0013,
     "Shell": 0.0216,
     "TypeScript": 0.8018
    },
    "last_commit": "2021-08-25T20:51:24+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": null,
    "loc": {
     "Batch": 78,
     "Bazel": 17,
     "C Header": 6,
     "Gemfile": 2,
     "Gradle": 242,
     "HTML": 17,
     "Java": 133,
     "JavaScript": 556,
     "Objective C": 135,
     "Prolog": 9,
     "Shell": 146,
     "TypeScript": 5430,
     "TypeScript Typings": 1
    },
    "loc_total": 6772,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Firebase Analytics",
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "draupnir",
   "name": "Draupnir",
   "category": "tool",
   "kind": "moderation",
   "homepage": "https://the-draupnir-project.github.io/draupnir-documentation/",
   "summary": "A moderation and community-management bot that applies shared policy lists across rooms, with protections and prompts instead of typed commands; a continuation of Mjolnir.",
   "repos": [
    {
     "url": "https://github.com/the-draupnir-project/Draupnir",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AFL-3.0",
   "fork_of": "mjolnir",
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://opencollective.com/draupnir",
    "https://nlnet.nl/project/Draupnir/"
   ],
   "features": {
    "purpose": {
     "value": "moderation (policy lists, bans, protections)",
     "how": "claimed",
     "source": "https://github.com/the-draupnir-project/Draupnir/blob/d57af49a6a971f1d112106cfe1d5be5cd3aa1c76/README.md"
    },
    "framework": {
     "value": "matrix-bot-sdk and matrix-protection-suite",
     "how": "code",
     "source": "https://github.com/the-draupnir-project/Draupnir/blob/d57af49a6a971f1d112106cfe1d5be5cd3aa1c76/apps/draupnir/package.json",
     "note": "Element's fork @vector-im/matrix-bot-sdk"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/the-draupnir-project/Draupnir/blob/d57af49a6a971f1d112106cfe1d5be5cd3aa1c76/apps/draupnir/package.json",
     "note": "https://github.com/the-draupnir-project/Draupnir/blob/d57af49a6a971f1d112106cfe1d5be5cd3aa1c76/matrix-org/matrix-sdk-crypto-nodejs dependency"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/the-draupnir-project/Draupnir/blob/d57af49a6a971f1d112106cfe1d5be5cd3aa1c76/README.md",
     "note": "bot or appservice mode; Docker image gnuxie/draupnir"
    },
    "config": {
     "value": "config file and !draupnir commands / prompts",
     "how": "claimed",
     "source": "https://github.com/the-draupnir-project/Draupnir/blob/d57af49a6a971f1d112106cfe1d5be5cd3aa1c76/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/the-draupnir-project/Draupnir/blob/d57af49a6a971f1d112106cfe1d5be5cd3aa1c76/apps/draupnir/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 74 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at d57af49a6a97"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    },
    "funder_policy": [
     {
      "funder": "NLnet Foundation (NGI Zero Core fund)",
      "grant": "https://nlnet.nl/project/Draupnir/",
      "policy": "https://nlnet.nl/foundation/policies/generativeAI/1.1/",
      "value": "restricted",
      "grant_start": "2024-04",
      "grant_source": "https://github.com/the-draupnir-project/Draupnir/blob/d57af49a6a971f1d112106cfe1d5be5cd3aa1c76/README.md",
      "policy_version": "1.1 (from 2026-01-26) under the transitional arrangement; 2.0 (from 2026-10-20, read-only use only) otherwise",
      "quote": "In any case, outcomes purely generated by AI are not allowed to be submitted as work eligible for payment (as part) of the grant. … For any substantive use of GenAI that materially affects outputs, public disclosure is required, making it available to both users and contributors.",
      "scope": "work delivered within the NLnet-funded grant, not the project as a whole or outside contributors",
      "transition": "NLnet FAQ: \"There are two general exceptions: for projects within NGI Zero programmes, because these were already in flight during the publication of the version 2.0 of the policy.\" The grant is an NGI Zero Core grant running since 2024-04, so 1.1 can still apply; the FAQ names NGI Zero Commons Fund, NGI Taler and Fediversity as examples and does not name NGI Zero Core. Under 2.0 the value would be banned (\"It is not allowed to use generative AI for producing artefacts of any kind\"). https://nlnet.nl/foundation/policies/generativeAI/faq/",
      "transparency": "The policy asks grantees to summarise their stance on GenAI in the README and website; no such statement found in the README at the checked commit.",
      "checked": "2026-11-05"
     }
    ]
   },
   "icon": {
    "file": "draupnir.webp",
    "source": "https://avatars.githubusercontent.com/u/144344559?v=4&s=256",
    "licence": null,
    "note": "the the-draupnir-project organisation's avatar on GitHub",
    "checked": "2026-11-05"
   },
   "notes": "Licence: the code is AFL-3.0 per matrix.org, with other files under the licences in LICENSES/ (REUSE layout; the README is CC-BY-SA-4.0). Policy on AI: an open issue by the lead maintainer (https://github.com/the-draupnir-project/Draupnir/issues/990, \"Formalise LLM Policy: Liberation for Synthetics\", 2025-10-29) discusses LLMs, but no contribution rule had been adopted in CONTRIBUTING.md at the checked commit, so the policy reads none-found. Funding: NLnet NGI Zero Core grant (from 2024-04) per the README and https://nlnet.nl/project/Draupnir/; NLnet's own GenAI policy for funded work is recorded under ai.funder_policy, separately from the project's own policy. No AI-attributed commits were found in the last 365 days.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 74,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 2,
    "authors_all": 41,
    "authors_by_quarter": {
     "2023-Q1": 7,
     "2023-Q2": 2,
     "2023-Q3": 5,
     "2023-Q4": 2,
     "2024-Q1": 4,
     "2024-Q2": 4,
     "2024-Q3": 4,
     "2024-Q4": 4,
     "2025-Q1": 8,
     "2025-Q2": 6,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 2,
     "2026-Q2": 2,
     "2026-Q3": 3,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 1,
    "commits_365d": 74,
    "commits_90d": 10,
    "commits_all": 1249,
    "first_commit": "2019-09-26T01:36:12+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 0.0046,
     "TypeScript": 0.9942
    },
    "last_commit": "2026-10-14T17:21:35+00:00",
    "last_tag": "v3.2.0",
    "last_tag_date": "2026-10-14T19:21:35+02:00",
    "last_tag_repo": "https://github.com/the-draupnir-project/Draupnir",
    "licence_detected": null,
    "loc": {
     "Dockerfile": 28,
     "JSON5": 18,
     "JavaScript": 252,
     "SQL": 12,
     "Shell": 10,
     "TypeScript": 55001
    },
    "loc_total": 55321,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 5,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     1,
     1,
     2,
     0,
     0,
     3,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     4,
     6,
     4,
     5,
     1,
     6,
     2,
     5,
     4,
     10,
     4,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     4,
     4,
     1,
     0,
     0,
     1,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "dzaima-chat",
   "name": "dzaima/chat",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://github.com/dzaima/chat",
   "summary": "A keyboard-oriented Java desktop chat client for Matrix with its own UI toolkit.",
   "repos": [
    {
     "url": "https://github.com/dzaima/chat",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "linux",
    "windows",
    "macos"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "other",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/dzaima/chat/blob/356c530f2d4a6e6f5243cdb80457613fdb2d2b9c/README.md",
     "note": "Java 11+, built from source with build.py."
    }
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own (Java)",
     "how": "code",
     "source": "https://github.com/dzaima/chat/blob/356c530f2d4a6e6f5243cdb80457613fdb2d2b9c/README.md"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/dzaima/chat/blob/356c530f2d4a6e6f5243cdb80457613fdb2d2b9c/README.md",
     "note": "Several accounts in accounts/profile.json."
    },
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/dzaima/chat/blob/356c530f2d4a6e6f5243cdb80457613fdb2d2b9c/README.md"
    },
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits among 30 commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Our reading: beta, one maintainer, built from source only. Last commit 2026-09-25.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 30,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 30,
    "commits_90d": 5,
    "commits_all": 509,
    "first_commit": "2022-02-20T21:57:58+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Java": 0.9984,
     "Python": 0.0016
    },
    "last_commit": "2026-09-24T22:13:24+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "MIT",
    "loc": {
     "Java": 8559,
     "Python": 14
    },
    "loc_total": 8573,
    "main_language": "Java",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     11,
     0,
     8,
     0,
     0,
     0,
     1,
     0,
     0,
     1,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     3,
     1,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "echelon",
   "name": "Echelon",
   "category": "client",
   "kind": "desktop, mobile",
   "homepage": "https://git.flaxeneel2.net/streigen/echelon",
   "summary": "A cross-platform Matrix client for gaming communities, in Rust with Slint on the matrix-rust-sdk.",
   "repos": [
    {
     "url": "https://git.flaxeneel2.net/streigen/echelon",
     "forge": "other",
     "role": "main"
    },
    {
     "url": "https://github.com/streigen/echelon",
     "forge": "github",
     "role": "other"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub repository search \"matrix client\" (pushed since 2025-11), 2026-11-05"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "linux",
    "windows",
    "macos",
    "android",
    "ios"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/streigen/echelon/blob/86b047bddee54e103701337a49c5a26325b2fccf/README.md",
     "note": "Slint UI; Android and iOS build targets listed."
    }
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk 0.18.0",
     "how": "code",
     "source": "https://github.com/streigen/echelon/blob/86b047bddee54e103701337a49c5a26325b2fccf/Cargo.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/streigen/echelon/blob/86b047bddee54e103701337a49c5a26325b2fccf/Cargo.toml",
     "note": "e2e-encryption feature."
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits among 170 commits since 2026-06-21; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Pull requests are closed for now (README). Main git is self-hosted; GitHub is a push mirror (pins point to the mirror).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 170,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 3,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 2,
     "2026-Q3": 3,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 24,
    "commits_365d": 170,
    "commits_90d": 104,
    "commits_all": 170,
    "first_commit": "2026-06-20T23:03:01+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0062,
     "Kotlin": 0.0056,
     "Nix": 0.0168,
     "Rust": 0.7918,
     "Shell": 0.0107,
     "Slint": 0.1689
    },
    "last_commit": "2026-10-13T19:48:02+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "MIT",
    "loc": {
     "Batch": 73,
     "Kotlin": 66,
     "Nix": 199,
     "Rust": 9356,
     "Shell": 126,
     "Slint": 1996
    },
    "loc_total": 11816,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     13,
     10,
     13,
     4,
     10,
     15,
     13,
     33,
     14,
     10,
     0,
     0,
     5,
     0,
     12,
     17,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "element-call",
   "name": "Element Call",
   "category": "client",
   "kind": "web (video calls)",
   "homepage": "https://call.element.io",
   "summary": "Element's MatrixRTC video-conferencing app (LiveKit backend), usable standalone in the browser and embedded as a widget in Element Web and Element X.",
   "repos": [
    {
     "url": "https://github.com/element-hq/element-call",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv / #webrtc:matrix.org (README badge)"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "web",
       "url": "https://call.element.io"
      }
     ],
     "source": "https://github.com/element-hq/element-call/blob/1e17a6411cb625b369b9d88fc300ce46329ae46d/README.md",
     "note": "Also shipped embedded inside Element Web and Element X; no separate mobile app."
    }
   ],
   "licence": "AGPL-3.0-only OR LicenseRef-Element-Commercial",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk (pinned commit) + livekit-client",
     "how": "code",
     "source": "https://github.com/element-hq/element-call/blob/1e17a6411cb625b369b9d88fc300ce46329ae46d/package.json"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/element-hq/element-call/blob/1e17a6411cb625b369b9d88fc300ce46329ae46d/README.md",
     "note": "Encrypted MatrixRTC media."
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/element-hq/element-call/blob/1e17a6411cb625b369b9d88fc300ce46329ae46d/README.md",
     "note": "MatrixRTC (MSC4143) with LiveKit (MSC4195)."
    },
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-call/blob/1e17a6411cb625b369b9d88fc300ce46329ae46d/localazy.json",
     "note": "Localazy; 26 locale folders."
    },
    "telemetry": {
     "value": "opt-in",
     "how": "code",
     "source": "https://github.com/element-hq/element-call/blob/1e17a6411cb625b369b9d88fc300ce46329ae46d/src/analytics/PosthogAnalytics.ts",
     "note": "PostHog only when the user activates analytics; Sentry (@sentry/react) for errors when configured."
    },
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/element-hq/element-call/blob/1e17a6411cb625b369b9d88fc300ce46329ae46d/README.md",
     "note": "pnpm/Vite app with several build targets (standalone, embedded, SDK); AGPL-3.0 or commercial, CLA."
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "Contributions are judged on their content, not on how they were produced. AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "46 of about 1,280 non-bot commits in the last 365 days (about 3.6 %) carry a Claude co-author trailer.",
      "AGENTS.md at the repo root.",
      "AI review workflow .github/workflows/claude.yaml (anthropics/claude-code-action, run when a PR gets the Claude-Review label)."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "Background blur uses on-device MediaPipe selfie segmentation (machine learning, not generative AI).",
     "source": "https://github.com/element-hq/element-call/blob/1e17a6411cb625b369b9d88fc300ce46329ae46d/src/mediapipe/imageSegmenter/README.md"
    }
   },
   "icon": {
    "file": "element-call.svg",
    "source": "https://github.com/element-hq/element-call/blob/1e17a6411cb625b369b9d88fc300ce46329ae46d/src/icons/LogoMark.svg",
    "licence": "AGPL-3.0-only OR LicenseRef-Element-Commercial",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Not on the matrix.org clients list (it is a calling app). Its own CONTRIBUTING.md: \"Take responsibility for AI-generated code.\" Element's organisation-wide AI policy (element-meta PR 3393) applies.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 46,
     "commits_365d": 1284,
     "share_365d": 0.0358,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 46
     },
     "workflows": 1
    },
    "archived": false,
    "authors_365d": 20,
    "authors_90d": 11,
    "authors_all": 57,
    "authors_by_quarter": {
     "2023-Q1": 8,
     "2023-Q2": 8,
     "2023-Q3": 9,
     "2023-Q4": 7,
     "2024-Q1": 6,
     "2024-Q2": 9,
     "2024-Q3": 10,
     "2024-Q4": 9,
     "2025-Q1": 11,
     "2025-Q2": 11,
     "2025-Q3": 10,
     "2025-Q4": 8,
     "2026-Q1": 8,
     "2026-Q2": 11,
     "2026-Q3": 10,
     "2026-Q4": 7
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 170,
    "commits_365d": 1284,
    "commits_90d": 353,
    "commits_all": 4399,
    "first_commit": "2021-07-16T21:22:03+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0012,
     "CSS": 0.0506,
     "HTML": 0.0033,
     "JavaScript": 0.0065,
     "Shell": 0.0041,
     "TypeScript": 0.9292,
     "TypeScript Typings": 0.0022
    },
    "last_commit": "2026-11-04T19:17:22+00:00",
    "last_tag": "v0.28.1",
    "last_tag_date": "2026-10-30T19:33:36+01:00",
    "last_tag_repo": "https://github.com/element-hq/element-call",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "BASH": 37,
     "Batch": 73,
     "CSS": 2978,
     "Dockerfile": 7,
     "Gradle": 16,
     "HTML": 192,
     "JavaScript": 384,
     "Kotlin": 53,
     "MDX": 29,
     "Python": 5,
     "Shell": 244,
     "Swift": 19,
     "TypeScript": 54661,
     "TypeScript Typings": 128
    },
    "loc_total": 58826,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 21,
    "telemetry_sdks": [
     "PostHog",
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     23,
     25,
     24,
     55,
     25,
     33,
     5,
     5,
     29,
     52,
     35,
     23,
     15,
     11,
     6,
     7,
     20,
     29,
     14,
     14,
     13,
     28,
     65,
     61,
     34,
     19,
     38,
     45,
     2,
     23,
     21,
     24,
     26,
     18,
     18,
     12,
     3,
     10,
     17,
     16,
     13,
     11,
     29,
     60,
     6,
     12,
     22,
     16,
     110,
     5,
     25,
     28
    ]
   }
  },
  {
   "slug": "element-classic",
   "name": "Element Classic (Android, iOS)",
   "category": "client",
   "kind": "mobile",
   "homepage": "https://element.io",
   "summary": "Element's previous-generation mobile apps; still supported with security updates, no new features.",
   "repos": [
    {
     "url": "https://github.com/element-hq/element-android",
     "forge": "github",
     "role": "android"
    },
    {
     "url": "https://github.com/element-hq/element-ios",
     "forge": "github",
     "role": "ios"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/element-classic/",
    "other": [
     "sources/community-space.tsv: rooms \"Element Android\", \"Element iOS (OLD)\""
    ]
   },
   "maturity": "stable",
   "platforms": [
    "android",
    "ios"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "native",
     "min_os": "5.0",
     "status": "stable",
     "stores": [
      {
       "name": "google-play",
       "url": "https://play.google.com/store/apps/details?id=im.vector.app"
      },
      {
       "name": "f-droid",
       "url": "https://f-droid.org/packages/im.vector.app"
      }
     ],
     "source": "https://github.com/element-hq/element-android/blob/08dc499968c2a7f8b6e8a25a0a834a8a783376e7/README.md"
    },
    {
     "os": "ios",
     "tech": "native",
     "min_os": "15.1",
     "status": "stable",
     "stores": [
      {
       "name": "app-store",
       "url": "https://apps.apple.com/app/id1083446067"
      }
     ],
     "source": "https://github.com/element-hq/element-ios/blob/7ba8beb088978786a6fc0aa3c9324a33ee77c38a/Podfile"
    }
   ],
   "licence": "AGPL-3.0-only OR LicenseRef-Element-Commercial",
   "fork_of": null,
   "distribution": [
    "google-play",
    "f-droid",
    "app-store"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-android-sdk2 (in repo) / MatrixSDK (matrix-ios-sdk)",
     "how": "code",
     "source": "https://github.com/element-hq/element-ios/blob/7ba8beb088978786a6fc0aa3c9324a33ee77c38a/README.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md"
    },
    "cross_signing": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md"
    },
    "key_backup": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md"
    },
    "sliding_sync": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md",
     "note": "matrix.org: unknown."
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md",
     "note": "matrix.org: unknown."
    },
    "multi_account": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md"
    },
    "threads": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md"
    },
    "spaces": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md"
    },
    "group_calls": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md",
     "note": "Jitsi conference calls (voip_jitsi supported); MatrixRTC unknown."
    },
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md"
    },
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-classic.md"
    },
    "telemetry": {
     "value": "opt-in",
     "how": "code",
     "source": "https://github.com/element-hq/element-android/blob/08dc499968c2a7f8b6e8a25a0a834a8a783376e7/vector/build.gradle",
     "note": "PostHog and Sentry dependencies; analytics are opt-in in Element apps (consent screen)."
    },
    "default_homeserver": {
     "value": "not-found",
     "how": null,
     "source": null
    },
    "fork_friendliness": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/element-hq/element-android/blob/08dc499968c2a7f8b6e8a25a0a834a8a783376e7/README.md",
     "note": "Maintenance mode: \"no new features or usability enhancements are made\"; SchildiChat Android (classic) was built on it."
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "Contributions are judged on their content, not on how they were produced. AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "element-ios: 3 of 108 non-bot commits in the last 365 days (about 2.8 %) carry a Claude co-author trailer.",
      "element-android: none of 91 non-bot commits attributed.",
      "No agent files in either tree."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "element-classic.webp",
    "source": "https://github.com/element-hq/element-android/blob/08dc499968c2a7f8b6e8a25a0a834a8a783376e7/fastlane/metadata/android/en-US/images/icon.png",
    "licence": "AGPL-3.0-only OR LicenseRef-Element-Commercial",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Element's organisation-wide AI policy (element-meta CONTRIBUTING.md, merged 2026-11-02 in https://github.com/element-hq/element-meta/pull/3393) applies to all element-hq repositories and to matrix-org repositories where Element is the core contributor. Both READMEs: \"This client is still supported and receives security updates but no new features or usability enhancements are made. It is recommended to use Element X\". matrix.org maturity: Stable.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 3,
     "commits_365d": 160,
     "share_365d": 0.0187,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 3
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 10,
    "authors_90d": 6,
    "authors_all": 234,
    "authors_by_quarter": {
     "2023-Q1": 29,
     "2023-Q2": 32,
     "2023-Q3": 12,
     "2023-Q4": 15,
     "2024-Q1": 10,
     "2024-Q2": 11,
     "2024-Q3": 12,
     "2024-Q4": 10,
     "2025-Q1": 6,
     "2025-Q2": 6,
     "2025-Q3": 10,
     "2025-Q4": 5,
     "2026-Q1": 7,
     "2026-Q2": 5,
     "2026-Q3": 7,
     "2026-Q4": 0
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 160,
    "commits_90d": 35,
    "commits_all": 27385,
    "first_commit": "2014-10-02T15:02:47+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Gradle": 0.0084,
     "HTML": 0.0024,
     "Java": 0.0201,
     "Kotlin": 0.9613,
     "Python": 0.0018,
     "Shell": 0.0044
    },
    "last_commit": "2026-09-25T11:56:25+00:00",
    "last_tag": "v1.6.66",
    "last_tag_date": "2026-09-25T13:55:00+02:00",
    "last_tag_repo": "https://github.com/element-hq/element-android",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 73,
     "C Header": 5335,
     "Gemfile": 11,
     "Gradle": 2061,
     "HTML": 2355,
     "Java": 4949,
     "JavaScript": 175,
     "Jinja": 48,
     "Kotlin": 236990,
     "Objective C": 89803,
     "Objective C++": 1,
     "Prolog": 189,
     "Python": 446,
     "Shell": 1406,
     "Swift": 118030,
     "Xcode Config": 216
    },
    "loc_total": 462088,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/element-hq/element-android/blob/08dc499968c2a7f8b6e8a25a0a834a8a783376e7/SECURITY.md",
    "stars": null,
    "status": "slowing",
    "tags_365d": 18,
    "telemetry_sdks": [
     "Firebase Analytics",
     "PostHog",
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     1,
     1,
     0,
     0,
     5,
     3,
     5,
     0,
     10,
     0,
     2,
     4,
     11,
     2,
     9,
     2,
     6,
     6,
     0,
     7,
     9,
     0,
     2,
     0,
     7,
     0,
     5,
     0,
     4,
     0,
     1,
     0,
     16,
     0,
     0,
     0,
     7,
     0,
     0,
     6,
     1,
     0,
     0,
     2,
     6,
     8,
     12,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "element-nextcloud",
   "name": "Element for Nextcloud",
   "category": "client",
   "kind": "web (Nextcloud app)",
   "homepage": "https://apps.nextcloud.com/apps/riotchat",
   "summary": "A Nextcloud app that bundles Element Web so it can be installed and served from a Nextcloud instance.",
   "repos": [
    {
     "url": "https://github.com/gary-kim/riotchat",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv: room \"Element for Nextcloud: General\""
    ]
   },
   "maturity": "stable",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "nextcloud-apps",
       "url": "https://apps.nextcloud.com/apps/riotchat"
      }
     ],
     "source": "https://github.com/gary-kim/riotchat/blob/5f11e302878bc00eb8fe857b9c520115544669a2/README.md"
    }
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": "element-web",
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk (bundled Element Web 1.12.33)",
     "how": "code",
     "source": "https://github.com/gary-kim/riotchat/blob/5f11e302878bc00eb8fe857b9c520115544669a2/README.md"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits among 14 non-bot commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "element-nextcloud.svg",
    "source": "https://github.com/gary-kim/riotchat/blob/5f11e302878bc00eb8fe857b9c520115544669a2/img/app-dark.svg",
    "licence": "AGPL-3.0-or-later",
    "note": "the app's own Nextcloud app icon (dark variant of img/app.svg, named in appinfo/info.xml)",
    "checked": "2026-11-05",
    "backing": "light"
   },
   "notes": "A packaging of Element Web, not a fork with its own features; it follows Element Web releases (\"Update Element Web to v1.12.33\", 2026-11-01). Features: see element-web. Not affiliated with Element.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 14,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 2,
    "authors_all": 14,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 2,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 2,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 2,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 6,
    "commits_365d": 14,
    "commits_90d": 6,
    "commits_all": 342,
    "first_commit": "2020-04-27T16:56:31+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0015,
     "JavaScript": 0.6991,
     "Makefile": 0.0137,
     "PHP": 0.1622,
     "Shell": 0.0048,
     "Vue": 0.1187
    },
    "last_commit": "2026-11-02T04:06:56+00:00",
    "last_tag": "v0.21.0",
    "last_tag_date": "2026-08-02T12:23:25-04:00",
    "last_tag_repo": "https://github.com/gary-kim/riotchat",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 4,
     "JavaScript": 1884,
     "Makefile": 37,
     "PHP": 437,
     "Shell": 13,
     "Vue": 320
    },
    "loc_total": 2695,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 2,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     1,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     1,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     6
    ]
   }
  },
  {
   "slug": "ess-helm",
   "name": "Element Server Suite Community (ess-helm)",
   "category": "tool",
   "kind": "deployment",
   "homepage": "https://element.io/server-suite/community",
   "summary": "Element's Helm charts that deploy a Matrix stack (Synapse, Matrix Authentication Service, Element Web, Element Call backend, …) on Kubernetes.",
   "repos": [
    {
     "url": "https://github.com/element-hq/ess-helm",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/distributions/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "helm"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "deployment (Kubernetes Helm charts for a full Matrix stack)",
     "how": "claimed",
     "source": "https://github.com/element-hq/ess-helm/blob/2775f542938152267b0c133faeaffab8e993b5d1/README.md"
    },
    "framework": {
     "value": "Helm / Kubernetes",
     "how": "claimed",
     "source": "https://github.com/element-hq/ess-helm/blob/2775f542938152267b0c133faeaffab8e993b5d1/README.md"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/element-hq/ess-helm/blob/2775f542938152267b0c133faeaffab8e993b5d1/README.md",
     "note": "not applicable: deploys services"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/element-hq/ess-helm/blob/2775f542938152267b0c133faeaffab8e993b5d1/README.md",
     "note": "any Kubernetes distribution; the guide uses K3s. ESS Pro is Element's commercial edition"
    },
    "config": {
     "value": "Helm values files",
     "how": "claimed",
     "source": "https://github.com/element-hq/ess-helm/blob/2775f542938152267b0c133faeaffab8e993b5d1/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "claimed",
     "source": "https://github.com/element-hq/ess-helm/blob/2775f542938152267b0c133faeaffab8e993b5d1/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 1991 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 2775f5429381"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "ess-helm.webp",
    "source": "https://element.io/assets-32bb636196f91ed59d7a49190e26b42c/5ef25c0d30ee3108da4c25e9/5f0e1775cd41ebe29c04cac1_webclip.png",
    "licence": null,
    "note": "Element's logo; the Element Server Suite is an Element product",
    "checked": "2026-11-05"
   },
   "notes": "Found on matrix.org's distributions list. No CONTRIBUTING file at the checked commit.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1209,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 28,
    "authors_90d": 12,
    "authors_all": 37,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 4,
     "2025-Q1": 8,
     "2025-Q2": 8,
     "2025-Q3": 9,
     "2025-Q4": 11,
     "2026-Q1": 13,
     "2026-Q2": 11,
     "2026-Q3": 10,
     "2026-Q4": 10
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 194,
    "commits_365d": 1209,
    "commits_90d": 367,
    "commits_all": 2905,
    "first_commit": "2024-10-22T07:51:31+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.0944,
     "Jinja": 0.0459,
     "Python": 0.6618,
     "Shell": 0.0168,
     "Smarty Template": 0.1776,
     "Windows Resource-Definition Script": 0.0019
    },
    "last_commit": "2026-11-04T11:24:45+00:00",
    "last_tag": "26.11.0",
    "last_tag_date": "2026-11-03T10:26:11+01:00",
    "last_tag_repo": "https://github.com/element-hq/ess-helm",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 27,
     "Go": 2735,
     "HCL": 20,
     "Jinja": 1330,
     "Python": 19176,
     "Shell": 487,
     "Smarty Template": 5145,
     "Windows Resource-Definition Script": 56
    },
    "loc_total": 28976,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 60,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     7,
     11,
     22,
     17,
     8,
     8,
     5,
     0,
     16,
     19,
     62,
     38,
     17,
     14,
     14,
     31,
     32,
     66,
     34,
     53,
     51,
     12,
     8,
     28,
     30,
     25,
     28,
     28,
     33,
     6,
     26,
     21,
     1,
     3,
     13,
     7,
     14,
     8,
     20,
     3,
     12,
     16,
     45,
     23,
     17,
     29,
     15,
     36,
     39,
     63,
     57,
     13
    ]
   }
  },
  {
   "slug": "element-web",
   "name": "Element Web / Desktop",
   "category": "client",
   "kind": "web, desktop",
   "homepage": "https://element.io",
   "summary": "Element's web client and its Electron desktop app, built on matrix-js-sdk; both now live in one pnpm monorepo.",
   "repos": [
    {
     "url": "https://github.com/element-hq/element-web",
     "forge": "github",
     "role": "main"
    },
    {
     "url": "https://github.com/element-hq/element-desktop",
     "forge": "github",
     "role": "desktop"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/element/",
    "other": [
     "sources/community-space.tsv: rooms \"Element Web/Desktop (OLD)\", \"Element Web Development\""
    ]
   },
   "maturity": "stable",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "web",
       "url": "https://app.element.io"
      },
      {
       "name": "docker",
       "url": "https://hub.docker.com/r/vectorim/element-web"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element.md"
    },
    {
     "os": "windows",
     "tech": "electron",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "element.io",
       "url": "https://element.io/download"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element.md"
    },
    {
     "os": "macos",
     "tech": "electron",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "element.io",
       "url": "https://element.io/download"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element.md"
    },
    {
     "os": "linux",
     "tech": "electron",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/im.riot.Riot"
      },
      {
       "name": "apt",
       "url": "https://packages.element.io/debian/"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element.md"
    }
   ],
   "licence": "AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial",
   "fork_of": null,
   "distribution": [
    "flathub",
    "docker",
    "apt"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk (develop branch, Rust crypto)",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/package.json"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/DecryptionFailureTracker.ts"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/views/dialogs/devtools/Crypto.tsx"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/device-listener/DeviceListenerCurrentDevice.ts"
    },
    "sliding_sync": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/SlidingSyncManager.ts",
     "note": "Native MSC4186 sliding sync behind the labs flag feature_sliding_sync (default off)."
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/utils/oauth/authorize.ts",
     "note": "Next-gen auth (OAuth 2.0 / MAS); docs/oauth.md. matrix.org: supported."
    },
    "multi_account": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element.md"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/structures/ThreadPanel.tsx"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/structures/SpaceHierarchy.tsx"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/views/messages/LegacyCallEvent.tsx",
     "note": "Legacy m.call; Jitsi widgets also supported (matrix.org)."
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/models/Call.ts",
     "note": "Element Call embedded (@element-hq/element-call-embedded 0.28.0)."
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/views/rooms/EventTile.tsx"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/views/rooms/EditMessageComposer.tsx"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/views/elements/ReplyChain.tsx"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/views/elements/PollCreateDialog.tsx"
    },
    "custom_emoji": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element.md",
     "note": "matrix.org: image_packs partial; no im.ponies code found in apps/web/src."
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/utils/exportUtils/Exporter.ts",
     "note": "Via the integration manager sticker picker."
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/utils/location/parseGeoUri.ts",
     "note": "Static and live location (beacons)."
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/utils/createVoiceMessageContent.ts"
    },
    "rich_text_editor": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/views/rooms/MessageComposer.tsx",
     "note": "Markdown composer plus the optional WYSIWYG composer."
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/settings/handlers/RoomSettingsHandler.ts"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/views/settings/notifications/NotificationPusherSettings.tsx",
     "note": "Desktop/browser notifications and pusher management."
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/structures/TimelinePanel.tsx"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/views/avatars/WithPresenceIndicator.tsx"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/slash-commands/upgraderoom/runUpgradeRoomCommand.ts"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/components/views/dialogs/BulkRedactDialog.tsx"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/AGENTS.md",
     "note": "Playwright tests locate elements by role and accessible name; aria attributes in over 300 source files; a community room \"Element accessibility\" exists."
    },
    "translations": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/localazy.json",
     "note": "Localazy; 41 locale files in apps/web/src/i18n/strings."
    },
    "telemetry": {
     "value": "opt-in",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/src/PosthogAnalytics.ts",
     "note": "PostHog analytics only after the user opts in (analyticsOptIn); Sentry (@sentry/browser, @sentry/electron) for rageshake/crash reports when configured."
    },
    "default_homeserver": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/config.sample.json",
     "note": "matrix.org (default_server_config), identity server vector.im, integrations scalar.vector.im."
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/AGENTS.md",
     "note": "Large pnpm + nx monorepo (web, desktop, shared components, modules); triple licence AGPL-3.0 / GPL-3.0 / commercial with a CLA for contributions. Many forks exist (SchildiChat)."
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "Contributions are judged on their content, not on how they were produced. AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "AGENTS.md at the repo root (instructions for AI coding agents).",
      "25 of about 2,100 non-bot commits in the last 365 days (about 1.2 %) carry an AI co-author trailer (Claude, Copilot Autofix).",
      "The PR template has an \"AI assistance\" checkbox."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "element-web.svg",
    "source": "https://github.com/element-hq/element-web/blob/a3f5be54f4bf77eee950e38aedb3251bf059dc38/apps/web/res/img/element-desktop-logo.svg",
    "licence": "AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Stable. Element's organisation-wide AI policy (element-meta CONTRIBUTING.md, merged 2026-11-02 in https://github.com/element-hq/element-meta/pull/3393) applies to all element-hq repositories and to matrix-org repositories where Element is the core contributor. The repo's own CONTRIBUTING.md adds: \"The PR description must be written by a human and mustn't be generated by AI tools\"; its PR template has an \"I used AI tools\" checkbox. Element Desktop moved into the element-web monorepo (apps/desktop); the separate element-desktop repo's last commit is 2026-03-25.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 26,
     "commits_365d": 2176,
     "share_365d": 0.0119,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 22,
      "copilot": 4
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 76,
    "authors_90d": 41,
    "authors_all": 543,
    "authors_by_quarter": {
     "2023-Q1": 54,
     "2023-Q2": 36,
     "2023-Q3": 42,
     "2023-Q4": 36,
     "2024-Q1": 27,
     "2024-Q2": 28,
     "2024-Q3": 27,
     "2024-Q4": 20,
     "2025-Q1": 25,
     "2025-Q2": 30,
     "2025-Q3": 33,
     "2025-Q4": 25,
     "2026-Q1": 34,
     "2026-Q2": 31,
     "2026-Q3": 38,
     "2026-Q4": 26
    },
    "bus_factor_365d": 3,
    "ci": true,
    "commits_30d": 158,
    "commits_365d": 2116,
    "commits_90d": 493,
    "commits_all": 41127,
    "first_commit": "2015-06-09T16:40:42+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0154,
     "HTML": 0.0039,
     "JavaScript": 0.0017,
     "TypeScript": 0.9741,
     "TypeScript Typings": 0.0023
    },
    "last_commit": "2026-11-04T15:12:25+00:00",
    "last_tag": "v1.12.33",
    "last_tag_date": "2026-10-27T14:42:31+00:00",
    "last_tag_repo": "https://github.com/element-hq/element-web",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 4,
     "CSS": 5687,
     "Dockerfile": 128,
     "HCL": 21,
     "HTML": 1444,
     "JSONC": 63,
     "JavaScript": 640,
     "Perl": 152,
     "Python": 304,
     "Shell": 432,
     "TypeScript": 364033,
     "TypeScript Typings": 971
    },
    "loc_total": 373879,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 50,
    "telemetry_sdks": [
     "PostHog",
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     25,
     32,
     33,
     59,
     47,
     48,
     19,
     2,
     44,
     37,
     66,
     52,
     34,
     56,
     58,
     65,
     46,
     34,
     46,
     53,
     52,
     36,
     58,
     42,
     31,
     31,
     33,
     33,
     44,
     49,
     69,
     26,
     23,
     31,
     59,
     47,
     33,
     26,
     33,
     44,
     43,
     36,
     24,
     40,
     46,
     43,
     36,
     47,
     44,
     40,
     12,
     38
    ]
   }
  },
  {
   "slug": "element-x",
   "name": "Element X",
   "category": "client",
   "kind": "mobile",
   "homepage": "https://element.io",
   "summary": "Element's next-generation mobile apps for Android (Kotlin/Compose) and iOS (SwiftUI), both on the matrix-rust-sdk.",
   "repos": [
    {
     "url": "https://github.com/element-hq/element-x-android",
     "forge": "github",
     "role": "android"
    },
    {
     "url": "https://github.com/element-hq/element-x-ios",
     "forge": "github",
     "role": "ios"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/element-x/",
    "other": [
     "sources/community-space.tsv: rooms \"Element X Android (OLD)\", \"Element X iOS (OLD)\""
    ]
   },
   "maturity": "stable",
   "platforms": [
    "android",
    "ios"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "native",
     "min_os": "7.0",
     "status": "stable",
     "stores": [
      {
       "name": "google-play",
       "url": "https://play.google.com/store/apps/details?id=io.element.android.x"
      },
      {
       "name": "f-droid",
       "url": "https://f-droid.org/packages/io.element.android.x"
      }
     ],
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/plugins/src/main/kotlin/Versions.kt"
    },
    {
     "os": "ios",
     "tech": "native",
     "min_os": "18.5",
     "status": "stable",
     "stores": [
      {
       "name": "app-store",
       "url": "https://apps.apple.com/app/id1631335820"
      }
     ],
     "source": "https://github.com/element-hq/element-x-ios/blob/dc3e47720df8c13137b27a3643f80d66defaf4df/project.yml"
    }
   ],
   "licence": "AGPL-3.0-only OR LicenseRef-Element-Commercial",
   "fork_of": null,
   "distribution": [
    "google-play",
    "f-droid",
    "app-store"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk (FFI bindings: org.matrix.rustcomponents:sdk-android, MatrixRustSDK on iOS)",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/gradle/libs.versions.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-x.md"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/features/verifysession"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/features/securebackup",
     "note": "Secure backup / recovery key."
    },
    "sliding_sync": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-x.md",
     "note": "Native MSC4186 simplified sliding sync through matrix-rust-sdk; required."
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/libraries/oauth",
     "note": "Native OAuth 2.0 / MAS login."
    },
    "multi_account": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt",
     "note": "Behind the feature flag feature.multi_account (default off); also multiAccountEnabled on iOS."
    },
    "threads": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/libraries/featureflag/api/src/main/kotlin/io/element/android/libraries/featureflag/api/FeatureFlags.kt",
     "note": "Thread timeline behind feature.thread_timeline (default off); matrix.org: partial."
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/features/space"
    },
    "voip_1to1": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-x.md"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/features/call",
     "note": "Element Call (MatrixRTC)."
    },
    "reactions": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-x.md"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/features/messages"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/features/messages"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/features/poll"
    },
    "custom_emoji": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/element-x.md",
     "note": "matrix.org: image_packs unknown."
    },
    "stickers": "not-found",
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/features/location"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/libraries/voicerecorder"
    },
    "rich_text_editor": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/libraries/textcomposer",
     "note": "Matrix rich text editor (WYSIWYG)."
    },
    "url_previews": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/libraries/previewutils"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/libraries/pushproviders",
     "note": "Firebase and UnifiedPush providers on Android, APNs on iOS."
    },
    "private_read_receipts": "not-found",
    "presence": {
     "value": "not-found",
     "how": null,
     "source": null
    },
    "room_upgrades": {
     "value": "not-found",
     "how": null,
     "source": null
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/features/roommembermoderation"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-ios/blob/dc3e47720df8c13137b27a3643f80d66defaf4df/AccessibilityTests",
     "note": "iOS has an AccessibilityTests target."
    },
    "translations": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/libraries/ui-strings/src/main/res",
     "note": "Localazy; about 40 locales on each platform."
    },
    "telemetry": {
     "value": "opt-in",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/services/analytics/api/src/main/kotlin/io/element/android/services/analytics/api/AnalyticsService.kt",
     "note": "PostHog and Sentry providers; \"Nothing is sent to the providers until the user has given their consent\"."
    },
    "default_homeserver": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/element-x-ios/blob/dc3e47720df8c13137b27a3643f80d66defaf4df/ElementX/Sources/Application/Settings/AppSettings.swift",
     "note": "matrix.org (accountProviders default on iOS; Android falls back to matrix.org)."
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/README.md",
     "note": "Two native codebases (Gradle/Kotlin, Xcode/xcodegen) on prebuilt Rust SDK bindings; AGPL-3.0 or commercial, CLA for contributions."
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "Contributions are judged on their content, not on how they were produced. AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "CLAUDE.md and AGENTS.md in both repos; .claude/skills in element-x-ios.",
      "element-x-android: 284 of about 2,830 non-bot commits in the last 365 days (about 10 %) carry an AI co-author trailer, mostly Claude.",
      "element-x-ios: 19 of about 1,420 (about 1.3 %), Claude and copilot-swe-agent.",
      "The Android PR template asks AI-assisted PRs to request a Copilot review; the iOS template asks for the model and harness used."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "element-x.webp",
    "source": "https://github.com/element-hq/element-x-android/blob/c34418f0f72410a4ba7d2abd22d71708156e21ce/fastlane/metadata/android/en-US/images/icon.png",
    "licence": "AGPL-3.0-only OR LicenseRef-Element-Commercial",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Stable. Element's organisation-wide AI policy (element-meta CONTRIBUTING.md, merged 2026-11-02 in https://github.com/element-hq/element-meta/pull/3393) applies to all element-hq repositories and to matrix-org repositories where Element is the core contributor. Both repos' CONTRIBUTING.md also say \"We are also fine with AI led contributions within reasonable bounds\". Android FOSS builds need Android 7.0 (API 24), enterprise builds API 33.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 5,
     "ai_bot_commits_365d": 7,
     "attributed_commits_365d": 301,
     "commits_365d": 4287,
     "share_365d": 0.0702,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 289,
      "copilot": 12
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 74,
    "authors_90d": 41,
    "authors_all": 132,
    "authors_by_quarter": {
     "2023-Q1": 24,
     "2023-Q2": 33,
     "2023-Q3": 33,
     "2023-Q4": 18,
     "2024-Q1": 18,
     "2024-Q2": 19,
     "2024-Q3": 21,
     "2024-Q4": 22,
     "2025-Q1": 22,
     "2025-Q2": 21,
     "2025-Q3": 22,
     "2025-Q4": 22,
     "2026-Q1": 31,
     "2026-Q2": 36,
     "2026-Q3": 40,
     "2026-Q4": 25
    },
    "bus_factor_365d": 3,
    "ci": true,
    "commits_30d": 426,
    "commits_365d": 4287,
    "commits_90d": 1367,
    "commits_all": 16289,
    "first_commit": "2022-02-11T12:06:26+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 0.0069,
     "Kotlin": 0.9818,
     "Python": 0.0052,
     "Shell": 0.0043
    },
    "last_commit": "2026-11-04T17:20:53+00:00",
    "last_tag": "release/26.10.8",
    "last_tag_date": "2026-10-26T10:00:39+01:00",
    "last_tag_repo": "https://github.com/element-hq/element-x-ios",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "BASH": 185,
     "Batch": 73,
     "CSS": 213,
     "HTML": 64,
     "JSON5": 71,
     "JavaScript": 2196,
     "Kotlin": 312321,
     "Pkl": 14,
     "Python": 1660,
     "Shell": 1498,
     "Swift": 171587
    },
    "loc_total": 489882,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/element-hq/element-x-ios/blob/dc3e47720df8c13137b27a3643f80d66defaf4df/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 80,
    "telemetry_sdks": [
     "PostHog",
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     97,
     99,
     77,
     91,
     64,
     97,
     82,
     21,
     34,
     59,
     66,
     97,
     59,
     80,
     49,
     45,
     60,
     93,
     39,
     75,
     70,
     59,
     74,
     123,
     92,
     82,
     81,
     60,
     76,
     111,
     78,
     69,
     84,
     91,
     84,
     76,
     82,
     53,
     49,
     177,
     143,
     220,
     50,
     63,
     49,
     61,
     129,
     122,
     100,
     83,
     88,
     105
    ]
   }
  },
  {
   "slug": "elm-matrix-sdk",
   "name": "Elm SDK",
   "category": "sdk",
   "kind": "Elm",
   "homepage": "https://github.com/noordstar/elm-matrix-sdk-beta",
   "summary": "A Matrix SDK in Elm, meant as a more consistent alternative to matrix-js-sdk.",
   "repos": [
    {
     "url": "https://github.com/noordstar/elm-matrix-sdk-beta",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "web"
   ],
   "licence": "EUPL-1.2",
   "fork_of": null,
   "distribution": [
    "elm-packages"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 4daac54732d0"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "icon": {
    "file": "elm-matrix-sdk.svg",
    "source": "https://github.com/noordstar/elm-matrix-sdk-beta/blob/4daac54732d0185161e7a7aaf5e9f761aa361552/docs/logo.svg",
    "licence": "EUPL-1.2",
    "note": null,
    "checked": "2026-11-05",
    "backing": "light"
   },
   "notes": "matrix.org lists it as \"Elm SDK\" (Beta, Elm, maintainer: Bram Noordstar). Last non-bot commit 2024-11-22, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 4daac54732d0 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "ement",
   "name": "Ement.el",
   "category": "client",
   "kind": "terminal (Emacs)",
   "homepage": "https://github.com/alphapapa/ement.el",
   "summary": "A Matrix client for GNU Emacs, distributed through GNU ELPA.",
   "repos": [
    {
     "url": "https://github.com/alphapapa/ement.el",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/ement/",
    "other": [
     "sources/community-space.tsv: rooms \"Ement.el\", \"Emacs Matrix Client\" (predecessor)",
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "linux",
    "macos",
    "windows",
    "terminal"
   ],
   "apps": [
    {
     "os": "terminal",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "gnu-elpa",
       "url": "https://elpa.gnu.org/packages/ement.html"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/ement.md",
     "note": "Runs inside Emacs on any OS Emacs supports."
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "gnu-elpa"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own (Emacs Lisp)",
     "how": "code",
     "source": "https://github.com/alphapapa/ement.el/blob/790aee7d8fdd658bd1740b5e59a5e64c3842014b/README.org"
    },
    "e2ee": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/alphapapa/ement.el/blob/790aee7d8fdd658bd1740b5e59a5e64c3842014b/README.org",
     "note": "Encrypted rooms only through the Pantalaimon proxy; matrix.org: unsupported."
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/ement.md"
    },
    "threads": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/ement.md"
    },
    "spaces": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/ement.md"
    },
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/alphapapa/ement.el/blob/790aee7d8fdd658bd1740b5e59a5e64c3842014b/README.org"
    },
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/ement.md"
    },
    "telemetry": {
     "value": "none-found",
     "how": null,
     "source": null
    },
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/alphapapa/ement.el/blob/790aee7d8fdd658bd1740b5e59a5e64c3842014b/README.org",
     "note": "Pure Emacs Lisp package; GPL-3.0-or-later; README: contributions of more than 15 lines require copyright assignment to the FSF (GNU ELPA)."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits among 6 commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "ement.svg",
    "source": "https://github.com/alphapapa/ement.el/blob/790aee7d8fdd658bd1740b5e59a5e64c3842014b/images/logo.svg",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Stable. Last commit 2025-11-17 (slowing). Replaces the older matrix-client.el.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 6,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 16,
    "authors_by_quarter": {
     "2023-Q1": 3,
     "2023-Q2": 3,
     "2023-Q3": 4,
     "2023-Q4": 2,
     "2024-Q1": 6,
     "2024-Q2": 2,
     "2024-Q3": 2,
     "2024-Q4": 3,
     "2025-Q1": 0,
     "2025-Q2": 2,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 6,
    "commits_90d": 0,
    "commits_all": 1258,
    "first_commit": "2020-11-26T21:46:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Emacs Lisp": 0.8933,
     "Makefile": 0.0029,
     "Shell": 0.1037
    },
    "last_commit": "2025-11-18T01:17:48+00:00",
    "last_tag": "v0.17",
    "last_tag_date": "2025-11-16T06:59:28-06:00",
    "last_tag_repo": "https://github.com/alphapapa/ement.el",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Emacs Lisp": 8812,
     "Makefile": 29,
     "Shell": 1023
    },
    "loc_total": 9864,
    "main_language": "Emacs Lisp",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     6,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "emm",
   "name": "emm (Export Matrix Messages)",
   "category": "tool",
   "kind": "cli",
   "homepage": "https://github.com/etkecc/emm",
   "summary": "A CLI that joins a room and exports its last N messages to files through a template, for example to publish a room as blog posts.",
   "repos": [
    {
     "url": "https://github.com/etkecc/emm",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "export room messages to files (templated)",
     "how": "claimed",
     "source": "https://github.com/etkecc/emm/blob/07292aeb540f1b1389a01f8ae96dd95c69a40635/README.md"
    },
    "framework": {
     "value": "mautrix-go",
     "how": "code",
     "source": "https://github.com/etkecc/emm/blob/07292aeb540f1b1389a01f8ae96dd95c69a40635/go.mod"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/etkecc/emm/blob/07292aeb540f1b1389a01f8ae96dd95c69a40635/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/etkecc/emm/blob/07292aeb540f1b1389a01f8ae96dd95c69a40635/README.md",
     "note": "CLI run locally or from cron"
    },
    "config": {
     "value": "command-line flags",
     "how": "claimed",
     "source": "https://github.com/etkecc/emm/blob/07292aeb540f1b1389a01f8ae96dd95c69a40635/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/etkecc/emm/blob/07292aeb540f1b1389a01f8ae96dd95c69a40635/go.mod"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 8 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 07292aeb540f"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Maintained by etke.cc; its own news page is generated with it. Agent files only under vendor/.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 8,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 8,
    "commits_90d": 2,
    "commits_all": 46,
    "first_commit": "2022-01-11T17:58:35+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 1
    },
    "last_commit": "2026-09-05T17:59:36+00:00",
    "last_tag": "v0.9.15",
    "last_tag_date": "2025-08-14T20:06:45+01:00",
    "last_tag_repo": "https://github.com/etkecc/emm",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Go": 667
    },
    "loc_total": 667,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     1,
     1,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "extera",
   "name": "Extera Next",
   "category": "client",
   "kind": "mobile, desktop, web",
   "homepage": "https://extera.xyz",
   "summary": "A FluffyChat fork with extra features (message translation, image editor, richer profiles); development moved from GitHub to a self-hosted Forgejo.",
   "repos": [
    {
     "url": "https://source.extera.xyz/Extera/Extera",
     "forge": "forgejo",
     "role": "main"
    },
    {
     "url": "https://github.com/ExteraApp/Extera",
     "forge": "github",
     "role": "other"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/extera-next/",
    "other": [
     "GitHub topic matrix-client (archived GitHub mirror)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "android",
    "linux",
    "windows",
    "web"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "apk",
       "url": "https://source.extera.xyz/Extera/Extera/releases"
      }
     ],
     "source": "https://source.extera.xyz/Extera/Extera/src/commit/9b12d0ff732dd209f29d5acf4694be23629c2091/.github/README.md"
    },
    {
     "os": "linux",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "appimage",
       "url": "https://source.extera.xyz/Extera/Extera/releases"
      }
     ],
     "source": "https://source.extera.xyz/Extera/Extera/src/commit/9b12d0ff732dd209f29d5acf4694be23629c2091/.github/README.md"
    },
    {
     "os": "windows",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://source.extera.xyz/Extera/Extera/src/commit/9b12d0ff732dd209f29d5acf4694be23629c2091/README.md"
    },
    {
     "os": "web",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://source.extera.xyz/Extera/Extera/src/commit/9b12d0ff732dd209f29d5acf4694be23629c2091/.github/README.md"
    }
   ],
   "licence": "AGPL-3.0",
   "fork_of": "fluffychat",
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-dart-sdk (vendored fork at ../matrix-dart-sdk)",
     "how": "code",
     "source": "https://source.extera.xyz/Extera/Extera/src/commit/9b12d0ff732dd209f29d5acf4694be23629c2091/pubspec.yaml"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md",
     "note": "vodozemac."
    },
    "cross_signing": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md"
    },
    "key_backup": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md"
    },
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/extera-next.md"
    },
    "threads": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/extera-next.md"
    },
    "spaces": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md"
    },
    "group_calls": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md",
     "note": "Element Call compatible, LiveKit."
    },
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md"
    },
    "stickers": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md"
    },
    "location": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md"
    },
    "voice_messages": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md"
    },
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md"
    },
    "private_read_receipts": "not-found",
    "presence": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md",
     "note": "Rich Presence (MSC4320)."
    },
    "room_upgrades": "not-found",
    "moderation_tools": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md"
    },
    "accessibility": "not-found",
    "translations": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/README.md",
     "note": "\"We use LLMs for translating the app. Exceptions are English and Russian.\""
    },
    "telemetry": {
     "value": "none-found",
     "how": null,
     "source": null
    },
    "default_homeserver": {
     "value": "not-found",
     "how": null,
     "source": null
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://source.extera.xyz/Extera/Extera/src/commit/9b12d0ff732dd209f29d5acf4694be23629c2091/README.md",
     "note": "Flutter plus a vendored matrix-dart-sdk fork; AGPL-3.0 (README does not say only or or-later)."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "AGENTS.md at the repo root (conventions for coding agents).",
      "2 of about 1,070 non-bot commits in the last 365 days carry an Assisted-by trailer (opencode with GLM and DeepSeek models).",
      "UI strings other than English and Russian are machine-translated with an LLM (scripts/translate.js, OpenAI API)."
     ],
     "collector_override": "the collector could not clone the main Forgejo repo (HTTP 403 on 2026-11-05) and saw only the archived GitHub mirror; the lane read the main repo: AGENTS.md, Assisted-by trailers, and LLM-translated UI strings."
    },
    "in_product": {
     "value": "optional",
     "note": "Built-in message translation (toggleable) through Neurogate, the project's own \"gateway API for AI inference\" (https://source.extera.xyz/Extera/Neurogate); default endpoint neurogate.extera.xyz; not available in encrypted rooms (docs/translator.md).",
     "source": "https://source.extera.xyz/Extera/Extera/src/commit/9b12d0ff732dd209f29d5acf4694be23629c2091/lib/utils/neurogate.dart"
    }
   },
   "icon": {
    "file": "extera.webp",
    "source": "https://github.com/ExteraApp/Extera/blob/915e1d86aade210553cbddcf8c39b5b75898de20/android/fastlane/metadata/android/en-US/images/icon.png",
    "licence": "AGPL-3.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"Extera Next\" (maturity Beta). The GitHub repo ExteraApp/Extera is archived and says \"We have moved to https://source.extera.xyz/Extera/Extera\". The older Cinny-based Extera (officialdakari/Extera, matrix.org \"Obsolete\") returns 404 and has no file. Fork of FluffyChat.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 728,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 9,
    "authors_90d": 0,
    "authors_all": 9,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 3,
     "2026-Q2": 6,
     "2026-Q3": 3,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 728,
    "commits_90d": 0,
    "commits_all": 793,
    "first_commit": "2025-06-05T17:05:37+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0037,
     "C++": 0.0118,
     "CMake": 0.0105,
     "Dart": 0.9479,
     "HTML": 0.0104,
     "JavaScript": 0.0015,
     "Kotlin": 0.0023,
     "Shell": 0.0055,
     "Swift": 0.0021,
     "Windows Resource-Definition Script": 0.0012
    },
    "last_commit": "2026-07-28T16:14:10+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "C Header": 218,
     "C++": 692,
     "CMake": 613,
     "CSS": 40,
     "CloudFormation (YAML)": 39,
     "Dart": 55365,
     "Dockerfile": 15,
     "Gemfile": 4,
     "HTML": 607,
     "JavaScript": 88,
     "Kotlin": 136,
     "Powershell": 13,
     "Prolog": 1,
     "Python": 37,
     "Shell": 320,
     "Swift": 120,
     "Windows Resource-Definition Script": 69,
     "Xcode Config": 28
    },
    "loc_total": 58405,
    "main_language": "Dart",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     1,
     11,
     2,
     11,
     37,
     10,
     1,
     37,
     62,
     22,
     2,
     7,
     17,
     10,
     12,
     1,
     5,
     6,
     9,
     13,
     13,
     72,
     68,
     18,
     5,
     31,
     11,
     13,
     9,
     35,
     12,
     28,
     54,
     47,
     3,
     23,
     9,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "fermium",
   "name": "Fermium",
   "category": "client",
   "kind": "terminal (Emacs)",
   "homepage": "https://github.com/ianthetechie/fermium",
   "summary": "A Matrix client for Emacs: Emacs Lisp UI with a small Rust helper on the matrix-rust-sdk.",
   "repos": [
    {
     "url": "https://github.com/ianthetechie/fermium",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub repository search \"matrix client\" (pushed since 2025-11), 2026-11-05"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "terminal"
   ],
   "apps": [
    {
     "os": "terminal",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/ianthetechie/fermium/blob/5437cadf358e6f7aedd6ff9918cabc78713d0b49/README.md"
    }
   ],
   "licence": "BSD-3-Clause",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk via a Rust helper",
     "how": "code",
     "source": "https://github.com/ianthetechie/fermium/blob/5437cadf358e6f7aedd6ff9918cabc78713d0b49/README.md"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "config-only",
     "evidence": [
      "CLAUDE.md and AGENTS.md in the tree; no attributed commits among 22 commits."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Licence: LICENSE.txt is the three-clause BSD text. Started 2026-07-26.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 2,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 22,
     "share_365d": 0,
     "suggested_dev_usage": "config-only",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 22,
    "commits_90d": 8,
    "commits_all": 22,
    "first_commit": "2026-07-25T17:14:23+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Emacs Lisp": 0.7336,
     "Rust": 0.2664
    },
    "last_commit": "2026-08-13T06:24:21+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "BSD-3-Clause",
    "loc": {
     "Emacs Lisp": 5575,
     "Rust": 2025
    },
    "loc_total": 7600,
    "main_language": "Emacs Lisp",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     3,
     10,
     8,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "fest",
   "name": "Fest",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://github.com/fest-im/fest",
   "summary": "An unfinished GTK+ 3 Matrix client in Rust; Fractal started as its fork.",
   "repos": [
    {
     "url": "https://github.com/fest-im/fest",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv: room \"Fest\" (Chat Clients)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "linux"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "gtk",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/fest-im/fest/blob/4d6efd9e3a89d71502d112acc28362de691499fe/README.md"
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "ruma-client (Rust)",
     "how": "code",
     "source": "https://github.com/fest-im/fest/blob/4d6efd9e3a89d71502d112acc28362de691499fe/Cargo.toml"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/fest-im/fest/blob/4d6efd9e3a89d71502d112acc28362de691499fe/README.md",
     "note": "README: \"fest is not function and not currently in active development\"; needs Rust nightly and GTK 3; GPL-3.0-or-later."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days, so no attributed commits; no agent files in the tree."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "fest.svg",
    "source": "https://github.com/fest-im/fest/blob/4d6efd9e3a89d71502d112acc28362de691499fe/res/icons/hicolor/scalable/apps/fest.svg",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Our reading: unmaintained (README says so). Last commit 2020-04-01.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 8,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 131,
    "first_commit": "2016-12-29T16:22:33+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Python": 0.0776,
     "Rust": 0.9224
    },
    "last_commit": "2020-04-01T14:06:50+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "GPL-3.0",
    "loc": {
     "Python": 62,
     "Rust": 737
    },
    "loc_total": 799,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "fluffychat",
   "name": "FluffyChat",
   "category": "client",
   "kind": "mobile, desktop, web",
   "homepage": "https://fluffychat.im",
   "summary": "A cross-platform Flutter Matrix client for Android, iOS, desktop and web, built on the Matrix Dart SDK.",
   "repos": [
    {
     "url": "https://github.com/krille-chan/fluffychat",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/fluffychat/",
    "other": [
     "PLAN.md extra sources (https://fluffychat.im)",
     "sources/community-space.tsv: room \"[DEPRECATED] FluffyChat Support\""
    ]
   },
   "maturity": "stable",
   "platforms": [
    "android",
    "ios",
    "web",
    "linux",
    "windows",
    "macos"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "flutter",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "google-play",
       "url": "https://play.google.com/store/apps/details?id=chat.fluffy.fluffychat"
      },
      {
       "name": "f-droid",
       "url": "https://f-droid.org/packages/chat.fluffy.fluffychat"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fluffychat.md",
     "note": null
    },
    {
     "os": "ios",
     "tech": "flutter",
     "min_os": "15.0",
     "status": "stable",
     "stores": [
      {
       "name": "app-store",
       "url": "https://apps.apple.com/app/id1551469600"
      }
     ],
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/ios/Runner.xcodeproj/project.pbxproj"
    },
    {
     "os": "linux",
     "tech": "flutter",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/im.fluffychat.Fluffychat"
      },
      {
       "name": "snap",
       "url": "https://snapcraft.io/fluffychat"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fluffychat.md"
    },
    {
     "os": "web",
     "tech": "flutter",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "web",
       "url": "https://fluffychat.im/web"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fluffychat.md"
    },
    {
     "os": "windows",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/windows"
    },
    {
     "os": "macos",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/macos"
    }
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "google-play",
    "f-droid",
    "app-store",
    "flathub",
    "snap",
    "docker"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-dart-sdk (package matrix ^14.1.0) with flutter_vodozemac",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/pubspec.yaml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/utils/client_manager.dart",
     "note": "vodozemac via flutter_vodozemac."
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/bootstrap/view_model/bootstrap_state.dart"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/settings/settings.dart",
     "note": "Online key backup / recovery via the bootstrap flow."
    },
    "sliding_sync": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/pubspec.yaml",
     "note": "No MSC4186/MSC3575 use found (only a field in public homeserver data)."
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/utils/sign_in_flows/oidc_login.dart",
     "note": "Native OIDC login."
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fluffychat.md"
    },
    "threads": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fluffychat.md",
     "note": "matrix.org: supported; thread handling in lib/utils/matrix_sdk_extensions/filtered_timeline_extension.dart."
    },
    "spaces": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fluffychat.md"
    },
    "voip_1to1": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fluffychat.md"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/utils/matrix_live_kit_calls/matrix_live_kit_call.dart",
     "note": "MatrixRTC calls over LiveKit."
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/chat/events/message.dart"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/chat/chat.dart"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/chat/chat.dart"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/chat/chat.dart"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/settings_emotes/settings_emotes.dart",
     "note": "im.ponies emote packs; matrix.org: partial."
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/utils/matrix_sdk_extensions/event_extension.dart"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/chat/send_location_dialog.dart"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/chat/chat.dart"
    },
    "rich_text_editor": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/chat/chat.dart",
     "note": "Markdown input; no WYSIWYG editor found."
    },
    "url_previews": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/chat/events/message.dart"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/utils/background_push.dart",
     "note": "UnifiedPush and Firebase (Google Play builds)."
    },
    "private_read_receipts": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/utils/push_helper.dart"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/widgets/presence_builder.dart"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/chat/chat.dart",
     "note": "Handles tombstones."
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/pages/chat/events/message_content.dart"
    },
    "accessibility": "not-found",
    "translations": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/l10n",
     "note": "Weblate; about 58 .arb locale files."
    },
    "telemetry": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/pubspec.yaml",
     "note": "No analytics or crash-report SDK in pubspec.yaml; see PRIVACY.md."
    },
    "default_homeserver": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/lib/config/setting_keys.dart",
     "note": "matrix.org (setting chat.fluffy.default_homeserver)."
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/CONTRIBUTING.md",
     "note": "One Flutter codebase for all platforms; AGPL-3.0-or-later; many forks (Extera Next and others)."
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "We do not vibe code! You are required to understand and be able to explain every single line of code of your contribution.",
     "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "2 of about 1,390 non-bot commits in the last 365 days carry a Claude co-author trailer (both 2026-10-22), below the 1 % line.",
      "AGENTS.md, which told agents \"it is strictly prohibited to let an LLM edit any files in this repository\", was removed on 2026-10-22 (commit 607edd5a765d32228af9dee012b1b2e4718cc729)."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "fluffychat.webp",
    "source": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png",
    "licence": "AGPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "AI policy history: CONTRIBUTING said \"Usage of LLMs to generate code, documentation, commit messages or PR description is strictly prohibited\" from 2026-06-01 (commit 264f4533a44e3f5f7cc3d5bc6265154dfd782019) until 2026-10-22, when it became \"Do not vibe code!\". Contributions are limited to collaborators \"for now due to spam\". Issue https://github.com/krille-chan/fluffychat/issues/3753 asked to also reject LLM code reviews. dev_usage is set to occasional on attributed commits although the share is under 1 %.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 2,
     "commits_365d": 924,
     "share_365d": 0.0022,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 2
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 43,
    "authors_90d": 15,
    "authors_all": 165,
    "authors_by_quarter": {
     "2023-Q1": 14,
     "2023-Q2": 8,
     "2023-Q3": 12,
     "2023-Q4": 11,
     "2024-Q1": 9,
     "2024-Q2": 6,
     "2024-Q3": 12,
     "2024-Q4": 17,
     "2025-Q1": 15,
     "2025-Q2": 11,
     "2025-Q3": 8,
     "2025-Q4": 8,
     "2026-Q1": 9,
     "2026-Q2": 16,
     "2026-Q3": 14,
     "2026-Q4": 7
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 67,
    "commits_365d": 924,
    "commits_90d": 292,
    "commits_all": 5382,
    "first_commit": "2020-01-01T18:10:13+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0024,
     "C++": 0.0103,
     "CMake": 0.008,
     "Dart": 0.9562,
     "HTML": 0.0013,
     "Kotlin": 0.0042,
     "Shell": 0.0033,
     "Swift": 0.0102,
     "Windows Resource-Definition Script": 0.0018
    },
    "last_commit": "2026-11-04T17:10:16+00:00",
    "last_tag": "v2.11.4",
    "last_tag_date": "2026-10-28T16:46:45+01:00",
    "last_tag_repo": "https://github.com/krille-chan/fluffychat",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "C Header": 93,
     "C++": 402,
     "CMake": 315,
     "Dart": 37448,
     "Dockerfile": 24,
     "Gemfile": 10,
     "HTML": 51,
     "Kotlin": 166,
     "Powershell": 32,
     "Prolog": 1,
     "Shell": 128,
     "Swift": 400,
     "Windows Resource-Definition Script": 69,
     "Xcode Config": 24
    },
    "loc_total": 39163,
    "main_language": "Dart",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/krille-chan/fluffychat/blob/3881abc8eb4ed0ceebdae468e7d74bba2091fffc/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 21,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     19,
     46,
     27,
     13,
     8,
     1,
     9,
     1,
     1,
     2,
     5,
     7,
     13,
     3,
     28,
     50,
     35,
     30,
     23,
     16,
     16,
     0,
     3,
     6,
     2,
     9,
     14,
     22,
     36,
     36,
     11,
     17,
     19,
     20,
     10,
     13,
     17,
     16,
     18,
     14,
     17,
     89,
     33,
     11,
     11,
     6,
     36,
     14,
     17,
     19,
     22,
     6
    ]
   }
  },
  {
   "slug": "fractal",
   "name": "Fractal",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://gitlab.gnome.org/World/fractal",
   "summary": "A GTK 4 / libadwaita Matrix client for GNOME, written in Rust on the matrix-rust-sdk.",
   "repos": [
    {
     "url": "https://gitlab.gnome.org/World/fractal",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/fractal/",
    "other": [
     "sources/community-space.tsv: room \"Fractal\"",
     "https://github.com/jryans/awesome-matrix (Clients)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "linux"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "gtk",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/org.gnome.Fractal"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fractal.md"
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "flathub"
   ],
   "funding": [
    "https://nlnet.nl/project/Fractal/"
   ],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk (git rev 2d6248ed, with matrix-sdk-ui)",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/Cargo.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/Cargo.toml",
     "note": "matrix-sdk feature e2e-encryption."
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/src/session/security.rs"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/src/components/crypto/recovery_setup_view.blp",
     "note": "Recovery setup; key import/export."
    },
    "sliding_sync": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fractal.md",
     "note": "matrix.org: unsupported."
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/src/components/dialogs/auth/mod.rs",
     "note": "OAuth 2.0 (MSC3861 family); matrix.org: supported."
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fractal.md"
    },
    "threads": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fractal.md"
    },
    "spaces": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fractal.md",
     "note": "matrix.org: unsupported."
    },
    "voip_1to1": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fractal.md"
    },
    "group_calls": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fractal.md"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/src/session/room/timeline/event/mod.rs"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/src/session/room/timeline/event/mod.rs"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/src/session/room/timeline/event/mod.rs"
    },
    "polls": "not-found",
    "custom_emoji": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fractal.md",
     "note": "matrix.org: image_packs unsupported."
    },
    "stickers": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/src/session/room/timeline/event/mod.rs",
     "note": "Displays stickers."
    },
    "location": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/src/session_view/room_history/message_row/location.rs",
     "note": "Displays location messages."
    },
    "voice_messages": "not-found",
    "rich_text_editor": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/src/session_view/room_history/message_toolbar/composer_parser.rs",
     "note": "Markdown composer with mention pills."
    },
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/src/session/room/mod.rs",
     "note": "Follows tombstones."
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/src/session_view/room_details/permissions/permissions_subpage.rs"
    },
    "accessibility": {
     "value": "not-found",
     "how": null,
     "source": null,
     "note": "GTK accessibility; no project-specific statement found."
    },
    "translations": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/po",
     "note": "GNOME translation platform (Damned Lies); about 50 po files."
    },
    "telemetry": {
     "value": "none-found",
     "how": "code",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/Cargo.toml"
    },
    "default_homeserver": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/fractal.md",
     "note": "The user enters a homeserver; no default found in code."
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/CONTRIBUTING.md",
     "note": "Rust + GTK 4 + Meson/Flatpak build; GPL-3.0-or-later."
    }
   },
   "ai": {
    "policy": {
     "value": "banned",
     "quote": "Contributions must not include content generated by large language models or other probabilistic tools like ChatGPT, Claude, and Copilot. [...] This ban of LLM-generated content applies to all parts of the projects, including, but not limited to, code, documentation, issues, and artworks.",
     "source": "https://gitlab.gnome.org/World/fractal/-/blob/9fbc72834ad43746028008ea33878ea9fd2a82d6/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits among 224 non-bot commits in the last 365 days.",
      "An AGENTS.md exists, but it is a deterrent (it tells agents to make no changes), not a sign of AI use; the scanner's config-only rule should not apply."
     ],
     "collector_override": "its AGENTS.md is a refusal that tells agents to make no changes, so it is not evidence of AI use."
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    },
    "funder_policy": [
     {
      "funder": "NLnet Foundation (NGI0 PET fund)",
      "grant": "https://nlnet.nl/project/Fractal/",
      "policy": "https://nlnet.nl/foundation/policies/generativeAI/archive/",
      "value": "none-found",
      "grant_start": "2020-10",
      "grant_end": "2022-09",
      "grant_source": "https://nlnet.nl/project/Fractal/",
      "policy_version": "none; NLnet's first GenAI policy (1.0) came into force on 2025-12-08",
      "quote": null,
      "scope": "work delivered within the grant (end-to-end encryption through matrix-rust-sdk)",
      "transition": "The grant ended (2022-09) before NLnet had a GenAI policy, so no version binds it.",
      "transparency": "not applicable",
      "checked": "2026-11-05"
     }
    ]
   },
   "icon": {
    "file": "fractal.webp",
    "source": "https://gitlab.gnome.org/uploads/-/system/project/avatar/147/fractal-avatar.png?v=1793694055",
    "licence": null,
    "note": "the repository's avatar on gitlab.gnome.org",
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Beta. Fractal began as a fork of Fest.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 224,
     "share_365d": 0,
     "suggested_dev_usage": "config-only",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 36,
    "authors_90d": 9,
    "authors_all": 130,
    "authors_by_quarter": {
     "2023-Q1": 21,
     "2023-Q2": 19,
     "2023-Q3": 15,
     "2023-Q4": 22,
     "2024-Q1": 29,
     "2024-Q2": 23,
     "2024-Q3": 26,
     "2024-Q4": 25,
     "2025-Q1": 23,
     "2025-Q2": 18,
     "2025-Q3": 19,
     "2025-Q4": 12,
     "2026-Q1": 13,
     "2026-Q2": 24,
     "2026-Q3": 11,
     "2026-Q4": 3
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 11,
    "commits_365d": 224,
    "commits_90d": 55,
    "commits_all": 3299,
    "first_commit": "2021-02-04T19:46:36+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Meson": 0.0067,
     "Rust": 0.9789,
     "Sass": 0.0135
    },
    "last_commit": "2026-10-31T23:20:57+00:00",
    "last_tag": "14.3",
    "last_tag_date": "2026-10-26T15:42:12+01:00",
    "last_tag_repo": "https://gitlab.gnome.org/World/fractal",
    "licence_detected": null,
    "loc": {
     "HTML": 49,
     "Meson": 467,
     "Rust": 68465,
     "Sass": 943,
     "Shell": 14
    },
    "loc_total": 69938,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 4,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     1,
     1,
     3,
     1,
     4,
     1,
     11,
     6,
     4,
     1,
     0,
     8,
     4,
     0,
     1,
     5,
     7,
     12,
     2,
     9,
     16,
     6,
     6,
     4,
     1,
     11,
     12,
     8,
     4,
     3,
     4,
     3,
     2,
     2,
     1,
     1,
     2,
     1,
     7,
     10,
     1,
     0,
     7,
     0,
     11,
     2,
     9,
     0,
     5,
     3,
     1
    ]
   }
  },
  {
   "slug": "gatho-bot",
   "name": "Gatho Matrix Bot",
   "category": "bot",
   "kind": "events",
   "homepage": "https://gatho.party",
   "summary": "A bot that syncs RSVP reactions and announcements between Matrix rooms and the Gatho event-hosting site.",
   "repos": [
    {
     "url": "https://github.com/gatho-party/gatho-matrix-bot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "events (RSVP sync with gatho.party)",
     "how": "claimed",
     "source": "https://github.com/gatho-party/gatho-matrix-bot/blob/29046c00fb881d74237b51d09542ce7b90841c1a/README.md"
    },
    "framework": {
     "value": "matrix-bot-sdk",
     "how": "code",
     "source": "https://github.com/gatho-party/gatho-matrix-bot/blob/29046c00fb881d74237b51d09542ce7b90841c1a/package.json"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/gatho-party/gatho-matrix-bot/blob/29046c00fb881d74237b51d09542ce7b90841c1a/README.md"
    },
    "hosting": {
     "value": "hosted",
     "how": "claimed",
     "source": "https://github.com/gatho-party/gatho-matrix-bot/blob/29046c00fb881d74237b51d09542ce7b90841c1a/README.md",
     "note": "runs with the hosted gatho.party service"
    },
    "config": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/gatho-party/gatho-matrix-bot/blob/29046c00fb881d74237b51d09542ce7b90841c1a/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/gatho-party/gatho-matrix-bot/blob/29046c00fb881d74237b51d09542ce7b90841c1a/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2022-05-07), counted at 29046c00fb88"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "gatho-bot.webp",
    "source": "https://avatars.githubusercontent.com/u/98011905?v=4&s=256",
    "licence": null,
    "note": "the gatho-party organisation's avatar on GitHub",
    "checked": "2026-11-05"
   },
   "notes": "Last commit 2022-05-07. The community-space room points to the gatho-party organisation; the website repo (gatho-party/gatho-website) is separate and not covered.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 22,
    "first_commit": "2022-01-25T23:28:08+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 0.0036,
     "TypeScript": 0.9964
    },
    "last_commit": "2022-05-07T01:05:50+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "GPL-3.0",
    "loc": {
     "JavaScript": 4,
     "TypeScript": 1118
    },
    "loc_total": 1122,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "glitch-in-the-matrix",
   "name": "Glitch in the Matrix",
   "category": "sdk",
   "kind": "Rust",
   "homepage": "https://github.com/eeeeeta/glitch-in-the-matrix",
   "summary": "An early Rust Matrix client library.",
   "repos": [
    {
     "url": "https://github.com/eeeeeta/glitch-in-the-matrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "CC0-1.0",
   "fork_of": null,
   "distribution": [
    "crates.io"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at d6787b8015d9"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Glitch in the Matrix\" (Obsolete, Rust, maintainer: eta). Last non-bot commit 2022-09-08, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at d6787b8015d9 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "go-msc1929",
   "name": "go-msc1929",
   "category": "sdk",
   "kind": "Go",
   "homepage": "https://github.com/etkecc/go-msc1929",
   "summary": "A small Go client for /.well-known/matrix/support (MSC1929, with MSC4121 and MSC4265 roles), by etke.cc.",
   "repos": [
    {
     "url": "https://github.com/etkecc/go-msc1929",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [],
   "licence": "LGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "go-module"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 8 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at fff8385d519a"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"go-msc1929\" (Stable, Go, maintainer: etke.cc). Last non-bot commit 2026-09-05, 8 non-bot commits in the last year and 1 authors in the last 90 days by our count at fff8385d519a (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "go-neb",
   "name": "Go-NEB",
   "category": "bot",
   "kind": "integration",
   "homepage": "https://github.com/matrix-org/go-neb",
   "summary": "Matrix.org's former extensible Go bot (GitHub, JIRA, RSS, Giphy, …) that powered Element's old integrations; discontinued in favour of matrix-hookshot.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/go-neb",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "integrations (GitHub, JIRA, RSS, image search, …)",
     "how": "claimed",
     "source": "https://github.com/matrix-org/go-neb/blob/3ba3d4600f42d913824ae36cf98d113d6a0d1099/README.md"
    },
    "framework": {
     "value": "mautrix-go",
     "how": "code",
     "source": "https://github.com/matrix-org/go-neb/blob/3ba3d4600f42d913824ae36cf98d113d6a0d1099/go.mod",
     "note": "mautrix-go 0.9 with libolm"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/go-neb/blob/3ba3d4600f42d913824ae36cf98d113d6a0d1099/README.md",
     "note": "depends on libolm for end-to-end encryption"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/matrix-org/go-neb/blob/3ba3d4600f42d913824ae36cf98d113d6a0d1099/README.md"
    },
    "config": {
     "value": "config file or HTTP API",
     "how": "claimed",
     "source": "https://github.com/matrix-org/go-neb/blob/3ba3d4600f42d913824ae36cf98d113d6a0d1099/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/matrix-org/go-neb/blob/3ba3d4600f42d913824ae36cf98d113d6a0d1099/go.mod"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2023-06-28), counted at 3ba3d4600f42"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "README: \"Go-NEB has been discontinued and won't recieve any updates or support.\" Archived on GitHub; last commit 2023-06-28.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 29,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 462,
    "first_commit": "2016-07-29T09:38:22+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0027,
     "Go": 0.9952,
     "Shell": 0.0021
    },
    "last_commit": "2023-06-28T22:10:07+00:00",
    "last_tag": "0.1.2",
    "last_tag_date": "2016-09-21T16:23:57+01:00",
    "last_tag_repo": "https://github.com/matrix-org/go-neb",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 28,
     "Go": 10299,
     "Shell": 22
    },
    "loc_total": 10349,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "go-skype-bridge",
   "name": "go-skype-bridge",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Puppeting bridge between Matrix and Skype in Go, based on the mautrix-go legacy bridge code.",
   "repos": [
    {
     "url": "https://github.com/kelaresg/go-skype-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/skype/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Skype",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/kelaresg/go-skype-bridge/blob/59e27903cd6888399706ec5b7b1757411834990c/go.mod",
     "note": "mautrix-go (legacy)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 59e27903cd68; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2022-08-01; Microsoft shut Skype down in May 2025, so the network is gone. matrix.org still labels it Beta.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 8,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 138,
    "first_commit": "2020-09-02T03:52:34+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0017,
     "Go": 0.9955,
     "Shell": 0.0029
    },
    "last_commit": "2022-08-01T11:18:20+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 14,
     "Go": 8318,
     "Shell": 24
    },
    "loc_total": 8356,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "godot-matrix",
   "name": "godot-matrix",
   "category": "sdk",
   "kind": "C++ (Godot)",
   "homepage": "https://gitlab.com/vurpo/godot-matrix",
   "summary": "A Matrix client module for the Godot engine.",
   "repos": [
    {
     "url": "https://gitlab.com/vurpo/godot-matrix",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at e452be85274d"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"godot-matrix\" (Obsolete, C++, maintainer: vurpo). Last non-bot commit 2021-11-05, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at e452be85274d (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "gomatrix",
   "name": "gomatrix",
   "category": "sdk",
   "kind": "Go",
   "homepage": "https://github.com/matrix-org/gomatrix",
   "summary": "An early Go Matrix client library by Matrix.org.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/gomatrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "go-module"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at ceba4d9f7530"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"gomatrix\" (Obsolete, Go, maintainer: Matrix.org). Last non-bot commit 2022-09-26, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at ceba4d9f7530 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "gomatrix-geir54",
   "name": "goMatrix (geir54)",
   "category": "sdk",
   "kind": "Go",
   "homepage": "https://github.com/geir54/goMatrix",
   "summary": "An early Go Matrix library.",
   "repos": [
    {
     "url": "https://github.com/geir54/goMatrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "MPL-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at f3d986143628"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"goMatrix\" (Obsolete, Go, maintainer: geir54). Last non-bot commit 2016-05-31, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at f3d986143628 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "gomatrixserverlib",
   "name": "gomatrixserverlib",
   "category": "sdk",
   "kind": "Go",
   "homepage": "https://github.com/matrix-org/gomatrixserverlib",
   "summary": "Go library for Matrix federation (server keys, event auth, room versions), used by Dendrite and MRS.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/gomatrixserverlib",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "go-module"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "server",
     "how": "claimed",
     "source": "https://github.com/matrix-org/gomatrixserverlib"
    },
    "used_by": [
     "mrs"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 4 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 4fe595dc7f58"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-07-16, 4 non-bot commits in the last year and 0 authors in the last 90 days by our count at 4fe595dc7f58 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "gomuks",
   "name": "gomuks",
   "category": "client",
   "kind": "web, desktop, terminal",
   "homepage": "https://docs.mau.fi/gomuks/",
   "summary": "A Matrix client in Go on mautrix-go, split into a backend (embeddable or run as a bouncer-like server) and web, Electron, Android and terminal frontends.",
   "repos": [
    {
     "url": "https://github.com/gomuks/gomuks",
     "forge": "github",
     "role": "main"
    },
    {
     "url": "https://github.com/gomuks/android",
     "forge": "github",
     "role": "android"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/gomuks/",
    "other": [
     "sources/community-space.tsv: rooms \"gomuks\" (two, old and new repo)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "web",
    "linux",
    "macos",
    "windows",
    "android",
    "terminal"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [],
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/README.md",
     "note": null
    },
    {
     "os": "linux",
     "tech": "electron",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "github-releases",
       "url": "https://github.com/gomuks/gomuks/releases"
      }
     ],
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/README.md"
    },
    {
     "os": "macos",
     "tech": "electron",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "github-releases",
       "url": "https://github.com/gomuks/gomuks/releases"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/gomuks.md"
    },
    {
     "os": "android",
     "tech": "webview",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/README.md",
     "note": "GeckoView-based wrapper around gomuks web."
    },
    {
     "os": "terminal",
     "tech": "tui",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/README.md",
     "note": "\"still experimental\"."
    }
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "mautrix-go",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/go.mod"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/pkg/hicli/verify.go"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/pkg/hicli/verify.go"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/pkg/hicli/backupupload.go"
    },
    "sliding_sync": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/gomuks.md"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/login/LoginScreen.tsx",
     "note": "OAuth (device code flow types); matrix.org: supported."
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/gomuks.md"
    },
    "threads": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/gomuks.md"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/roomview/SpaceView.tsx"
    },
    "voip_1to1": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/gomuks.md"
    },
    "group_calls": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/widget/ElementCall.tsx",
     "note": "Element Call widget; matrix.org: partial."
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/pkg/hicli/database/upgrades/00-latest-revision.sql"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/pkg/hicli/database/upgrades/00-latest-revision.sql"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/composer/MessageComposer.tsx"
    },
    "polls": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/timeline/content/PollMessageBody.tsx",
     "note": "Displays polls."
    },
    "custom_emoji": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/gomuks.md"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/composer/MessageComposer.tsx"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/timeline/content/LocationMessageBody.tsx"
    },
    "voice_messages": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/api/types/mxtypes.ts"
    },
    "rich_text_editor": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/composer/MessageComposer.tsx"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/timeline/TimelineEvent.tsx"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/pkg/hicli/jsoncmd/commands.go",
     "note": "Pusher registration (for the Android app)."
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/timeline/TimelineView.tsx"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/pkg/hicli/syncwrap.go"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/roomview/CreateRoomView.tsx"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/rightpanel/UserModeration.tsx"
    },
    "accessibility": "not-found",
    "translations": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/gomuks.md",
     "note": "matrix.org: multi_language unsupported."
    },
    "telemetry": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/go.mod"
    },
    "default_homeserver": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/web/src/ui/login/LoginScreen.tsx",
     "note": "No default homeserver found."
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/gomuks/gomuks/blob/3c97ff1343a9a8e6ab86bd85dc7e7161b80397ec/README.md",
     "note": "Go backend plus a React/Vite frontend; several build scripts; AGPL-3.0-or-later."
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. [...] AI should not be used for communicating with humans.",
     "source": "https://docs.mau.fi/bridges/general/contributing.html"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "2 of 767 non-bot commits in the last 365 days carry an AI co-author trailer (GPT-5.5/Codex, Claude Opus 4.6).",
      "cmd/rpcdocgen/README.md: \"The code is AI slop and is not meant to be read by humans\" (a docs generator, not used at runtime).",
      "No agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "gomuks.webp",
    "source": "https://github.com/gomuks/android/blob/c371e8100695665501d073d185eae06a28995b54/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp",
    "licence": "AGPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Beta. CONTRIBUTING.md points to the shared mautrix contributing guide (docs.mau.fi), which has the \"Use of AI\" section. The Android wrapper repo was not cloned.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 3,
     "commits_365d": 830,
     "share_365d": 0.0036,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 3,
      "codex": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 8,
    "authors_90d": 4,
    "authors_all": 45,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 2,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 6,
     "2025-Q1": 4,
     "2025-Q2": 4,
     "2025-Q3": 2,
     "2025-Q4": 2,
     "2026-Q1": 3,
     "2026-Q2": 4,
     "2026-Q3": 5,
     "2026-Q4": 3
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 58,
    "commits_365d": 830,
    "commits_90d": 249,
    "commits_all": 2591,
    "first_commit": "2018-02-24T16:15:45+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C": 0.0012,
     "CSS": 0.0721,
     "Go": 0.4615,
     "HTML": 0.0076,
     "JavaScript": 0.0114,
     "SQL": 0.0182,
     "TypeScript": 0.425
    },
    "last_commit": "2026-11-02T22:57:02+00:00",
    "last_tag": "v0.2610.0",
    "last_tag_date": "2026-10-16T16:34:14+03:00",
    "last_tag_repo": "https://github.com/gomuks/gomuks",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 73,
     "C": 73,
     "C Header": 41,
     "CSS": 4263,
     "Go": 27296,
     "HTML": 447,
     "Java": 916,
     "JavaScript": 688,
     "Kotlin": 2283,
     "Nix": 39,
     "Prolog": 18,
     "SQL": 1077,
     "Shell": 144,
     "TypeScript": 25136,
     "TypeScript Typings": 56
    },
    "loc_total": 62550,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 12,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     6,
     15,
     4,
     23,
     2,
     13,
     12,
     5,
     5,
     12,
     25,
     19,
     0,
     7,
     12,
     11,
     4,
     9,
     13,
     15,
     6,
     10,
     12,
     10,
     5,
     9,
     9,
     16,
     31,
     28,
     15,
     18,
     5,
     3,
     7,
     34,
     60,
     48,
     40,
     18,
     11,
     39,
     13,
     9,
     25,
     17,
     37,
     31,
     22,
     14,
     9,
     7
    ]
   }
  },
  {
   "slug": "gosuto",
   "name": "Gōsuto (gosuto)",
   "category": "client",
   "kind": "terminal",
   "homepage": "https://github.com/MaikBuse/gosuto",
   "summary": "A cyberpunk-styled terminal Matrix client in Rust with Vim motions, E2EE and LiveKit voice calls.",
   "repos": [
    {
     "url": "https://github.com/MaikBuse/gosuto",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "terminal",
    "linux",
    "windows",
    "macos"
   ],
   "apps": [
    {
     "os": "terminal",
     "tech": "tui",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "crates-io",
       "url": "https://crates.io/crates/gosuto"
      },
      {
       "name": "github-releases",
       "url": "https://github.com/MaikBuse/gosuto/releases"
      }
     ],
     "source": "https://github.com/MaikBuse/gosuto/blob/c99d18301fa54878d06f2bf9d98fafeda2fc912c/README.md"
    }
   ],
   "licence": "Apache-2.0 OR MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk 0.16",
     "how": "code",
     "source": "https://github.com/MaikBuse/gosuto/blob/c99d18301fa54878d06f2bf9d98fafeda2fc912c/Cargo.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/MaikBuse/gosuto/blob/c99d18301fa54878d06f2bf9d98fafeda2fc912c/README.md"
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/MaikBuse/gosuto/blob/c99d18301fa54878d06f2bf9d98fafeda2fc912c/README.md"
    },
    "voip_1to1": "not-found",
    "group_calls": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/MaikBuse/gosuto/blob/c99d18301fa54878d06f2bf9d98fafeda2fc912c/README.md",
     "note": "LiveKit-based voice with push-to-talk."
    },
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/MaikBuse/gosuto/blob/c99d18301fa54878d06f2bf9d98fafeda2fc912c/README.md",
     "note": "Member lists and power levels."
    },
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": {
     "value": "none-found",
     "how": null,
     "source": null
    },
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/MaikBuse/gosuto/blob/c99d18301fa54878d06f2bf9d98fafeda2fc912c/README.md",
     "note": "Single Rust crate; Apache-2.0 OR MIT."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits among 217 non-bot commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "gosuto.svg",
    "source": "https://github.com/MaikBuse/gosuto/blob/c99d18301fa54878d06f2bf9d98fafeda2fc912c/assets/logo.svg",
    "licence": "Apache-2.0 OR MIT",
    "note": null,
    "checked": "2026-11-05",
    "backing": "light"
   },
   "notes": "Our reading: beta, one maintainer; last commit 2026-03-29 (slowing).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 217,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 217,
    "commits_90d": 0,
    "commits_all": 217,
    "first_commit": "2026-02-24T12:02:28+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Rust": 0.9995
    },
    "last_commit": "2026-03-29T20:49:04+00:00",
    "last_tag": "v0.11.1",
    "last_tag_date": "2026-03-29T23:13:05+02:00",
    "last_tag_repo": "https://github.com/MaikBuse/gosuto",
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 12,
     "Rust": 23882
    },
    "loc_total": 23894,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 12,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     7,
     93,
     90,
     25,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "gotktrix",
   "name": "gotktrix",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://github.com/diamondburned/gotktrix",
   "summary": "A Matrix client in Go and GTK4; marked obsolete on matrix.org.",
   "repos": [
    {
     "url": "https://github.com/diamondburned/gotktrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/gotktrix/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "linux"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "gtk",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "github-releases",
       "url": "https://github.com/diamondburned/gotktrix/releases"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/gotktrix.md"
    }
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "gotrix (own Go library by the same author)",
     "how": "code",
     "source": "https://github.com/diamondburned/gotktrix/blob/a8f876a383cc34dac18edddbe22be2dd494b8d0c/go.mod"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/diamondburned/gotktrix/blob/a8f876a383cc34dac18edddbe22be2dd494b8d0c/README.md",
     "note": "README feature list: \"[ ] E2EE\"."
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/gotktrix.md"
    },
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/diamondburned/gotktrix/blob/a8f876a383cc34dac18edddbe22be2dd494b8d0c/README.md"
    },
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/diamondburned/gotktrix/blob/a8f876a383cc34dac18edddbe22be2dd494b8d0c/README.md",
     "note": "\"[ ] Send stickers\"."
    },
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days, so no attributed commits; no agent files in the tree."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "gotktrix.webp",
    "source": "https://github.com/diamondburned/gotktrix/blob/a8f876a383cc34dac18edddbe22be2dd494b8d0c/.github/logo.png",
    "licence": "AGPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: \"Obsolete\". Last commit 2023-04-05.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 377,
    "first_commit": "2021-07-23T07:53:25+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9946,
     "Nix": 0.0054
    },
    "last_commit": "2023-04-05T10:48:25+00:00",
    "last_tag": "v0.1.4",
    "last_tag_date": "2022-07-04T12:16:07-07:00",
    "last_tag_repo": "https://github.com/diamondburned/gotktrix",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Go": 15883,
     "Nix": 86
    },
    "loc_total": 15969,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "gotrix",
   "name": "gotrix",
   "category": "sdk",
   "kind": "Go",
   "homepage": "https://github.com/diamondburned/gotrix",
   "summary": "A work-in-progress Go implementation of the client side of the Matrix client-server API, used by gotktrix.",
   "repos": [
    {
     "url": "https://github.com/diamondburned/gotrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "Lane 2 notes (gotktrix)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "go-module"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/diamondburned/gotrix"
    },
    "used_by": [
     "gotktrix"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 0e84da59259c"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2023-04-05, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 0e84da59259c (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "grapevine",
   "name": "Grapevine",
   "category": "server",
   "kind": "homeserver",
   "homepage": "https://grapevine.computer.surgery",
   "summary": "A Rust Matrix homeserver forked from Conduit 0.7.0, aiming at reliability and maintainability.",
   "repos": [
    {
     "url": "https://gitlab.computer.surgery/matrix/grapevine",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "lane prompt",
     "https://grapevine.computer.surgery/#can-i-use-it"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": "conduit",
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Rust",
    "database": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.computer.surgery/matrix/grapevine/-/blob/f82328dcf20e4f4a03e7fce11cb66bb8660e1c80/src/config.rs#L325",
     "note": "RocksDB, SQLite (build features)"
    },
    "federation": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.computer.surgery/matrix/grapevine/-/blob/f82328dcf20e4f4a03e7fce11cb66bb8660e1c80/Cargo.toml#L162",
     "note": "ruma federation-api"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.computer.surgery/matrix/grapevine/-/blob/f82328dcf20e4f4a03e7fce11cb66bb8660e1c80/src/api/client_server/unversioned.rs#L24",
     "versions": [
      "r0.5.0",
      "r0.6.0",
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5"
     ]
    },
    "appservices": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.computer.surgery/matrix/grapevine/-/blob/f82328dcf20e4f4a03e7fce11cb66bb8660e1c80/src/service/appservice.rs"
    },
    "admin_api": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.computer.surgery/matrix/grapevine/-/blob/f82328dcf20e4f4a03e7fce11cb66bb8660e1c80/src/service/admin.rs",
     "note": "admin room commands (inherited from Conduit)"
    },
    "oidc_delegation": {
     "value": "not-found",
     "note": "no reference to MSC3861/2964/2965/2967 found in the code"
    },
    "native_sliding_sync": {
     "value": "not-found",
     "note": "no reference to MSC4186 found in the code"
    },
    "workers_scaling": {
     "value": "not-found"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.computer.surgery/matrix/grapevine/-/blob/f82328dcf20e4f4a03e7fce11cb66bb8660e1c80/src/api/client_server/unversioned.rs#L34",
     "note": "MSC3916: advertised as org.matrix.msc3916.stable in unstable_features"
    },
    "msc": [
     {
      "msc": 2448,
      "state": "unstable",
      "source": "https://gitlab.computer.surgery/matrix/grapevine/-/blob/f82328dcf20e4f4a03e7fce11cb66bb8660e1c80/Cargo.toml#L165",
      "note": "ruma feature unstable-msc2448 (BlurHash) enabled; wiring not checked"
     },
     {
      "msc": 3916,
      "state": "stable",
      "source": "https://gitlab.computer.surgery/matrix/grapevine/-/blob/f82328dcf20e4f4a03e7fce11cb66bb8660e1c80/src/api/client_server/unversioned.rs#L34",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 4029,
      "state": "partial",
      "source": "https://gitlab.computer.surgery/matrix/grapevine/-/blob/f82328dcf20e4f4a03e7fce11cb66bb8660e1c80/src/api/ruma_wrapper/axum.rs#L290",
      "note": "only currently valid verify_keys are used for X-Matrix request validation",
      "as the MSC proposes": null
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "Read from a zip of the main branch the user saved by hand (commit f82328dc, files dated 2026-03-04), so only the file tree was checked: no agent files. The zip carries no git history, so attributed commits were not counted; the collector should recount once the forge is reachable.",
     "checked_at": "f82328dcf20e4f4a03e7fce11cb66bb8660e1c80"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "The project's own docs say it is \"not ready for general use yet\": there are no releases (https://gitlab.computer.surgery/matrix/grapevine/-/issues/18), little user-facing documentation (issue 21), and undocumented breaking changes to the config format (https://gitlab.computer.surgery/matrix/grapevine/-/blob/f82328dcf20e4f4a03e7fce11cb66bb8660e1c80/book/introduction.md#L24). Maturity \"alpha\" is our reading of that. MSC2285 (private read receipts) is marked \"TODO: Implement\" in the code and is not listed. Non-goals include first-party Docker images and macOS / Windows support (book/introduction.md#L65). gitlab.computer.surgery reset every connection from the research session, so the code was read from a zip a person saved by hand, not from a clone.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "gyr",
   "name": "Gyr",
   "category": "sdk",
   "kind": "Python",
   "homepage": "https://github.com/non-Jedi/gyr",
   "summary": "A Python framework for Matrix application services.",
   "repos": [
    {
     "url": "https://github.com/non-Jedi/gyr",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "bridge",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 9f7bfe033b9d"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Gyr\" (Obsolete, Python, maintainer: Adam Beckmeyer). Last non-bot commit 2018-02-27, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 9f7bfe033b9d (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "halcyon",
   "name": "Halcyon",
   "category": "sdk",
   "kind": "Python",
   "homepage": "https://github.com/WesR/Halcyon",
   "summary": "A Matrix bot library inspired by discord.py.",
   "repos": [
    {
     "url": "https://github.com/WesR/Halcyon",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "BSD-3-Clause",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "planned",
     "how": "claimed",
     "source": "https://github.com/WesR/Halcyon/blob/b2b0696f3a2839c87aa688809278c245ea4f607c/README.md",
     "note": "\"Encryption is on the roadmap\""
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 11 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at b2b0696f3a28"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Halcyon\" (Beta, Python, maintainer: Wes Ring). Last non-bot commit 2026-04-12, 11 non-bot commits in the last year and 0 authors in the last 90 days by our count at b2b0696f3a28 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "harmony",
   "name": "Harmony",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A lighter-weight fork of Dendrite; archived.",
   "repos": [
    {
     "url": "https://github.com/neilalexander/harmony",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Servers/Hosting)"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": "dendrite",
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Go",
    "database": "PostgreSQL, SQLite",
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/clientapi/routing/routing.go#L137",
     "versions": [
      "r0.0.1",
      "r0.1.0",
      "r0.2.0",
      "r0.3.0",
      "r0.4.0",
      "r0.5.0",
      "r0.6.1",
      "v1.0",
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.6",
      "v1.7",
      "v1.8"
     ]
    },
    "oidc_delegation": {
     "value": "not-found",
     "note": "no reference to MSC3861/2964/2965/2967 found in the code"
    },
    "native_sliding_sync": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/clientapi/routing/routing.go#L55",
     "note": "only an MSC3575 sliding sync proxy reference found (e.g. the .well-known proxy field), no native MSC4186"
    },
    "workers_scaling": {
     "value": "not-found"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/clientapi/routing/routing.go#L93",
     "note": "MSC3916: stable"
    },
    "msc": [
     {
      "msc": 1234,
      "state": "experimental",
      "flag": "msc12345",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/setup/config/config_mscs.go#L21",
      "note": "behind a config option"
     },
     {
      "msc": 1772,
      "state": "stable",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/roomserver/internal/query/query_room_hierarchy.go#L470",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2285,
      "state": "stable",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/clientapi/routing/routing.go#L92",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2444,
      "state": "experimental",
      "flag": "mscs.mscs: [msc2444]",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/setup/mscs/mscs.go#L46",
      "note": "opt-in via the mscs config list"
     },
     {
      "msc": 2625,
      "state": "unstable",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/are-we-synapse-yet.list#L914",
      "note": "unstable prefix in code"
     },
     {
      "msc": 2753,
      "state": "experimental",
      "flag": "mscs.mscs: [msc2753]",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/setup/mscs/mscs.go#L47",
      "note": "opt-in via the mscs config list"
     },
     {
      "msc": 2836,
      "state": "experimental",
      "flag": "mscs.mscs: [msc2836]",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/setup/mscs/mscs.go#L44",
      "note": "opt-in via the mscs config list"
     },
     {
      "msc": 2946,
      "state": "stable",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/internal/gomatrixserverlib/fclient/federationclient.go#L681",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3083,
      "state": "stable",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/internal/gomatrixserverlib/fclient/federationtypes.go#L273",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3575,
      "state": "unstable",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/clientapi/routing/routing.go#L55",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3667,
      "state": "stable",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/internal/gomatrixserverlib/eventV2.go#L201",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3787,
      "state": "stable",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/internal/gomatrixserverlib/eventV2.go#L200",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3916,
      "state": "stable",
      "source": "https://github.com/neilalexander/harmony/blob/96fb98d7fed68fa7bb71cf879f1f17aace60d59e/clientapi/routing/routing.go#L93",
      "note": "advertised in unstable_features"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "96fb98d7fed68fa7bb71cf879f1f17aace60d59e"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 187,
    "authors_by_quarter": {
     "2023-Q1": 18,
     "2023-Q2": 15,
     "2023-Q3": 11,
     "2023-Q4": 11,
     "2024-Q1": 11,
     "2024-Q2": 2,
     "2024-Q3": 3,
     "2024-Q4": 4,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 2956,
    "first_commit": "2017-01-20T18:25:51+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9954,
     "JavaScript": 0.0016,
     "Python": 0.0019
    },
    "last_commit": "2025-05-18T15:22:29+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 53,
     "Dockerfile": 30,
     "Go": 102001,
     "HTML": 41,
     "JavaScript": 160,
     "Python": 191
    },
    "loc_total": 102476,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "heisenbridge",
   "name": "Heisenbridge",
   "category": "bridge",
   "kind": "bouncer-style bridge",
   "homepage": null,
   "summary": "Bouncer-style IRC bridge: each Matrix user connects to IRC networks individually, managed from an admin room.",
   "repos": [
    {
     "url": "https://github.com/hifi/heisenbridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/irc/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "pypi",
    "docker"
   ],
   "funding": [],
   "features": {
    "network": "IRC",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/hifi/heisenbridge/blob/eb6e2f7f4cf5f915811505356af9f409c7b6faea/setup.cfg",
     "note": "own (Python, mautrix-python for the appservice)"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/hifi/heisenbridge/blob/eb6e2f7f4cf5f915811505356af9f409c7b6faea/README.md",
     "note": "single puppet per user (bouncer); optional relaybot plumbing"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/hifi/heisenbridge/blob/eb6e2f7f4cf5f915811505356af9f409c7b6faea/README.md#L169",
     "note": "\"Heisenbridge currently does not support encryption\""
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/hifi/heisenbridge/blob/eb6e2f7f4cf5f915811505356af9f409c7b6faea/README.md",
     "note": "edits sent to IRC as corrections"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/hifi/heisenbridge/blob/eb6e2f7f4cf5f915811505356af9f409c7b6faea/README.md",
     "note": "channels, tested with 2000 users"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/hifi/heisenbridge/blob/eb6e2f7f4cf5f915811505356af9f409c7b6faea/README.md",
     "note": "server password, SASL plain, CertFP"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD eb6e2f7f4cf5; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "icon": {
    "file": "heisenbridge.svg",
    "source": "https://github.com/hifi/heisenbridge/blob/eb6e2f7f4cf5f915811505356af9f409c7b6faea/logo/heisenbridge.svg",
    "licence": "MIT",
    "note": null,
    "checked": "2026-11-05",
    "backing": "light"
   },
   "notes": "Last commit on master 2025-10-04 (the repo was pushed to in Oct 2026 on another ref). README compares it with matrix-appservice-irc and matterbridge.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 26,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 0,
     "2023-Q3": 5,
     "2023-Q4": 2,
     "2024-Q1": 0,
     "2024-Q2": 4,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 2,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 430,
    "first_commit": "2021-04-12T15:09:39+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0023,
     "Python": 0.9944,
     "Shell": 0.0033
    },
    "last_commit": "2025-10-04T11:09:17+00:00",
    "last_tag": "v1.15.4",
    "last_tag_date": "2025-10-04T14:09:17+03:00",
    "last_tag_repo": "https://github.com/hifi/heisenbridge",
    "licence_detected": "MIT",
    "loc": {
     "Dockerfile": 13,
     "Python": 5689,
     "Shell": 19
    },
    "loc_total": 5721,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "hemppa",
   "name": "Hemppa",
   "category": "bot",
   "kind": "framework",
   "homepage": "https://github.com/vranki/hemppa",
   "summary": "A modular Python bot for Matrix where each feature (calendars, aviation weather, feeds, aliases, …) is a module enabled by chat commands.",
   "repos": [
    {
     "url": "https://github.com/vranki/hemppa",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "general-purpose modular bot (calendars, METAR/TAF, feeds, URL titles, aliases, …)",
     "how": "claimed",
     "source": "https://github.com/vranki/hemppa/blob/9729194bb237a965cb55d4802ca4e6f5dad9a86b/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/vranki/hemppa/blob/9729194bb237a965cb55d4802ca4e6f5dad9a86b/Pipfile"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/vranki/hemppa/blob/9729194bb237a965cb55d4802ca4e6f5dad9a86b/README.md",
     "note": "\"End-to-end encryption is currently not supported by bot\""
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/vranki/hemppa/blob/9729194bb237a965cb55d4802ca4e6f5dad9a86b/README.md",
     "note": "Python or Docker"
    },
    "config": {
     "value": "chat commands (!bot, !help, per-module commands), settings export/import as JSON",
     "how": "claimed",
     "source": "https://github.com/vranki/hemppa/blob/9729194bb237a965cb55d4802ca4e6f5dad9a86b/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/vranki/hemppa/blob/9729194bb237a965cb55d4802ca4e6f5dad9a86b/Pipfile"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2025-04-03), counted at 9729194bb237"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Maturity is our reading: the default branch's last commit is 2025-04-03, none in the last 365 days; the repo is not archived.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 20,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 330,
    "first_commit": "2019-12-09T17:43:06+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0031,
     "Python": 0.9919,
     "Shell": 0.0011,
     "Systemd": 0.0038
    },
    "last_commit": "2025-04-03T20:05:07+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "GPL-3.0",
    "loc": {
     "Dockerfile": 14,
     "Python": 4431,
     "Shell": 5,
     "Systemd": 17
    },
    "loc_total": 4467,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "heorot",
   "name": "Heorot",
   "category": "client",
   "kind": "web, desktop",
   "homepage": "https://github.com/Vitosicz/Heorot",
   "summary": "A Discord-style self-hosted Matrix client (spaces as servers, rooms as channels, voice channels); continued as Jorvik.",
   "repos": [
    {
     "url": "https://github.com/Vitosicz/Heorot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub repository search \"matrix client\" (pushed since 2025-11), 2026-11-05"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/Vitosicz/Heorot/blob/65b3fe2cc09b95e10bc3b1e6adb11ee0a8cfdfaf/README.md"
    },
    {
     "os": "windows",
     "tech": "electron",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/Vitosicz/Heorot/blob/65b3fe2cc09b95e10bc3b1e6adb11ee0a8cfdfaf/README.md"
    }
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": "not-found",
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Vitosicz/Heorot/blob/65b3fe2cc09b95e10bc3b1e6adb11ee0a8cfdfaf/README.md",
     "note": "Self-hosted voice channels."
    },
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Vitosicz/Heorot/blob/65b3fe2cc09b95e10bc3b1e6adb11ee0a8cfdfaf/README.md",
     "note": "Per-space and personal packs."
    },
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits among 14 commits (2026-03-08 to 2026-03-24); no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "README: \"Personal open-source experiment — alpha stage\"; parts derived from Element Web. Superseded by Jorvik (\"a rebrand and continuation of Heorot\").",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 14,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 14,
    "commits_90d": 0,
    "commits_all": 14,
    "first_commit": "2026-03-08T14:14:27+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.1682,
     "JavaScript": 0.0169,
     "TypeScript": 0.8133
    },
    "last_commit": "2026-03-24T18:44:15+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 6229,
     "HTML": 30,
     "JavaScript": 624,
     "TypeScript": 30114,
     "TypeScript Typings": 29
    },
    "loc_total": 37026,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     5,
     3,
     6,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "hghs",
   "name": "hghs",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A minimal Matrix homeserver written in TypeScript.",
   "repos": [
    {
     "url": "https://github.com/heusalagroup/hghs",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-homeserver"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "TypeScript",
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "no commits since 2023-08-12; not cloned"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Last push 2023-08-12 (GitHub API); not cloned or MSC-scanned.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 86,
    "first_commit": "2022-04-23T18:50:30+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0255,
     "JavaScript": 0.0344,
     "Shell": 0.0668,
     "TypeScript": 0.8733
    },
    "last_commit": "2023-08-12T12:59:08+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "MIT",
    "loc": {
     "Dockerfile": 26,
     "JavaScript": 35,
     "Shell": 68,
     "TypeScript": 889
    },
    "loc_total": 1018,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "honoroit",
   "name": "Honoroit",
   "category": "bot",
   "kind": "helpdesk",
   "homepage": "https://github.com/etkecc/honoroit",
   "summary": "A helpdesk bot that turns each user's direct conversation with it into a thread in an operators' room.",
   "repos": [
    {
     "url": "https://github.com/etkecc/honoroit",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "docker",
    "ansible-playbook"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "helpdesk",
     "how": "claimed",
     "source": "https://github.com/etkecc/honoroit/blob/7b0bf404e438ff7f87a346265796e35ac341f24a/README.md"
    },
    "framework": {
     "value": "mautrix-go",
     "how": "code",
     "source": "https://github.com/etkecc/honoroit/blob/7b0bf404e438ff7f87a346265796e35ac341f24a/go.mod"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/honoroit/blob/7b0bf404e438ff7f87a346265796e35ac341f24a/README.md",
     "note": "End-to-End encryption listed in features; built with the goolm tag"
    },
    "hosting": {
     "value": "both",
     "how": "claimed",
     "source": "https://github.com/etkecc/honoroit/blob/7b0bf404e438ff7f87a346265796e35ac341f24a/README.md",
     "note": "self-host (Docker, matrix-docker-ansible-deploy) or a hosted version from etke.cc"
    },
    "config": {
     "value": "environment variables and !ho commands in threads",
     "how": "claimed",
     "source": "https://github.com/etkecc/honoroit/blob/7b0bf404e438ff7f87a346265796e35ac341f24a/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/etkecc/honoroit/blob/7b0bf404e438ff7f87a346265796e35ac341f24a/go.mod"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 14 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 7b0bf404e438"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Agent files found only under vendor/ (third-party Go modules), not counted.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 14,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 5,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 2,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 1,
    "commits_365d": 14,
    "commits_90d": 3,
    "commits_all": 203,
    "first_commit": "2021-12-15T15:16:50+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0046,
     "Go": 0.9954
    },
    "last_commit": "2026-11-03T17:19:12+00:00",
    "last_tag": "v0.9.30",
    "last_tag_date": "2026-03-17T17:26:58+00:00",
    "last_tag_repo": "https://github.com/etkecc/honoroit",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 10,
     "Go": 2179
    },
    "loc_total": 2189,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     1,
     1,
     0,
     0,
     1,
     1,
     1,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     1,
     1,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1
    ]
   }
  },
  {
   "slug": "hydrogen",
   "name": "Hydrogen",
   "category": "client",
   "kind": "web",
   "homepage": "https://hydrogen.element.io",
   "summary": "A lightweight, embeddable Matrix web client by Element with broad browser support; marked obsolete on matrix.org.",
   "repos": [
    {
     "url": "https://github.com/element-hq/hydrogen-web",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/hydrogen/",
    "other": [
     "sources/community-space.tsv: room \"Hydrogen Web (OLD)\""
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "pwa",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "web",
       "url": "https://hydrogen.element.io"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/hydrogen.md"
    }
   ],
   "licence": "AGPL-3.0-only OR LicenseRef-Element-Commercial",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own (Hydrogen's own SDK, also published as hydrogen-view-sdk)",
     "how": "code",
     "source": "https://github.com/element-hq/hydrogen-web/blob/ea5976e40b8d4974890e67bba3c139012044612c/README.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/hydrogen.md"
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/hydrogen.md"
    },
    "threads": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/hydrogen.md"
    },
    "spaces": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/hydrogen.md"
    },
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/hydrogen.md"
    },
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/element-hq/hydrogen-web/blob/ea5976e40b8d4974890e67bba3c139012044612c/README.md",
     "note": "Small codebase meant to be embedded (Chatrix builds on it)."
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "Contributions are judged on their content, not on how they were produced. AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "1 commit in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "hydrogen.webp",
    "source": "https://hydrogen.element.io/assets/icon-maskable.965d12c4.png",
    "licence": null,
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Obsolete. AI policy: Element's organisation-wide policy (element-meta PR 3393, 2026-11-02) covers element-hq repositories, including this one. The repo was relicensed on 2025-01-17 (LICENSE-AGPL-3.0 and LICENSE-COMMERCIAL); matrix.org still lists Apache-2.0, the earlier licence.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 35,
    "authors_by_quarter": {
     "2023-Q1": 6,
     "2023-Q2": 3,
     "2023-Q3": 2,
     "2023-Q4": 2,
     "2024-Q1": 1,
     "2024-Q2": 2,
     "2024-Q3": 3,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 1,
    "commits_90d": 0,
    "commits_all": 4967,
    "first_commit": "2018-12-21T13:35:24+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0521,
     "HTML": 0.0889,
     "JavaScript": 0.4049,
     "Shell": 0.0011,
     "TypeScript": 0.4527
    },
    "last_commit": "2025-11-06T10:43:52+00:00",
    "last_tag": "sdk-v0.3.1",
    "last_tag_date": "2024-10-21T17:27:41+05:30",
    "last_tag_repo": "https://github.com/element-hq/hydrogen-web",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 2872,
     "Dockerfile": 13,
     "HTML": 4898,
     "JavaScript": 22299,
     "Shell": 62,
     "TypeScript": 24930,
     "TypeScript Typings": 1
    },
    "loc_total": 55075,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "iamb",
   "name": "iamb",
   "category": "client",
   "kind": "terminal",
   "homepage": "https://iamb.chat",
   "summary": "A terminal Matrix client with Vim keybindings, written in Rust on the matrix-rust-sdk.",
   "repos": [
    {
     "url": "https://github.com/ulyssa/iamb",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/iamb/",
    "other": [
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "terminal",
    "linux",
    "macos",
    "windows"
   ],
   "apps": [
    {
     "os": "terminal",
     "tech": "tui",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "install page",
       "url": "https://iamb.chat/install.html"
      },
      {
       "name": "github-releases",
       "url": "https://github.com/ulyssa/iamb/releases/"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/iamb.md"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk 0.19.0",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/Cargo.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/Cargo.toml",
     "note": "matrix-sdk feature e2e-encryption."
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/src/verifications.rs"
    },
    "key_backup": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/src/main.rs",
     "note": "Key import/export."
    },
    "sliding_sync": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/Cargo.toml"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/src/oauth.rs",
     "note": "matrix-sdk OAuth authorisation."
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/iamb.md",
     "note": "Profiles in the config file."
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/src/windows/room/scrollback.rs"
    },
    "spaces": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/iamb.md"
    },
    "voip_1to1": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/iamb.md"
    },
    "group_calls": "not-found",
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/src/base.rs"
    },
    "edits": "not-found",
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/src/message/mod.rs"
    },
    "polls": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/src/message/poll.rs",
     "note": "Displays polls."
    },
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/src/worker.rs"
    },
    "room_upgrades": "not-found",
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/src/message/state.rs"
    },
    "accessibility": "not-found",
    "translations": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/iamb.md"
    },
    "telemetry": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/Cargo.toml"
    },
    "default_homeserver": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/src/config/mod.rs",
     "note": "Configured per profile."
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/CONTRIBUTING.md",
     "note": "Single Rust crate, cargo build; Apache-2.0."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "3 of 209 non-bot commits in the last 365 days (about 1.4 %) carry a Claude co-author trailer (for example fdddc5c \"Support pinned events\").",
      "No agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "iamb.svg",
    "source": "https://github.com/ulyssa/iamb/blob/55ad2d3402026e9824dc4fcdd3dce2added05575/docs/iamb.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Beta.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 3,
     "commits_365d": 209,
     "share_365d": 0.0144,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 3
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 24,
    "authors_90d": 17,
    "authors_all": 76,
    "authors_by_quarter": {
     "2023-Q1": 5,
     "2023-Q2": 8,
     "2023-Q3": 3,
     "2023-Q4": 7,
     "2024-Q1": 12,
     "2024-Q2": 10,
     "2024-Q3": 8,
     "2024-Q4": 0,
     "2025-Q1": 2,
     "2025-Q2": 11,
     "2025-Q3": 5,
     "2025-Q4": 5,
     "2026-Q1": 1,
     "2026-Q2": 2,
     "2026-Q3": 18,
     "2026-Q4": 10
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 49,
    "commits_365d": 209,
    "commits_90d": 178,
    "commits_all": 474,
    "first_commit": "2021-07-03T06:22:37+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Nix": 0.0026,
     "Rust": 0.9949,
     "Shell": 0.0026
    },
    "last_commit": "2026-11-04T04:11:06+00:00",
    "last_tag": "latest",
    "last_tag_date": "2026-10-29T22:34:32-04:00",
    "last_tag_repo": "https://github.com/ulyssa/iamb",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Nix": 66,
     "Rust": 25734,
     "Shell": 66
    },
    "loc_total": 25866,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 5,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     4,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     24,
     1,
     1,
     16,
     4,
     11,
     11,
     23,
     31,
     16,
     19,
     16,
     16,
     6,
     8
    ]
   }
  },
  {
   "slug": "jmsdk",
   "name": "jmsdk",
   "category": "sdk",
   "kind": "Java",
   "homepage": "https://github.com/ma1uta/jmsdk",
   "summary": "A Java Matrix SDK.",
   "repos": [
    {
     "url": "https://github.com/ma1uta/jmsdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "maven"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at f159926598b4"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"jmsdk\" (Obsolete, Java, maintainer: ma1uta). Last non-bot commit 2021-05-27, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at f159926598b4 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "jorvik",
   "name": "Jorvik",
   "category": "client",
   "kind": "web, desktop",
   "homepage": "https://github.com/jorvikapp/jorvik",
   "summary": "A Discord-style self-hosted Matrix client continuing Heorot, with voice and video channels, screen sharing and E2EE on by default.",
   "repos": [
    {
     "url": "https://github.com/jorvikapp/jorvik",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub repository search \"matrix client\" (pushed since 2025-11), 2026-11-05"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/jorvikapp/jorvik/blob/b4fc6f793464350c8def0e20dec3c64bf4a40a67/README.md",
     "note": "Docker Compose self-hosting."
    },
    {
     "os": "windows",
     "tech": "electron",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/jorvikapp/jorvik/blob/b4fc6f793464350c8def0e20dec3c64bf4a40a67/package.json"
    },
    {
     "os": "macos",
     "tech": "electron",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/jorvikapp/jorvik/blob/b4fc6f793464350c8def0e20dec3c64bf4a40a67/package.json"
    },
    {
     "os": "linux",
     "tech": "electron",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/jorvikapp/jorvik/blob/b4fc6f793464350c8def0e20dec3c64bf4a40a67/package.json"
    }
   ],
   "licence": "AGPL-3.0",
   "fork_of": "heorot",
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own client logic derived from Element, matrix-sdk-crypto-wasm for E2EE",
     "how": "code",
     "source": "https://github.com/jorvikapp/jorvik/blob/b4fc6f793464350c8def0e20dec3c64bf4a40a67/apps/web/package.json"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/jorvikapp/jorvik/blob/b4fc6f793464350c8def0e20dec3c64bf4a40a67/README.md",
     "note": "On by default."
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/jorvikapp/jorvik/blob/b4fc6f793464350c8def0e20dec3c64bf4a40a67/apps/web/package.json",
     "note": "LiveKit voice/video channels with screen sharing."
    },
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/jorvikapp/jorvik/blob/b4fc6f793464350c8def0e20dec3c64bf4a40a67/README.md"
    },
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No attributed commits among 347 commits since 2026-03-08; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "jorvik.webp",
    "source": "https://github.com/jorvikapp/jorvik/blob/b4fc6f793464350c8def0e20dec3c64bf4a40a67/docs/jorvik-icon.png",
    "licence": "AGPL-3.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Continuation of Heorot; keeps com.heorot.* event types for compatibility.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 347,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 2,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 0,
     "2026-Q3": 2,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 109,
    "commits_365d": 347,
    "commits_90d": 333,
    "commits_all": 347,
    "first_commit": "2026-03-08T14:14:27+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.1329,
     "JavaScript": 0.0167,
     "Shell": 0.001,
     "TypeScript": 0.848
    },
    "last_commit": "2026-11-02T15:27:00+00:00",
    "last_tag": "v1.0.29",
    "last_tag_date": "2026-10-27T22:02:41+01:00",
    "last_tag_repo": "https://github.com/jorvikapp/jorvik",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 8785,
     "HTML": 36,
     "JavaScript": 1103,
     "Shell": 68,
     "TypeScript": 56074,
     "TypeScript Typings": 59
    },
    "loc_total": 66125,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 29,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     5,
     3,
     6,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     46,
     24,
     53,
     59,
     43,
     49,
     0,
     56,
     3
    ]
   }
  },
  {
   "slug": "journal",
   "name": "journal",
   "category": "client",
   "kind": "web (blogging)",
   "homepage": "https://github.com/lukebarnard1/journal",
   "summary": "An unfinished blogging platform concept built on Matrix; no longer maintained.",
   "repos": [
    {
     "url": "https://github.com/lukebarnard1/journal",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv: room \"journal - announcements\" (Not-chat Clients)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/lukebarnard1/journal/blob/12e812625c33172094b37af42d3ed4ad8b45a2a2/README.md"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": "not-found",
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days, so no attributed commits; no agent files in the tree."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "README: \"journal is no longer maintained\". Last commit 2019-12-22. A not-chat client.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 210,
    "first_commit": "2016-10-16T22:25:18+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0445,
     "Dockerfile": 0.0062,
     "JavaScript": 0.9493
    },
    "last_commit": "2019-12-22T19:19:01+00:00",
    "last_tag": "v1.3",
    "last_tag_date": "2019-10-26T16:29:25+01:00",
    "last_tag_repo": "https://github.com/lukebarnard1/journal",
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 65,
     "Dockerfile": 9,
     "JavaScript": 1387
    },
    "loc_total": 1461,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "jsynapse",
   "name": "jSynapse",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A Java implementation of a Matrix homeserver.",
   "repos": [
    {
     "url": "https://github.com/swarmcom/jSynapse",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Java",
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "no commits since 2015-04-24; not cloned"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "matrix.org labels it \"Obsolete\". Last push 2015-04-24 (GitHub API); not cloned or MSC-scanned.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 57,
    "first_commit": "2015-03-17T23:59:31+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0042,
     "Java": 0.9958
    },
    "last_commit": "2015-04-24T16:04:28+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 9,
     "Java": 2143
    },
    "loc_total": 2152,
    "main_language": "Java",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "kazarma",
   "name": "Kazarma",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://kazar.ma",
   "summary": "Bridge between Matrix and the ActivityPub fediverse, written in Elixir; Matrix users appear as ActivityPub actors and the reverse.",
   "repos": [
    {
     "url": "https://gitlab.com/kazarma/kazarma",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Kazarma)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [
    "https://nlnet.nl/project/Kazarma-Release/",
    "https://nlnet.nl/project/Kazarma/"
   ],
   "features": {
    "network": "ActivityPub (Mastodon, Pleroma, …)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/kazarma/kazarma/-/blob/46dbc8d29006896b6b14057c1d0feb39bd768865/mix.exs",
     "note": "own (Elixir, matrix_app_service.ex)"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://docs.kazar.ma",
     "note": "Matrix users as ActivityPub actors and ActivityPub actors as Matrix ghosts"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 46dbc8d29006; no AI-attributed commits among 12 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    },
    "funder_policy": [
     {
      "funder": "NLnet Foundation (NGI0 Entrust fund)",
      "grant": "https://nlnet.nl/project/Kazarma-Release/",
      "policy": "https://nlnet.nl/foundation/policies/generativeAI/archive/",
      "value": "restricted",
      "grant_start": "2023-02",
      "grant_end": "2026-01",
      "grant_source": "https://gitlab.com/kazarma/kazarma/-/blob/46dbc8d29006896b6b14057c1d0feb39bd768865/README.md#L137",
      "policy_version": "1.0, in force from 2025-12-08 (1.1 from 2026-01-26), for the grant's last weeks only",
      "quote": "In any case, outcomes purely generated by AI are not allowed to be submitted as work eligible for payment (as part) of the grant. … Use of genAI should be disclosed and transparent.",
      "scope": "work delivered within the grant, and only for milestones started after 2025-12-08",
      "transition": "The grant ran from 2023-02 to 2026-01, so it overlapped version 1.0 for about seven weeks and never version 2.0. Version 1.1 adds that for projects whose agreement was signed before 2025-12-08 \"logging is not required retroactively\" and a personalised transparency plan can be agreed. An earlier grant (Kazarma, NGI0 Discovery, 2020-04 to 2022-10, https://nlnet.nl/project/Kazarma/) predates every version.",
      "transparency": "no GenAI stance found in the README at 46dbc8d (it names the NLnet grant only)",
      "checked": "2026-11-05"
     }
    ]
   },
   "icon": {
    "file": "kazarma.svg",
    "source": "https://gitlab.com/kazarma/kazarma/-/blob/46dbc8d29006896b6b14057c1d0feb39bd768865/assets/static/favicon.svg",
    "licence": "AGPL-3.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Translations on Hosted Weblate. 12 commits in the last year, last 2025-12-24. The matrix.org ActivityPub page has no entries; found through the community space.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 10,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 7,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 2,
     "2024-Q1": 2,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 0,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 10,
    "commits_90d": 0,
    "commits_all": 664,
    "first_commit": "2020-09-04T02:38:31+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0093,
     "Elixir": 0.9295,
     "HEEx": 0.0441,
     "HTML": 0.0041,
     "JavaScript": 0.0119
    },
    "last_commit": "2025-12-24T12:45:29+00:00",
    "last_tag": "v1.0.0-alpha.1",
    "last_tag_date": "2023-11-07T11:36:23+01:00",
    "last_tag_repo": "https://gitlab.com/kazarma/kazarma",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 109,
     "Dockerfile": 11,
     "Elixir": 10929,
     "HEEx": 518,
     "HTML": 48,
     "JavaScript": 140,
     "Shell": 3
    },
    "loc_total": 11758,
    "main_language": "Elixir",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     10,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "kazv",
   "name": "kazv",
   "category": "client",
   "kind": "desktop, mobile",
   "homepage": "https://kazv.chat",
   "summary": "A convergent Qt/Kirigami Matrix client built on libkazv, the project's own C++ Matrix library.",
   "repos": [
    {
     "url": "https://r.lily-is.land/the-kazv-project/kazv",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/kazv/",
    "other": [
     "sources/community-space.tsv: room \"The Kazv Project\""
    ]
   },
   "maturity": "beta",
   "platforms": [
    "linux"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "appimage",
       "url": "https://kazv.chat"
      },
      {
       "name": "flatpak",
       "url": "https://kazv.chat"
      }
     ],
     "source": "https://r.lily-is.land/the-kazv-project/kazv/src/commit/2f1ad32c77463562868ad2806928b9c2a16094f1/README.md"
    }
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "libkazv (own C++ library)",
     "how": "code",
     "source": "https://r.lily-is.land/the-kazv-project/kazv/src/commit/2f1ad32c77463562868ad2806928b9c2a16094f1/CMakeLists.txt"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/kazv.md"
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/kazv.md"
    },
    "threads": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/kazv.md",
     "note": "matrix.org: unknown."
    },
    "spaces": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/kazv.md"
    },
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/kazv.md"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://r.lily-is.land/the-kazv-project/kazv/src/commit/2f1ad32c77463562868ad2806928b9c2a16094f1/src/matrix-room.hpp"
    },
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": {
     "value": "partial",
     "how": "code",
     "source": "https://r.lily-is.land/the-kazv-project/kazv/src/commit/2f1ad32c77463562868ad2806928b9c2a16094f1/src/l10n",
     "note": "Four locales (en, zh-Hans, cmn-Hans, hi)."
    },
    "telemetry": {
     "value": "none-found",
     "how": null,
     "source": null
    },
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://r.lily-is.land/the-kazv-project/kazv/src/commit/2f1ad32c77463562868ad2806928b9c2a16094f1/README.md",
     "note": "C++/Qt 6/KF6 with CMake; needs libkazv; AGPL-3.0-or-later. Primary code review on Phorge."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "https://r.lily-is.land/the-kazv-project/kazv/commit/6232d174ed332b85004d457d7bf8115861bf0dd5",
      "Integration pass: 1 of 61 non-bot commits in the last 365 days (2026-09-02) says \"The code of this diff was generated using OpenCode with the MiMo V2.5 Free model … I reviewed it myself.\" The contributing page (https://kazv.chat/en/contributing/, read 2026-11-05) has no statement on AI."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "kazv.webp",
    "source": "https://r.lily-is.land/the-kazv-project/kazv/src/commit/2f1ad32c77463562868ad2806928b9c2a16094f1/icons/kazv.ico",
    "licence": "AGPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Beta. The contributing guide is at https://kazv.chat/en/contributing/ (not checked for an AI policy).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 1,
     "commits_365d": 61,
     "share_365d": 0.0164,
     "suggested_dev_usage": "occasional",
     "tools": {
      "opencode": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 2,
    "authors_all": 6,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 2,
     "2023-Q3": 2,
     "2023-Q4": 1,
     "2024-Q1": 3,
     "2024-Q2": 3,
     "2024-Q3": 3,
     "2024-Q4": 2,
     "2025-Q1": 0,
     "2025-Q2": 2,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 3,
     "2026-Q2": 2,
     "2026-Q3": 2,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 4,
    "commits_365d": 61,
    "commits_90d": 16,
    "commits_all": 790,
    "first_commit": "2020-12-06T05:44:22+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C++": 0.2759,
     "C++ Header": 0.0712,
     "CMake": 0.0182,
     "JavaScript": 0.124,
     "Lisp": 0.0013,
     "Python": 0.0036,
     "QML": 0.4979,
     "Shell": 0.0059
    },
    "last_commit": "2026-10-22T13:52:10+00:00",
    "last_tag": "v0.7.0",
    "last_tag_date": "2026-09-04T00:42:32-04:00",
    "last_tag_repo": "https://r.lily-is.land/the-kazv-project/kazv",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "BASH": 4,
     "C++": 9242,
     "C++ Header": 2385,
     "CMake": 609,
     "JavaScript": 4155,
     "Lisp": 43,
     "Makefile": 33,
     "Perl": 28,
     "Python": 122,
     "QML": 16676,
     "Shell": 198
    },
    "loc_total": 33495,
    "main_language": "QML",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     2,
     1,
     0,
     2,
     3,
     0,
     0,
     1,
     3,
     2,
     1,
     0,
     1,
     0,
     2,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     1,
     0,
     5,
     3,
     3,
     2,
     3,
     7,
     0,
     2,
     3,
     4,
     1,
     1,
     1,
     0,
     0,
     0,
     3,
     1,
     0
    ]
   }
  },
  {
   "slug": "keryx",
   "name": "Keryx",
   "category": "client",
   "kind": "mobile",
   "homepage": "https://github.com/CocaKova/keryx",
   "summary": "An Android app for watching and steering a self-hosted Hermes AI agent, talking to its gateway directly or through a Matrix homeserver.",
   "repos": [
    {
     "url": "https://github.com/CocaKova/keryx",
     "forge": "github",
     "role": "android"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub repository search \"matrix client\" (pushed since 2025-11), 2026-11-05"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "android"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "native",
     "min_os": "8.0",
     "status": "beta",
     "stores": [],
     "source": "https://github.com/CocaKova/keryx/blob/097c27355136c64d6a9c6a77f84cbe88278c175d/Hermes-Chat/app/build.gradle.kts",
     "note": "minSdk 26."
    }
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "Trixnity",
     "how": "code",
     "source": "https://github.com/CocaKova/keryx/blob/097c27355136c64d6a9c6a77f84cbe88278c175d/Hermes-Chat/app/build.gradle.kts"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/CocaKova/keryx/blob/097c27355136c64d6a9c6a77f84cbe88278c175d/README.md",
     "note": "Single Android/Kotlin app; MIT; purpose-built for Hermes agents."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "462 of 495 non-bot commits since 2026-06-28 (about 93 %) carry a Claude co-author trailer."
     ]
    },
    "in_product": {
     "value": "core",
     "note": "The app exists to chat with and steer a Hermes AI agent (plans, tool cards, reasoning, approvals); Matrix is one of its transports.",
     "source": "https://github.com/CocaKova/keryx/blob/097c27355136c64d6a9c6a77f84cbe88278c175d/README.md"
    }
   },
   "icon": {
    "file": "keryx.webp",
    "source": "https://github.com/CocaKova/keryx/blob/097c27355136c64d6a9c6a77f84cbe88278c175d/Hermes-Chat/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
    "licence": "MIT",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "A Matrix client only in part: it uses Matrix rooms as a transport to an AI agent gateway. Listed so the AI-in-product axis has the full picture; lane 7 may prefer to show it under tools.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 462,
     "commits_365d": 495,
     "share_365d": 0.9333,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 462,
      "codex": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 156,
    "commits_365d": 495,
    "commits_90d": 376,
    "commits_all": 495,
    "first_commit": "2026-06-29T04:16:44+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Kotlin": 0.9263,
     "Python": 0.0661,
     "Shell": 0.0065
    },
    "last_commit": "2026-11-04T19:44:13+00:00",
    "last_tag": "v3.0.0",
    "last_tag_date": "2026-11-04T13:45:02-06:00",
    "last_tag_repo": "https://github.com/CocaKova/keryx",
    "licence_detected": "MIT",
    "loc": {
     "Batch": 61,
     "Kotlin": 87133,
     "Prolog": 46,
     "Python": 6218,
     "Shell": 609
    },
    "loc_total": 94067,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 64,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     4,
     62,
     13,
     17,
     1,
     22,
     0,
     15,
     53,
     24,
     39,
     5,
     27,
     16,
     46,
     64,
     23,
     21,
     43
    ]
   }
  },
  {
   "slug": "ketesa",
   "name": "Ketesa",
   "category": "tool",
   "kind": "admin-ui",
   "homepage": "https://github.com/etkecc/ketesa",
   "summary": "A web admin UI for Synapse (and Matrix Authentication Service), formerly etke.cc's Synapse Admin fork, with server actions, scheduling and branding options.",
   "repos": [
    {
     "url": "https://github.com/etkecc/ketesa",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": "synapse-admin",
   "distribution": [
    "docker",
    "tarball",
    "ansible-playbook"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "homeserver admin UI (Synapse admin API, MAS)",
     "how": "claimed",
     "source": "https://github.com/etkecc/ketesa/blob/7d6b0786e1bc71ca98049ff5da517946ef256c55/README.md"
    },
    "framework": {
     "value": "own (react-admin, talks to the Synapse and MAS admin APIs from the browser)",
     "how": "code",
     "source": "https://github.com/etkecc/ketesa/blob/7d6b0786e1bc71ca98049ff5da517946ef256c55/AGENTS.md"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/etkecc/ketesa/blob/7d6b0786e1bc71ca98049ff5da517946ef256c55/README.md",
     "note": "not applicable: an admin API client"
    },
    "hosting": {
     "value": "both",
     "how": "claimed",
     "source": "https://github.com/etkecc/ketesa/blob/7d6b0786e1bc71ca98049ff5da517946ef256c55/README.md",
     "note": "self-host (static files or Docker) or the hosted cloud.ketesa.app build"
    },
    "config": {
     "value": "config.json and per-user preferences in the UI",
     "how": "claimed",
     "source": "https://github.com/etkecc/ketesa/blob/7d6b0786e1bc71ca98049ff5da517946ef256c55/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/etkecc/ketesa/blob/7d6b0786e1bc71ca98049ff5da517946ef256c55/AGENTS.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "agent file: AGENTS.md",
      "1 of 337 non-bot commits in the last 365 days carry an AI attribution (0.3%), counted at 7d6b0786e1bc",
      "tools named in attributions: claude",
      "example: 2c367f323496 (Co-Authored-By: Claude)",
      "2 merged pull request(s) since 2025-11-05 whose description explicitly discloses AI help (squash merges can drop this from git history): https://github.com/etkecc/ketesa/pull/1380 (Written with the help of Claude); https://github.com/etkecc/ketesa/pull/1109 (Generated with [Claude)",
      "below the 1 % threshold for occasional; set to occasional because AI-attributed commits or AI-disclosing pull requests exist (lane 7 may revise)",
      "git history alone undercounts: two merged external PRs disclose Claude in their descriptions (#1109 \"Generated with Claude Code\", #1380 \"Written with the help of Claude\") but were squash-merged without trailers; AGENTS.md (agent instructions) added by the lead maintainer on 2026-10-24. The lead maintainer's own commits (282 of 337 non-bot commits) carry no AI attribution, so their use, if any, is not visible; attribution is a lower bound"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "ketesa.webp",
    "source": "https://github.com/etkecc/ketesa/blob/7d6b0786e1bc71ca98049ff5da517946ef256c55/public/images/logo.webp",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "\"the evolution of Synapse Admin\" (matrix.org listing); it began as a fork of Awesome-Technologies/synapse-admin. AGENTS.md was added on 2026-10-24. CONTRIBUTING has no statement on AI-made contributions.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 1,
     "commits_365d": 327,
     "share_365d": 0.0031,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 16,
    "authors_90d": 3,
    "authors_all": 48,
    "authors_by_quarter": {
     "2023-Q1": 5,
     "2023-Q2": 0,
     "2023-Q3": 4,
     "2023-Q4": 1,
     "2024-Q1": 5,
     "2024-Q2": 6,
     "2024-Q3": 5,
     "2024-Q4": 5,
     "2025-Q1": 3,
     "2025-Q2": 9,
     "2025-Q3": 3,
     "2025-Q4": 4,
     "2026-Q1": 8,
     "2026-Q2": 4,
     "2026-Q3": 4,
     "2026-Q4": 3
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 7,
    "commits_365d": 327,
    "commits_90d": 23,
    "commits_all": 920,
    "first_commit": "2018-11-22T08:04:17+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "HTML": 0.0129,
     "JavaScript": 0.0028,
     "TypeScript": 0.9558,
     "TypeScript Typings": 0.0266
    },
    "last_commit": "2026-11-03T07:36:18+00:00",
    "last_tag": "v1.5.2",
    "last_tag_date": "2026-10-24T17:31:13+01:00",
    "last_tag_repo": "https://github.com/etkecc/ketesa",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Bazel": 32,
     "CSS": 39,
     "Dockerfile": 25,
     "HTML": 651,
     "JavaScript": 143,
     "SQL": 2,
     "TypeScript": 48269,
     "TypeScript Typings": 1342
    },
    "loc_total": 50503,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/etkecc/ketesa/blob/7d6b0786e1bc71ca98049ff5da517946ef256c55/.github/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 14,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     1,
     2,
     3,
     2,
     4,
     1,
     1,
     2,
     2,
     7,
     3,
     15,
     23,
     6,
     4,
     8,
     6,
     22,
     40,
     43,
     19,
     23,
     16,
     9,
     1,
     1,
     3,
     2,
     2,
     4,
     3,
     7,
     3,
     7,
     2,
     1,
     1,
     2,
     2,
     2,
     1,
     4,
     1,
     2,
     1,
     1,
     3,
     3,
     2,
     2,
     1,
     1
    ]
   }
  },
  {
   "slug": "koma",
   "name": "Koma / Continuum",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://github.com/koma-im/koma",
   "summary": "A pure Kotlin desktop Matrix client (later renamed Continuum).",
   "repos": [
    {
     "url": "https://github.com/koma-im/koma",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org's former Gatsby project list (gatsby/content/projects/clients/ in matrix-org/matrix.org history)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "linux"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/koma-im/koma/blob/25a5487c693f88606374b12d09215bca87c76189/README.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": "not-found",
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "koma.webp",
    "source": "https://github.com/koma-im/koma/blob/25a5487c693f88606374b12d09215bca87c76189/src/main/resources/icon/koma.png",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Old matrix.org maturity: Alpha. Last commit 2020-08-18.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 10,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 450,
    "first_commit": "2017-09-05T11:50:31+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.004,
     "CSS": 0.0033,
     "Java": 0.0043,
     "Kotlin": 0.9776,
     "Shell": 0.0101
    },
    "last_commit": "2020-08-18T03:34:11+00:00",
    "last_tag": "0.9.45",
    "last_tag_date": "2020-08-18T12:23:54+09:00",
    "last_tag_repo": "https://github.com/koma-im/koma",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Batch": 61,
     "CSS": 51,
     "Gradle": 11,
     "Java": 65,
     "Kotlin": 14933,
     "Shell": 154
    },
    "loc_total": 15275,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "komai",
   "name": "Komai",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://komai.chat",
   "summary": "A desktop-first Qt/QML Matrix client by etke.cc, a fork of Nheko rebuilt around the Rust matrix-sdk, developed largely with AI coding agents.",
   "repos": [
    {
     "url": "https://github.com/etkecc/komai",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/komai/",
    "other": [
     "PLAN.md extra sources (listed there under bots and tools; matrix.org lists it as a client)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "linux",
    "windows",
    "macos"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "flatpak",
       "url": "https://github.com/etkecc/komai/releases"
      },
      {
       "name": "snap",
       "url": "https://github.com/etkecc/komai/releases"
      },
      {
       "name": "aur",
       "url": "https://aur.archlinux.org/packages/komai"
      },
      {
       "name": "appimage",
       "url": "https://github.com/etkecc/komai/releases"
      }
     ],
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/README.md"
    },
    {
     "os": "windows",
     "tech": "qt",
     "min_os": "10 22H2",
     "status": "beta",
     "stores": [
      {
       "name": "zip",
       "url": "https://github.com/etkecc/komai/releases"
      }
     ],
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/README.md"
    },
    {
     "os": "macos",
     "tech": "qt",
     "min_os": "13.3",
     "status": "beta",
     "stores": [
      {
       "name": "homebrew",
       "url": "https://github.com/etkecc/homebrew-komai"
      },
      {
       "name": "dmg",
       "url": "https://github.com/etkecc/komai/releases"
      }
     ],
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/README.md",
     "note": "Apple Silicon only, not notarised."
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": "nheko",
   "distribution": [
    "aur",
    "homebrew",
    "snap",
    "appimage"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk 0.19.0 (Rust core via FFI, C++/QML UI)",
     "how": "code",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/src/rust/Cargo.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/src/rust/Cargo.toml",
     "note": "matrix-sdk feature e2e-encryption."
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/src/encryption/SelfVerificationStatus.cpp"
    },
    "key_backup": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/docs/user-guide/features/encryption-keys.md"
    },
    "sliding_sync": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/src/matrix/backend/MatrixBackendRuntimeService.h",
     "note": "Code comments mention sliding sync; not confirmed which mode is used."
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/src/auth/LoginPageDiscovery.cpp"
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/docs/user-guide/features/application-profiles.md",
     "note": "Via application profiles."
    },
    "threads": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/docs/user-guide/features/threads.md",
     "note": "\"Discord-style threads\"."
    },
    "spaces": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/docs/user-guide/features/communities-sidebar.md"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/docs/user-guide/features/legacy-calls.md",
     "note": "Legacy 1:1 calls on Linux and Windows builds, not macOS."
    },
    "group_calls": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/docs/user-guide/features/element-call.md",
     "note": "Element Call / MatrixRTC built in."
    },
    "reactions": "not-found",
    "edits": "not-found",
    "replies": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/README.md"
    },
    "polls": "not-found",
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/src/rust/src/matrix_backend/image_packs_legacy.rs"
    },
    "stickers": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/docs/user-guide/features/stickers.md",
     "note": "\"Sending stickers from the composer is not supported.\""
    },
    "location": "not-found",
    "voice_messages": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/docs/user-guide/features/voice-transcription.md",
     "note": "Voice messages, plus optional speech-to-text."
    },
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/src/rust/src/matrix_backend/runtime_room_list/enrich.rs"
    },
    "presence": "not-found",
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/src/matrix/backend/MatrixBackendRuntimeServiceTimeline.cpp"
    },
    "moderation_tools": "not-found",
    "accessibility": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/README.md",
     "note": "Built-in themes tuned for WCAG AA contrast."
    },
    "translations": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/docs/maintainers/translations.md",
     "note": "30+ languages, with AI-assisted gap filling."
    },
    "telemetry": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/src/app/MainApplication.cpp"
    },
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/README.md",
     "note": "C++/QML + Rust (CMake, Cargo, just); GPL-3.0-or-later, no CLA."
    }
   },
   "ai": {
    "policy": {
     "value": "encouraged",
     "quote": "Anyone can use AI and send Pull Requests for new features and bugfixes. However, large changes require engineering judgment [...] If you're not comfortable reviewing and defending the code your AI produces, please submit an Issue instead.",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/docs/user-guide/ai.md"
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "README: \"Komai is built with AI\"; docs/user-guide/ai.md: \"Komai is a largely AI-vibe-engineered Matrix chat application\" (Claude Code and Codex).",
      "About 1,575 of 3,564 non-bot commits in the last 365 days (about 44 %) carry an AI co-author trailer, mostly Claude.",
      "CLAUDE.md and AGENTS.md at the repo root; Claude-assisted translation tooling in bin/translations/."
     ]
    },
    "in_product": {
     "value": "optional",
     "note": "Optional voice transcription (speech-to-text) through any OpenAI-compatible API, cloud or self-hosted; a local MCP server lets AI hosts such as Claude Code read and act on a running profile.",
     "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/docs/user-guide/features/voice-transcription.md"
    }
   },
   "icon": {
    "file": "komai.webp",
    "source": "https://github.com/etkecc/komai/blob/5de517eb7cdfca10704dec1d1faa6945917eebf2/resources/komai.svg",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Beta. PLAN.md lists Komai among bots and tools (lane 5); it is a chat client, so lane 2 writes it. Lane 5 should not add a second komai file.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 2,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 1575,
     "commits_365d": 3564,
     "share_365d": 0.4419,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 1574,
      "copilot": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 11,
    "authors_90d": 4,
    "authors_all": 175,
    "authors_by_quarter": {
     "2023-Q1": 23,
     "2023-Q2": 7,
     "2023-Q3": 7,
     "2023-Q4": 15,
     "2024-Q1": 8,
     "2024-Q2": 12,
     "2024-Q3": 6,
     "2024-Q4": 4,
     "2025-Q1": 4,
     "2025-Q2": 3,
     "2025-Q3": 6,
     "2025-Q4": 2,
     "2026-Q1": 6,
     "2026-Q2": 6,
     "2026-Q3": 4,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 41,
    "commits_365d": 3564,
    "commits_90d": 103,
    "commits_all": 8341,
    "first_commit": "2017-04-05T23:06:42+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0214,
     "C++": 0.0972,
     "CMake": 0.0043,
     "CSS": 0.0011,
     "JavaScript": 0.0015,
     "Python": 0.008,
     "QML": 0.0868,
     "Rust": 0.0631,
     "Shell": 0.0018,
     "TypeScript": 0.7133
    },
    "last_commit": "2026-10-25T04:05:29+00:00",
    "last_tag": "v2026.10.25.0",
    "last_tag_date": "2026-10-25T06:05:29+02:00",
    "last_tag_repo": "https://github.com/etkecc/komai",
    "licence_detected": "GPL-3.0",
    "loc": {
     "BASH": 362,
     "C Header": 13888,
     "C++": 62993,
     "CMake": 2772,
     "CSS": 745,
     "Dockerfile": 20,
     "Fish": 268,
     "HTML": 44,
     "JavaScript": 966,
     "Objective C++": 264,
     "Python": 5173,
     "QML": 56268,
     "Rust": 40907,
     "Shell": 1149,
     "TypeScript": 462297
    },
    "loc_total": 648116,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 40,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     1,
     1,
     5,
     160,
     541,
     398,
     170,
     234,
     264,
     359,
     239,
     187,
     114,
     209,
     202,
     124,
     77,
     25,
     17,
     1,
     9,
     48,
     28,
     16,
     14,
     5,
     0,
     11,
     9,
     6,
     24,
     1,
     3,
     5,
     3,
     10,
     8,
     9,
     21,
     4,
     0
    ]
   }
  },
  {
   "slug": "konheko",
   "name": "konheko",
   "category": "client",
   "kind": "mobile",
   "homepage": "https://openrepos.net/content/deepbluev7/konheko",
   "summary": "A small, unfinished Matrix client for Sailfish OS built on mtxclient, the library behind Nheko.",
   "repos": [
    {
     "url": "https://nheko.im/nheko-reborn/konheko",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv: room \"konheko\" (Chat Clients)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [],
   "apps": [
    {
     "os": "sailfish",
     "tech": "qt",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "openrepos",
       "url": "https://openrepos.net/content/deepbluev7/konheko"
      }
     ],
     "source": "https://nheko.im/nheko-reborn/konheko/-/blob/065884e3b47919a0b92611630b1919155dd5c385/README.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "mtxclient",
     "how": "code",
     "source": "https://nheko.im/nheko-reborn/konheko/-/blob/065884e3b47919a0b92611630b1919155dd5c385/README.md"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://nheko.im/nheko-reborn/konheko/-/blob/065884e3b47919a0b92611630b1919155dd5c385/README.md",
     "note": "README \"Missing features\": \"No E2EE support\"."
    },
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days, so no attributed commits; no agent files in the tree."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "konheko.svg",
    "source": "https://nheko.im/nheko-reborn/konheko/-/blob/065884e3b47919a0b92611630b1919155dd5c385/icons/harbour-konheko.svg",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "README: \"still very much WIP and you probably shouldn't use it yet\". Last commit 2021-07-07.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 156,
    "first_commit": "2019-03-30T12:35:51+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.1274,
     "C++": 0.4548,
     "Meson": 0.0208,
     "QML": 0.2632,
     "Shell": 0.002,
     "TypeScript": 0.1312
    },
    "last_commit": "2021-07-07T15:12:41+00:00",
    "last_tag": "0.0.6",
    "last_tag_date": "2021-05-23T17:23:03+02:00",
    "last_tag_repo": "https://nheko.im/nheko-reborn/konheko",
    "licence_detected": "GPL-3.0",
    "loc": {
     "C Header": 503,
     "C++": 1795,
     "CMake": 2,
     "Meson": 82,
     "QML": 1039,
     "Shell": 8,
     "TypeScript": 518
    },
    "loc_total": 3947,
    "main_language": "C++",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "koushi",
   "name": "Koushi (koushi-matrix)",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://github.com/shinaoka/koushi-matrix",
   "summary": "A Tauri desktop Matrix client on the Rust matrix-sdk for multilingual (CJK) use, with multi-account tabs, local encrypted search and an MCP server for AI assistants.",
   "repos": [
    {
     "url": "https://github.com/shinaoka/koushi-matrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub repository search \"matrix client\" (pushed since 2025-11), 2026-11-05"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "macos",
    "windows",
    "linux"
   ],
   "apps": [
    {
     "os": "macos",
     "tech": "tauri",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "dmg",
       "url": "https://github.com/shinaoka/koushi-matrix/releases/latest"
      }
     ],
     "source": "https://github.com/shinaoka/koushi-matrix/blob/a653d79a85bbd7e84f0d6e943d6f93f0078324bc/README.md",
     "note": "Apple Silicon."
    },
    {
     "os": "windows",
     "tech": "tauri",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/shinaoka/koushi-matrix/blob/a653d79a85bbd7e84f0d6e943d6f93f0078324bc/README.md",
     "note": "\"Untested\", unsigned."
    },
    {
     "os": "linux",
     "tech": "tauri",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/shinaoka/koushi-matrix/blob/a653d79a85bbd7e84f0d6e943d6f93f0078324bc/README.md",
     "note": "\"Untested\" AppImage."
    }
   ],
   "licence": "Apache-2.0 OR MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk (Rust core, Tauri shell)",
     "how": "code",
     "source": "https://github.com/shinaoka/koushi-matrix/blob/a653d79a85bbd7e84f0d6e943d6f93f0078324bc/README.md"
    },
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/shinaoka/koushi-matrix/blob/a653d79a85bbd7e84f0d6e943d6f93f0078324bc/README.md",
     "note": "One tab per account."
    },
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/shinaoka/koushi-matrix/blob/a653d79a85bbd7e84f0d6e943d6f93f0078324bc/README.md",
     "note": "Can send notifications by email or ServerChan from the user's own computer."
    },
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/shinaoka/koushi-matrix/blob/a653d79a85bbd7e84f0d6e943d6f93f0078324bc/README.md",
     "note": "English, Japanese, Simplified and Traditional Chinese, Korean."
    },
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "619 of about 3,360 non-bot commits since 2026-06-11 (about 18 %) carry an AI co-author trailer, mostly Claude.",
      "CLAUDE.md, AGENTS.md, llms.txt, .claude/skills/, .agents/, .opencode/ in the tree; REPOSITORY_RULES.md describes a main agent and subagents."
     ]
    },
    "in_product": {
     "value": "optional",
     "note": "Local MCP server (\"Let AI assistants connect\" setting) so Claude Code, Codex and other MCP clients can search, summarise and reply to messages.",
     "source": "https://github.com/shinaoka/koushi-matrix/blob/a653d79a85bbd7e84f0d6e943d6f93f0078324bc/docs/help/ai-assistants.md"
    }
   },
   "icon": {
    "file": "koushi.svg",
    "source": "https://github.com/shinaoka/koushi-matrix/blob/32daf539a679521e847d8127570ee29ffba296f6/apps/desktop/src/assets/koushi-logo.svg",
    "licence": "Apache-2.0 OR MIT",
    "note": null,
    "checked": "2026-11-05",
    "backing": "light"
   },
   "notes": "README tagline: \"A desktop Matrix client for many languages, and for your AI assistant.\"",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 5,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 619,
     "commits_365d": 3364,
     "share_365d": 0.184,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 617,
      "cursor": 2
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 5,
    "authors_90d": 5,
    "authors_all": 5,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 2,
     "2026-Q3": 4,
     "2026-Q4": 5
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 727,
    "commits_365d": 3364,
    "commits_90d": 2150,
    "commits_all": 3364,
    "first_commit": "2026-06-11T01:22:19+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0169,
     "JavaScript": 0.0338,
     "Rust": 0.6794,
     "TypeScript": 0.2691
    },
    "last_commit": "2026-11-05T05:23:44+00:00",
    "last_tag": "v0.33.1",
    "last_tag_date": "2026-11-05T12:19:08+09:00",
    "last_tag_repo": "https://github.com/shinaoka/koushi-matrix",
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 26,
     "CSS": 10935,
     "Dockerfile": 49,
     "HTML": 209,
     "JavaScript": 21887,
     "Powershell": 95,
     "Python": 46,
     "Rust": 440369,
     "Shell": 66,
     "TypeScript": 174437,
     "TypeScript Typings": 8
    },
    "loc_total": 648127,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 54,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     34,
     311,
     171,
     81,
     66,
     245,
     16,
     117,
     149,
     132,
     232,
     402,
     210,
     107,
     50,
     81,
     175,
     193,
     285,
     178,
     53,
     76
    ]
   }
  },
  {
   "slug": "langbot",
   "name": "LangBot",
   "category": "bot",
   "kind": "ai-assistant",
   "homepage": "https://langbot.app",
   "summary": "A multi-platform platform for LLM chat bots and agents (QQ, WeChat, Telegram, Discord, Matrix and more), managed from a web dashboard.",
   "repos": [
    {
     "url": "https://github.com/langbot-app/LangBot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, repositories sorted by stars, 2026-11-05"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "pypi",
    "helm"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "AI assistant / agent platform (multi-network; Matrix is one adapter)",
     "how": "claimed",
     "source": "https://github.com/langbot-app/LangBot/blob/33e482a35744aeafc345241e03a0c1825180824b/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/langbot-app/LangBot/blob/33e482a35744aeafc345241e03a0c1825180824b/src/langbot/pkg/platform/sources/matrix.py"
    },
    "e2ee": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/langbot-app/LangBot/blob/33e482a35744aeafc345241e03a0c1825180824b/src/langbot/pkg/platform/sources/matrix.py",
     "note": "no encryption handling found in the Matrix adapter"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/langbot-app/LangBot/blob/33e482a35744aeafc345241e03a0c1825180824b/README.md",
     "note": "Docker Compose, manual, Kubernetes"
    },
    "config": {
     "value": "web dashboard, HTTP API, MCP endpoint and CLI (lbctl)",
     "how": "claimed",
     "source": "https://github.com/langbot-app/LangBot/blob/33e482a35744aeafc345241e03a0c1825180824b/README.md"
    },
    "ai_backend": {
     "value": "OpenAI, Anthropic, DeepSeek, Google Gemini, xAI, Moonshot, Zhipu AI, Ollama, LM Studio, Dify and others",
     "how": "claimed",
     "source": "https://github.com/langbot-app/LangBot/blob/33e482a35744aeafc345241e03a0c1825180824b/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "agent file: AGENTS.md",
      "agent file: CLAUDE.md",
      "agent file: skills/AGENTS.md",
      "bot author copilot-swe-agent[bot]: 8 commits in the last 365 days",
      "152 of 2108 non-bot commits in the last 365 days carry an AI attribution (7.2%), counted at 33e482a35744",
      "tools named in attributions: claude",
      "example: 0ef32210df56 (Co-authored-by: Claude)",
      "example: db17132728c0 (Co-authored-by: Claude)",
      "39 merged pull request(s) since 2025-11-05 whose description explicitly discloses AI help (squash merges can drop this from git history): https://github.com/langbot-app/LangBot/pull/2862 (Generated with [Claude); https://github.com/langbot-app/LangBot/pull/2859 (Generated with [Claude); https://github.com/langbot-app/LangBot/pull/2858 (Generated with [Claude); https://github.com/langbot-app/LangBot/pull/2740 (Generated with [Claude)",
      "README: AGENTS.md is symlinked to CLAUDE.md and the project calls itself \"agent-friendly by design\""
     ]
    },
    "in_product": {
     "value": "core",
     "note": "The product connects LLMs and agent runners to chat platforms.",
     "source": "https://github.com/langbot-app/LangBot/blob/33e482a35744aeafc345241e03a0c1825180824b/README.md"
    }
   },
   "icon": {
    "file": "langbot.svg",
    "source": "https://github.com/langbot-app/LangBot/blob/33e482a35744aeafc345241e03a0c1825180824b/plugins/misc/WordFSRS/assets/icon.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "18,730 stars; mostly Chinese-language community. Matrix is one of many platform adapters. Found by GitHub search; not on matrix.org's list.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 5,
     "ai_bot_commits_365d": 53,
     "attributed_commits_365d": 150,
     "commits_365d": 1900,
     "share_365d": 0.0789,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 91,
      "copilot": 62,
      "cursor": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 70,
    "authors_90d": 42,
    "authors_all": 127,
    "authors_by_quarter": {
     "2023-Q1": 11,
     "2023-Q2": 5,
     "2023-Q3": 4,
     "2023-Q4": 4,
     "2024-Q1": 2,
     "2024-Q2": 5,
     "2024-Q3": 9,
     "2024-Q4": 4,
     "2025-Q1": 17,
     "2025-Q2": 18,
     "2025-Q3": 12,
     "2025-Q4": 16,
     "2026-Q1": 17,
     "2026-Q2": 19,
     "2026-Q3": 33,
     "2026-Q4": 24
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 353,
    "commits_365d": 1900,
    "commits_90d": 798,
    "commits_all": 5004,
    "first_commit": "2022-12-07T08:48:32+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0026,
     "HTML": 0.0096,
     "JavaScript": 0.0433,
     "MDX": 0.0555,
     "Python": 0.6432,
     "TypeScript": 0.2442
    },
    "last_commit": "2026-11-04T15:48:48+00:00",
    "last_tag": "v4.11.4",
    "last_tag_date": "2026-10-29T13:43:43+00:00",
    "last_tag_repo": "https://github.com/langbot-app/LangBot",
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 385,
     "CSS": 1491,
     "DOT": 115,
     "Dockerfile": 47,
     "HTML": 5409,
     "JavaScript": 24512,
     "MDX": 31414,
     "Makefile": 18,
     "Mako": 18,
     "Python": 363904,
     "Shell": 297,
     "Systemd": 19,
     "TypeScript": 138167,
     "TypeScript Typings": 9
    },
    "loc_total": 565805,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 53,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     45,
     23,
     30,
     31,
     34,
     9,
     27,
     23,
     22,
     12,
     6,
     20,
     19,
     15,
     27,
     52,
     15,
     36,
     31,
     30,
     46,
     31,
     7,
     21,
     20,
     11,
     13,
     37,
     4,
     7,
     53,
     29,
     59,
     20,
     28,
     14,
     96,
     22,
     57,
     18,
     16,
     58,
     48,
     64,
     70,
     48,
     108,
     27,
     87,
     123,
     78,
     57
    ]
   }
  },
  {
   "slug": "lettermail-bridge",
   "name": "Lettermail Bridge",
   "category": "bridge",
   "kind": "other",
   "homepage": null,
   "summary": "Archived experiment to send physical letters from Matrix.",
   "repos": [
    {
     "url": "https://github.com/t2bot/lettermail-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Lettermail Bridge (ARCHIVED))"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Postal mail",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/t2bot/lettermail-bridge/blob/a8beb0d88ac90f31cda21f184cc40b87fb416d92/package.json",
     "note": "own (Node.js)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD a8beb0d88ac9; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2021-02-22; community space room marked ARCHIVED. GitHub archived flag not seen in search.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 16,
    "first_commit": "2021-01-02T19:20:04+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.085,
     "JavaScript": 0.0326,
     "TypeScript": 0.8824
    },
    "last_commit": "2021-02-23T04:30:45+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 73,
     "JavaScript": 28,
     "TypeScript": 758
    },
    "loc_total": 859,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "libcmatrix",
   "name": "libcmatrix",
   "category": "sdk",
   "kind": "C (GObject)",
   "homepage": "https://source.puri.sm/Librem5/libcmatrix",
   "summary": "A Matrix protocol library in C using GObject, by Purism; the base of Chatty's Matrix support.",
   "repos": [
    {
     "url": "https://source.puri.sm/Librem5/libcmatrix",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "linux"
   ],
   "licence": "LGPL-2.1-only",
   "fork_of": null,
   "distribution": [
    "debian"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://source.puri.sm/Librem5/libcmatrix/-/blob/5999b7afcb02b459fe13a2b93ab018f3af6d2b05/meson.build",
     "note": "libolm"
    },
    "crypto": "libolm",
    "sliding_sync": {
     "value": "not-found",
     "how": "code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code"
    },
    "threads": {
     "value": "not-found",
     "how": "code"
    },
    "spaces": {
     "value": "not-found",
     "how": "code"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "chatty"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 5999b7afcb02"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"libcmatrix\" (Beta, C, maintainer: not given). Last non-bot commit 2025-10-20, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 5999b7afcb02 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "libkazv",
   "name": "libkazv",
   "category": "sdk",
   "kind": "C++",
   "homepage": "https://kazv.chat",
   "summary": "A Matrix client SDK in C++ built on lager and value-oriented design, the base of the kazv client.",
   "repos": [
    {
     "url": "https://r.lily-is.land/the-kazv-project/libkazv",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "Lane 2 notes (kazv)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "windows",
    "macos",
    "linux"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://r.lily-is.land/the-kazv-project/libkazv/src/commit/4d1c8b10a7fd9a859dc74ed2bec29bc12e51963b/cmake/Findvodozemac.cmake",
     "note": "vodozemac"
    },
    "crypto": "vodozemac",
    "sliding_sync": {
     "value": "not-found",
     "how": "code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code"
    },
    "threads": {
     "value": "not-found",
     "how": "code"
    },
    "spaces": {
     "value": "partial",
     "how": "code",
     "source": "https://r.lily-is.land/the-kazv-project/libkazv/src/commit/4d1c8b10a7fd9a859dc74ed2bec29bc12e51963b/src/api/csapi/space_hierarchy.hpp",
     "note": "generated hierarchy API only"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "kazv"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "1 of 37 non-bot commits in the last 365 days carry an AI attribution (2.7 %), counted at 4d1c8b10a7fd",
      "https://r.lily-is.land/the-kazv-project/libkazv/commit/51c5366380 (opencode)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "icon": {
    "file": "libkazv.webp",
    "source": "https://r.lily-is.land/the-kazv-project/kazv/src/commit/2f1ad32c77463562868ad2806928b9c2a16094f1/icons/kazv.ico",
    "licence": "AGPL-3.0-or-later",
    "note": "the kazv project's logo, from the kazv client's repository (libkazv is its library)",
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"libkazv\" (Beta, C++, maintainer: The Kazv Project). Last non-bot commit 2026-10-24, 37 non-bot commits in the last year and 1 authors in the last 90 days by our count at 4d1c8b10a7fd (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "libolm",
   "name": "libolm",
   "category": "sdk",
   "kind": "C / C++",
   "homepage": "https://gitlab.matrix.org/matrix-org/olm",
   "summary": "Matrix's first implementation of the Olm and Megolm ratchets in C and C++; deprecated in favour of vodozemac.",
   "repos": [
    {
     "url": "https://gitlab.matrix.org/matrix-org/olm",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "npm",
    "pypi"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.matrix.org/matrix-org/olm/-/blob/6d4b5b07887821a95b144091c8497d09d377f985/README.md#L12",
     "note": "Olm and Megolm; README: \"IMPORTANT: libolm is now deprecated.\""
    },
    "crypto": "own (libolm)",
    "sliding_sync": {
     "value": "not-found",
     "note": "not applicable"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not applicable"
    },
    "threads": {
     "value": "not-found",
     "note": "not applicable"
    },
    "spaces": {
     "value": "not-found",
     "note": "not applicable"
    },
    "purpose": {
     "value": "crypto",
     "how": "claimed",
     "source": "https://gitlab.matrix.org/matrix-org/olm"
    },
    "used_by": [
     "libcmatrix",
     "mautrix-go",
     "mautrix-python",
     "mtxclient",
     "trixnity"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 6d4b5b078878"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2024-07-31, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 6d4b5b078878 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "libquotient",
   "name": "libQuotient",
   "category": "sdk",
   "kind": "C++ (Qt)",
   "homepage": "https://quotient-im.github.io/libQuotient/",
   "summary": "A Qt 6 library for cross-platform Matrix clients, used by NeoChat, Quaternion and Spectral.",
   "repos": [
    {
     "url": "https://github.com/quotient-im/libQuotient",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "windows",
    "macos",
    "linux",
    "android"
   ],
   "licence": "LGPL-2.1-only",
   "fork_of": null,
   "distribution": [
    "flathub",
    "aur"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/quotient-im/libQuotient/blob/d8150bd555554ff87fe15111bbd0ea0172ee3de4/Quotient/crypto-sdk/Cargo.toml#L18",
     "note": "a Rust crypto-sdk module on matrix-sdk-crypto 0.16 (vodozemac); libolm still referenced in connection.cpp and CI"
    },
    "crypto": "matrix-sdk-crypto (vodozemac)",
    "sliding_sync": {
     "value": "not-found",
     "how": "code",
     "note": "no MSC4186 or MSC3575 code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code",
     "note": "no MSC2965 / auth_metadata code"
    },
    "threads": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/quotient-im/libQuotient/blob/d8150bd555554ff87fe15111bbd0ea0172ee3de4/Quotient/events/eventrelation.h#L28",
     "note": "m.thread relation type; no thread timeline found"
    },
    "spaces": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/quotient-im/libQuotient/blob/d8150bd555554ff87fe15111bbd0ea0172ee3de4/Quotient/csapi/space_hierarchy.h",
     "note": "generated hierarchy API only"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://quotient-im.github.io/libQuotient/"
    },
    "used_by": [
     "neochat",
     "quaternion",
     "spectral",
     "umatriks"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 121 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at d8150bd55555"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "icon": {
    "file": "libquotient.webp",
    "source": "https://github.com/quotient-im/libQuotient/blob/d8150bd555554ff87fe15111bbd0ea0172ee3de4/logo.png",
    "licence": "LGPL-2.1-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-09-08, 121 non-bot commits in the last year and 3 authors in the last 90 days by our count at d8150bd55555 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "ligase",
   "name": "Ligase",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A cloud-native Matrix homeserver in Go by Finogeeks.",
   "repos": [
    {
     "url": "https://github.com/finogeeks/Ligase",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Go",
    "database": "PostgreSQL",
    "federation": {
     "value": "not-found"
    },
    "oidc_delegation": {
     "value": "not-found",
     "note": "no reference to MSC3861/2964/2965/2967 found in the code"
    },
    "native_sliding_sync": {
     "value": "not-found",
     "note": "no reference to MSC4186 found in the code"
    },
    "workers_scaling": {
     "value": "not-found"
    },
    "media_auth": {
     "value": "not-found",
     "note": "no reference to MSC3916 found in the code"
    },
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "9835270b055a80602ecff9037274aad8e9542fb4"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "ligase.webp",
    "source": "https://github.com/finogeeks/Ligase/blob/9835270b055a80602ecff9037274aad8e9542fb4/logo/ligase_480_480.png",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org labels it \"Obsolete\"; last commit 2021-09-22.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 24,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 363,
    "first_commit": "2017-01-20T18:25:51+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9978,
     "Shell": 0.0011
    },
    "last_commit": "2021-09-22T08:34:16+00:00",
    "last_tag": "6.1.8",
    "last_tag_date": "2023-10-08T11:09:03+08:00",
    "last_tag_repo": "https://github.com/finogeeks/Ligase",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "BASH": 44,
     "Dockerfile": 21,
     "Go": 114432,
     "Makefile": 67,
     "Shell": 122
    },
    "loc_total": 114686,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "lightning",
   "name": "Lightning",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://www.lightning-matrix.org",
   "summary": "A native Qt 6/QML desktop Matrix client on the official Rust matrix-sdk, with local search of encrypted rooms and MatrixRTC group calls.",
   "repos": [
    {
     "url": "https://github.com/Mizerd/lightning",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/lightning/",
    "other": [
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "linux",
    "windows",
    "macos"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/org.lightning_matrix.Lightning"
      },
      {
       "name": "github-releases",
       "url": "https://github.com/Mizerd/lightning/releases/latest"
      }
     ],
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md",
     "note": "Also AppImage, deb, rpm, snap, Nix flake."
    },
    {
     "os": "windows",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "github-releases",
       "url": "https://github.com/Mizerd/lightning/releases/latest"
      }
     ],
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md",
     "note": "Unsigned."
    },
    {
     "os": "macos",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "github-releases",
       "url": "https://github.com/Mizerd/lightning/releases/latest"
      }
     ],
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md",
     "note": "Unsigned; calls not tested on macOS."
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "flathub",
    "snap",
    "appimage"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk (Rust FFI bridge, C++/QML UI)",
     "how": "code",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "cross_signing": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "key_backup": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md",
     "note": "Key backup restore."
    },
    "sliding_sync": "not-found",
    "oidc_auth": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md",
     "note": "Browser OAuth 2.0 / OIDC sign-in."
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "threads": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "spaces": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "voip_1to1": "not-found",
    "group_calls": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md",
     "note": "MatrixRTC audio, camera and screen share, interoperable with Element Call."
    },
    "reactions": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "replies": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "polls": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "stickers": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "location": "not-found",
    "voice_messages": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md"
    },
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md",
     "note": "Eleven languages including Arabic."
    },
    "telemetry": {
     "value": "none-found",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/README.md",
     "note": "\"No telemetry. No analytics or crash reporting.\""
    },
    "default_homeserver": "not-found",
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/CONTRIBUTING.md",
     "note": "Qt 6 + C++20 + Rust with CMake and Nix; GPL-3.0-or-later. Development happens on a private GitLab that force-pushes to the GitHub mirror."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "CLAUDE.md: \"the authoritative operating guide for Claude Code, Codex, and other coding agents working in this repository\"; CONTRIBUTING.md points contributors to it.",
      "CLAUDE.md records a 2026-08-11 history rewrite \"stripping AI co-author/session trailers so the GitHub mirror credits only him\", so attributed commits cannot be counted (0 of about 2,730 in the last 365 days after the rewrite).",
      "Earlier .claude/agents/*.md role definitions and an AGENTS.md were removed on 2026-08-17 (per CLAUDE.md)."
     ],
     "collector_override": "the project rewrote its history on 2026-08-11 to strip AI co-author trailers (stated in its CLAUDE.md), so the commit count reads zero; CLAUDE.md is the working guide for coding agents."
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "lightning.webp",
    "source": "https://github.com/Mizerd/lightning/blob/41fecea7b2212ebaa934ce4a46929d6d10881aaf/data/icons/hicolor/512x512/apps/lightning.png",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org maturity: Beta. dev_usage is set to regular from the project's own CLAUDE.md, not from trailer counts, which were removed from history.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 2727,
     "share_365d": 0,
     "suggested_dev_usage": "config-only",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 8,
    "authors_90d": 8,
    "authors_all": 8,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 4,
     "2026-Q4": 6
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 1084,
    "commits_365d": 2727,
    "commits_90d": 2362,
    "commits_all": 2727,
    "first_commit": "2026-07-04T18:31:24+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C": 0.2037,
     "C Header": 0.028,
     "C++": 0.2971,
     "CMake": 0.005,
     "Python": 0.0051,
     "QML": 0.0792,
     "Rust": 0.0624,
     "Shell": 0.0084,
     "TypeScript": 0.31
    },
    "last_commit": "2026-11-05T00:21:08+00:00",
    "last_tag": "v0.10.4",
    "last_tag_date": "2026-11-02T10:46:45+00:00",
    "last_tag_repo": "https://github.com/Mizerd/lightning",
    "licence_detected": "GPL-3.0",
    "loc": {
     "BASH": 19,
     "C": 272847,
     "C Header": 37442,
     "C++": 397961,
     "CMake": 6741,
     "Dockerfile": 302,
     "JavaScript": 147,
     "Makefile": 6,
     "Nix": 519,
     "Objective C++": 540,
     "Powershell": 84,
     "Python": 6872,
     "QML": 106021,
     "Rust": 83556,
     "Shell": 11187,
     "TypeScript": 415238
    },
    "loc_total": 1339482,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 41,
    "telemetry_sdks": [
     "Rollbar"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     35,
     57,
     206,
     30,
     33,
     57,
     101,
     173,
     141,
     224,
     251,
     206,
     88,
     105,
     127,
     137,
     343,
     413
    ]
   }
  },
  {
   "slug": "lk-jwt-service",
   "name": "LiveKit JWT service",
   "category": "server",
   "kind": "MatrixRTC authorisation service",
   "homepage": null,
   "summary": "Issues LiveKit tokens to Matrix users so MatrixRTC (Element Call) can use a LiveKit SFU.",
   "repos": [
    {
     "url": "https://github.com/element-hq/lk-jwt-service",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "own search"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only OR LicenseRef-Element-Commercial",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "language": "Go",
    "database": null,
    "msc": [
     {
      "msc": 4140,
      "state": "unstable",
      "source": "https://github.com/element-hq/lk-jwt-service/blob/83be6cf930b579c9d22617390e15dcc593c9f3be/integration-tests/src/fake_homeserver.rs#L171",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4195,
      "state": "unstable",
      "source": "https://github.com/element-hq/lk-jwt-service/blob/83be6cf930b579c9d22617390e15dcc593c9f3be/integration-tests/src/helpers.rs#L277",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4502,
      "state": "unstable",
      "source": "https://github.com/element-hq/lk-jwt-service/blob/83be6cf930b579c9d22617390e15dcc593c9f3be/e2e-tests/docker/app-service-a.yaml#L14",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4512,
      "state": "unstable",
      "source": "https://github.com/element-hq/lk-jwt-service/blob/83be6cf930b579c9d22617390e15dcc593c9f3be/e2e-tests/docker/app-service-a.yaml#L17",
      "note": "unstable prefix in code"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md#L26",
     "note": "Element-wide policy in element-meta CONTRIBUTING.md (added 2026-11-02), which says it applies to all element-hq repositories; the repo's own CONTRIBUTING does not link it yet. Commit messages may be AI-drafted if reviewed; reviews may use AI tools, but only a human approves or closes a PR."
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "83be6cf930b579c9d22617390e15dcc593c9f3be"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 64,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 18,
    "authors_90d": 9,
    "authors_all": 25,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 2,
     "2023-Q3": 3,
     "2023-Q4": 0,
     "2024-Q1": 2,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 3,
     "2025-Q2": 3,
     "2025-Q3": 2,
     "2025-Q4": 3,
     "2026-Q1": 4,
     "2026-Q2": 5,
     "2026-Q3": 8,
     "2026-Q4": 4
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 9,
    "commits_365d": 64,
    "commits_90d": 31,
    "commits_all": 128,
    "first_commit": "2023-06-07T14:04:44+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0013,
     "Rust": 0.9987
    },
    "last_commit": "2026-11-03T07:52:05+00:00",
    "last_tag": "v0.9.0",
    "last_tag_date": "2026-10-13T11:42:42+02:00",
    "last_tag_repo": "https://github.com/element-hq/lk-jwt-service",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 27,
     "Rust": 20494
    },
    "loc_total": 20521,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 10,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     1,
     1,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     6,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     3,
     0,
     1,
     3,
     0,
     0,
     0,
     0,
     0,
     1,
     1,
     1,
     0,
     5,
     0,
     4,
     2,
     1,
     0,
     0,
     1,
     2,
     9,
     2,
     3,
     2,
     1,
     3,
     4,
     1,
     0,
     3
    ]
   }
  },
  {
   "slug": "ma1sd",
   "name": "ma1sd",
   "category": "tool",
   "kind": "identity-server",
   "homepage": "https://github.com/ma1uta/ma1sd",
   "summary": "A federated identity server for self-hosted Matrix setups (LDAP, SQL and other stores), a fork of the archived mxisd.",
   "repos": [
    {
     "url": "https://github.com/ma1uta/ma1sd",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": "https://github.com/kamax-matrix/mxisd",
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "identity server (3PID lookup, directory and auth backends)",
     "how": "claimed",
     "source": "https://github.com/ma1uta/ma1sd/blob/ae5864cd91f7db57c3a99b7847c3c327980e74e8/README.md"
    },
    "framework": {
     "value": "own (Java)",
     "how": "claimed",
     "source": "https://github.com/ma1uta/ma1sd/blob/ae5864cd91f7db57c3a99b7847c3c327980e74e8/README.md"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/ma1uta/ma1sd/blob/ae5864cd91f7db57c3a99b7847c3c327980e74e8/README.md",
     "note": "not applicable"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/ma1uta/ma1sd/blob/ae5864cd91f7db57c3a99b7847c3c327980e74e8/README.md",
     "note": "packages, Docker, matrix-docker-ansible-deploy"
    },
    "config": {
     "value": "config file (ma1sd.yaml)",
     "how": "claimed",
     "source": "https://github.com/ma1uta/ma1sd/blob/ae5864cd91f7db57c3a99b7847c3c327980e74e8/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "claimed",
     "source": "https://github.com/ma1uta/ma1sd/blob/ae5864cd91f7db57c3a99b7847c3c327980e74e8/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2021-04-16), counted at ae5864cd91f7"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "ma1sd.webp",
    "source": "https://github.com/ma1uta/ma1sd/blob/ae5864cd91f7db57c3a99b7847c3c327980e74e8/media/mx-id-icon.png",
    "licence": "AGPL-3.0-only",
    "note": "mxisd's logo, which this fork (ma1sd) still ships",
    "checked": "2026-11-05"
   },
   "notes": "Last commit 2021-04-16; GitHub search did not return the repo, so its archived flag and stars were not read. README: \"a fork (not successor)\" of mxisd. LICENSE is the GNU AGPL v3 (-only vs -or-later not checked).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 22,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 548,
    "first_commit": "2017-01-23T03:10:03+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0032,
     "Gradle": 0.0095,
     "HTML": 0.003,
     "Java": 0.9691,
     "Shell": 0.0138
    },
    "last_commit": "2021-04-16T18:48:19+00:00",
    "last_tag": "2.5.0",
    "last_tag_date": "2021-04-16T21:48:19+03:00",
    "last_tag_repo": "https://github.com/ma1uta/ma1sd",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "BASH": 10,
     "Batch": 76,
     "Dockerfile": 18,
     "Gradle": 228,
     "HTML": 72,
     "Java": 23367,
     "Shell": 333,
     "Systemd": 8
    },
    "loc_total": 24112,
    "main_language": "Java",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mactrix",
   "name": "Mactrix",
   "category": "client",
   "kind": "desktop",
   "homepage": null,
   "summary": "Native macOS Matrix client in AppKit and SwiftUI, on the matrix-rust-sdk Swift bindings.",
   "repos": [
    {
     "url": "https://github.com/viktorstrate/mactrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/mactrix/",
    "other": []
   },
   "maturity": "alpha",
   "platforms": [
    "macos"
   ],
   "apps": [
    {
     "os": "macos",
     "tech": "native",
     "min_os": "15.7",
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/README.md",
     "note": "not notarized; GitHub releases"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "note": "matrix-rust-components-swift"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/Sources/MatrixIntegration/MatrixClient.swift#L75",
     "note": "pattern match [CrossSigning]"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/Sources/MatrixIntegration/UserSession.swift#L39",
     "note": "pattern match [slidingSync]"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/README.md",
     "note": "README feature list: OAuth checked"
    },
    "multi_account": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/README.md",
     "note": "unchecked in the README feature list"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/Sources/MatrixIntegration/Extensions/MatrixRustSDK%2BExtensions.swift#L119",
     "note": "pattern match [threadRoot]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/Sources/MactrixUI/Sidebar/RoomRow.swift#L60",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/Sources/MatrixIntegration/LiveTimeline.swift#L213",
     "note": "pattern match [inReplyTo]"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/Sources/MatrixProtocols/MsgLikeContent.swift#L25",
     "note": "pattern match [m.poll]"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/Sources/MatrixProtocols/MsgLikeContent.swift#L21",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/Sources/MatrixIntegration/Extensions/MatrixRustSDK%2BExtensions.swift#L445",
     "note": "pattern match [Tombstone]"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/Sources/MactrixApp/Views/Sidebar/SidebarGroupsList.swift#L119",
     "note": "pattern match [accessibilityLabel]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "matrix.org",
     "how": "code",
     "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/Sources/MactrixApp/Views/WelcomeSheetView.swift#L21"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "GPL-3.0; Xcode workspace, about 200 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI trailers in 175 commits at 2c6d195c4e"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "mactrix.webp",
    "source": "https://github.com/viktorstrate/mactrix/blob/2c6d195c4ef73c4ad616835b7068b8ffe7ef5356/docs/mactrix-icon.webp",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 174,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 12,
    "authors_90d": 3,
    "authors_all": 12,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 9,
     "2026-Q2": 5,
     "2026-Q3": 3,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 50,
    "commits_365d": 174,
    "commits_90d": 62,
    "commits_all": 182,
    "first_commit": "2025-10-30T12:41:25+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Swift": 0.9995
    },
    "last_commit": "2026-11-02T15:59:31+00:00",
    "last_tag": "v0.6.0",
    "last_tag_date": "2026-10-30T10:03:53+01:00",
    "last_tag_repo": "https://github.com/viktorstrate/mactrix",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Shell": 9,
     "Swift": 18111
    },
    "loc_total": 18120,
    "main_language": "Swift",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 6,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     8,
     16,
     11,
     3,
     4,
     1,
     1,
     0,
     0,
     7,
     4,
     0,
     2,
     1,
     14,
     5,
     5,
     10,
     7,
     0,
     0,
     3,
     2,
     0,
     0,
     0,
     0,
     1,
     0,
     2,
     0,
     1,
     1,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     3,
     4,
     6,
     16,
     15,
     13,
     5
    ]
   }
  },
  {
   "slug": "maelstrom",
   "name": "Maelstrom",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A Rust Matrix homeserver aimed at horizontal scaling, with SurrealDB on TiKV storage.",
   "repos": [
    {
     "url": "https://github.com/maelstrom-rs/maelstrom",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0 OR MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Rust",
    "database": "SurrealDB on TiKV",
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/versions.rs#L46",
     "versions": [
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.6",
      "v1.7",
      "v1.8",
      "v1.9",
      "v1.10",
      "v1.11",
      "v1.12",
      "v1.13",
      "v1.14",
      "v1.15",
      "v1.16",
      "v1.17",
      "v1.18"
     ]
    },
    "oidc_delegation": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/versions.rs#L46",
     "note": "implied: the server advertises spec v1.15, where MSC3861 landed; no MSC reference in the code"
    },
    "native_sliding_sync": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/sync.rs#L9",
     "note": "own sliding sync on POST /_matrix/client/v3/sync, documented as MSC3575; not the MSC4186 endpoint"
    },
    "workers_scaling": {
     "value": "yes",
     "how": "claimed",
     "note": "stateless nodes behind a load balancer"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/versions.rs#L46",
     "note": "implied: the server advertises spec v1.11, where MSC3916 landed; no MSC reference in the code"
    },
    "msc": [
     {
      "msc": 2946,
      "state": "stable",
      "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/mod.rs#L23",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3381,
      "state": "unstable",
      "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/capabilities.rs#L682",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3391,
      "state": "unstable",
      "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/capabilities.rs#L12",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3575,
      "state": "unstable",
      "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/sync.rs#L9",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3706,
      "state": "stable",
      "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/capabilities.rs#L1255",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3874,
      "state": "unstable",
      "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/events.rs#L48",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3890,
      "state": "unstable",
      "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/auth.rs#L285",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3930,
      "state": "unstable",
      "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/capabilities.rs#L681",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3967,
      "state": "stable",
      "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/keys.rs#L466",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4102,
      "state": "unstable",
      "source": "https://github.com/maelstrom-rs/maelstrom/blob/3a41e4cada2ee934f5035d3e9a9fbfb476162713/crates/maelstrom-api/src/handlers/receipts.rs#L63",
      "note": "referenced in code, no flag found; extent not checked"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "1 of 12 non-bot commits in the last 365 days (8.3 %) carry an AI co-author trailer or similar",
      "https://github.com/maelstrom-rs/maelstrom/commit/367065bd9ab13243143e03e97b6bdbd598edc2b7"
     ],
     "note": "only 12 commits in the last year, so the share is noisy",
     "checked_at": "3a41e4cada2ee934f5035d3e9a9fbfb476162713"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "maelstrom.webp",
    "source": "https://avatars.githubusercontent.com/u/63146455?v=4&s=256",
    "licence": null,
    "note": "the maelstrom-rs organisation's avatar on GitHub",
    "checked": "2026-11-05"
   },
   "notes": "matrix.org labels it \"Obsolete\", but the repo was rewritten in April 2026 (README: \"Alpha -- under active development\").",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 1,
     "commits_365d": 12,
     "share_365d": 0.0833,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 6,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 12,
    "commits_90d": 0,
    "commits_all": 95,
    "first_commit": "2020-04-03T12:36:22+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0094,
     "Dockerfile": 0.0012,
     "HTML": 0.0047,
     "Makefile": 0.0036,
     "Rust": 0.9729,
     "Shell": 0.0082
    },
    "last_commit": "2026-04-14T07:00:00+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 229,
     "Dockerfile": 30,
     "HTML": 116,
     "Makefile": 88,
     "Rust": 23815,
     "Shell": 201
    },
    "loc_total": 24479,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     5,
     7,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mages",
   "name": "Mages",
   "category": "client",
   "kind": "mobile, desktop",
   "homepage": null,
   "summary": "Experimental Matrix client with a Compose Multiplatform UI over its own Rust core on matrix-rust-sdk, for Android and Linux.",
   "repos": [
    {
     "url": "https://github.com/mlm-games/Mages",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/mages/",
    "other": []
   },
   "maturity": "alpha",
   "platforms": [
    "android",
    "linux",
    "windows",
    "macos"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "other",
     "min_os": "7.0",
     "status": "alpha",
     "stores": [
      {
       "name": "f-droid",
       "url": "https://f-droid.org/packages/org.mlm.mages"
      }
     ],
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/README.md",
     "note": "Compose; minSdk 24"
    },
    {
     "os": "linux",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/io.github.mlm_games.mages"
      },
      {
       "name": "aur",
       "url": "https://aur.archlinux.org/packages/mages-bin"
      },
      {
       "name": "snap",
       "url": null
      }
     ],
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/README.md"
    },
    {
     "os": "windows",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/README.md",
     "note": "unsigned, rarely tested"
    },
    {
     "os": "macos",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/README.md",
     "note": "unsigned, rarely tested"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "f-droid",
    "flathub",
    "aur",
    "snap"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "claimed",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/README.md",
     "note": "matrix-sdk and matrix-sdk-ui via its own UniFFI layer (not matrix-sdk-ffi)"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/commonMain/kotlin/org/mlm/mages/Model.kt#L134",
     "note": "pattern match [Megolm]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/rust/src/wasm_bridge.rs#L756",
     "note": "pattern match [cross_signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/matrix/MatrixPort.web.kt#L552",
     "note": "pattern match [RecoveryKey]"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/commonMain/kotlin/org/mlm/mages/ui/viewmodel/BaseViewModel.kt#L69",
     "note": "pattern match [Sliding sync]"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/packaging/io.github.mlm_games.mages.metainfo.xml#L1029",
     "note": "pattern match [oidc]"
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/README.md"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/matrix/MatrixPort.web.kt#L744",
     "note": "pattern match [threadRoot]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/matrix/MatrixPort.web.kt#L1436",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/matrix/MatrixPort.web.kt#L971",
     "note": "pattern match [CallInvite]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/platform/Platform.web.kt#L90",
     "note": "pattern match [ElementCall]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/rust/src/core.rs#L2473",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/matrix/MatrixPort.web.kt#L770",
     "note": "pattern match [inReplyTo]"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/commonMain/kotlin/org/mlm/mages/ui/viewmodel/RoomsViewModel.kt#L571",
     "note": "pattern match [m.poll]"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/platform/ImagePackZip.web.kt#L11",
     "note": "pattern match [ImagePack]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/commonMain/kotlin/org/mlm/mages/ui/viewmodel/RoomsViewModel.kt#L569",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/commonMain/kotlin/org/mlm/mages/ui/components/location/TimelineLocationItem.kt#L36",
     "note": "pattern match [geo:]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/platform/MagesPaths.web.kt#L18",
     "note": "pattern match [voiceMessage]"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/matrix/MatrixPort.web.kt#L23",
     "note": "pattern match [LinkPreview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/matrix/MatrixPort.web.kt#L1026",
     "note": "pattern match [UnifiedPush]"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/rust/src/core.rs#L1283",
     "note": "pattern match [ReadPrivate]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/matrix/MatrixPort.web.kt#L1519",
     "note": "pattern match [setPresence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/matrix/MatrixPort.web.kt#L1790",
     "note": "pattern match [RoomUpgrade]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/matrix/MatrixPort.web.kt#L1750",
     "note": "pattern match [reportContent]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/shared/src/wasmJsMain/kotlin/org/mlm/mages/ui/components/location/TimelineLocationMapView.web.kt#L50",
     "note": "pattern match [contentDescription]"
    },
    "translations": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/README.md",
     "note": "Spanish only besides English"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "note": "AGPL-3.0; Kotlin + Rust (cargo-ndk, JDK 21, JetBrains Runtime); about 880 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI trailers in 1,553 commits of the last 365 days at 1f17f25c23"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "mages.webp",
    "source": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/fastlane/metadata/android/en-US/images/icon.png",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1451,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 5,
    "authors_90d": 4,
    "authors_all": 5,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 2,
     "2026-Q2": 2,
     "2026-Q3": 3,
     "2026-Q4": 3
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 262,
    "commits_365d": 1451,
    "commits_90d": 563,
    "commits_all": 1490,
    "first_commit": "2025-09-25T02:18:42+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Kotlin": 0.8002,
     "Nix": 0.0019,
     "Rust": 0.1944,
     "Shell": 0.0011
    },
    "last_commit": "2026-11-05T01:17:46+00:00",
    "last_tag": "5.4.0",
    "last_tag_date": "2026-11-04T13:25:16+00:00",
    "last_tag_repo": "https://github.com/mlm-games/Mages",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 73,
     "Dockerfile": 79,
     "HTML": 70,
     "Kotlin": 78139,
     "Nix": 188,
     "Prolog": 9,
     "Rust": 18988,
     "Shell": 104
    },
    "loc_total": 97650,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/mlm-games/Mages/blob/1f17f25c23428140ea9a48db268ec13dd5a356a7/.github/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 145,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     23,
     29,
     49,
     61,
     15,
     15,
     7,
     14,
     63,
     47,
     9,
     10,
     22,
     28,
     34,
     33,
     28,
     57,
     34,
     44,
     38,
     24,
     26,
     5,
     16,
     2,
     16,
     30,
     10,
     11,
     12,
     4,
     2,
     13,
     16,
     19,
     13,
     8,
     1,
     1,
     11,
     6,
     22,
     9,
     60,
     13,
     125,
     62,
     18,
     67,
     58,
     111
    ]
   }
  },
  {
   "slug": "mandm-bridge",
   "name": "MandM-bridge",
   "category": "bridge",
   "kind": "relay bridge",
   "homepage": null,
   "summary": "Bridge between a Mumble (Murmur) server's text chat and a Matrix room, through ICE and an appservice.",
   "repos": [
    {
     "url": "https://codeberg.org/karlpip/MandM-bridge",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/mumble/",
    "other": []
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Mumble",
    "framework": {
     "value": "yes",
     "how": "claimed",
     "source": "https://codeberg.org/karlpip/MandM-bridge/src/commit/3d8c2659de7072adbd08ad93cc615da318f22c40/README.md",
     "note": "own (Python) appservice"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 3d8c2659de70; no AI-attributed commits among 7 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "7 commits in the last year (last 2026-06-09).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 6,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 6,
    "commits_90d": 0,
    "commits_all": 62,
    "first_commit": "2022-05-02T12:33:39+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Python": 0.982,
     "Systemd": 0.018
    },
    "last_commit": "2026-06-09T17:12:51+00:00",
    "last_tag": "v1.1",
    "last_tag_date": "2026-06-09T19:07:31+02:00",
    "last_tag_repo": "https://codeberg.org/karlpip/MandM-bridge",
    "licence_detected": "MIT",
    "loc": {
     "Python": 601,
     "Systemd": 11
    },
    "loc_total": 612,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mascarene",
   "name": "Mascarene",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A Matrix homeserver built with Scala/Akka.",
   "repos": [
    {
     "url": "https://gitlab.com/mascarene/mascarene",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Servers/Hosting)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": null,
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Scala",
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "not checked: no clone"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "mascarene.webp",
    "source": "https://gitlab.com/uploads/-/system/project/avatar/18083164/dodo.jpg?v=1702157327",
    "licence": null,
    "note": "the repository's avatar on gitlab.com",
    "checked": "2026-11-05"
   },
   "notes": "Found in the community space (Servers/Hosting, \"Unstable: 0.2.0\"). GitLab API last_activity_at 2023-07-18; not cloned.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 591,
    "first_commit": "2018-05-10T15:35:47+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.004,
     "Perl": 0.0044,
     "Python": 0.0164,
     "SQL": 0.0152,
     "Scala": 0.9583,
     "Shell": 0.0017
    },
    "last_commit": "2021-02-28T12:40:19+00:00",
    "last_tag": "v0.2.0",
    "last_tag_date": "2020-06-21T19:46:23+04:00",
    "last_tag_repo": "https://gitlab.com/mascarene/mascarene",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Dockerfile": 45,
     "Perl": 49,
     "Python": 184,
     "SQL": 171,
     "Scala": 10759,
     "Shell": 19
    },
    "loc_total": 11227,
    "main_language": "Scala",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrex",
   "name": "Matrex",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A work-in-progress toy Matrix server in Elixir.",
   "repos": [
    {
     "url": "https://github.com/bismark/matrex",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Elixir",
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "no commits since 2018-02-22; not cloned"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "matrix.org labels it \"Obsolete\". Last push 2018-02-22 (GitHub API); not cloned or MSC-scanned.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 32,
    "first_commit": "2016-11-12T16:45:39+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Elixir": 1
    },
    "last_commit": "2018-02-22T16:59:42+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "MIT",
    "loc": {
     "Elixir": 2219
    },
    "loc_total": 2219,
    "main_language": "Elixir",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matridge",
   "name": "matridge",
   "category": "bridge",
   "kind": "XMPP gateway",
   "homepage": "https://slidge.im/docs/matridge/main/",
   "summary": "Puppeting gateway that lets XMPP users chat with Matrix users from an XMPP client, built on slidge and matrix-nio.",
   "repos": [
    {
     "url": "https://codeberg.org/slidge/matridge",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "https://slidge.im"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "pypi"
   ],
   "funding": [
    "https://nlnet.nl/project/Matridge/"
   ],
   "features": {
    "network": "XMPP (bridges Matrix into XMPP)",
    "framework": {
     "value": "yes",
     "how": "claimed",
     "source": "https://codeberg.org/slidge/matridge/src/commit/1d76d7279a6ffca573ce0b45aee5f2d2f61cba3c/README.md",
     "note": "slidge (XMPP gateway library) + matrix-nio"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://codeberg.org/slidge/matridge/src/commit/1d76d7279a6ffca573ce0b45aee5f2d2f61cba3c/README.md",
     "note": "puppeteering gateway: the XMPP user logs in to their own Matrix account"
    },
    "e2ee": {
     "value": "not-found",
     "note": "check the features page linked from the README"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://codeberg.org/slidge/matridge/src/commit/1d76d7279a6ffca573ce0b45aee5f2d2f61cba3c/README.md",
     "note": "Matrix account credentials given to the gateway"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "it is a Matrix client on the Matrix side; no warning needed or found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 1d76d7279a6f; no AI-attributed commits among 142 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    },
    "funder_policy": [
     {
      "funder": "NLnet Foundation (NGI0 Commons Fund)",
      "grant": "https://nlnet.nl/project/Matridge/",
      "policy": "https://nlnet.nl/foundation/policies/generativeAI/1.1/",
      "value": "restricted",
      "grant_start": "2026-04",
      "grant_source": "https://nlnet.nl/project/Matridge/ (\"Matridge spaces\"; the repo itself does not mention the grant at 1d76d72)",
      "policy_version": "1.1 (from 2026-01-26) under the transitional arrangement; 2.0 (from 2026-10-20, read-only use only) if the grantee opts in",
      "quote": "In any case, outcomes purely generated by AI are not allowed to be submitted as work eligible for payment (as part) of the grant. … For any substantive use of GenAI that materially affects outputs, public disclosure is required, making it available to both users and contributors.",
      "scope": "work delivered within the grant (spaces support)",
      "transition": "The 1.1 page: \"grantees from concluding programmes (notably NGI Zero Commons Fund, NGI Taler and Fediversity) can opt to continue to follow this version (1.1) of the policy.\" Under 2.0 the value would be banned. https://nlnet.nl/foundation/policies/generativeAI/1.1/",
      "transparency": "no GenAI stance found in README.md, CONTRIBUTING.md or docs/ at 1d76d72",
      "checked": "2026-11-05"
     }
    ]
   },
   "icon": {
    "file": "matridge.webp",
    "source": "https://codeberg.org/avatars/aa0eeeb5fe173938bdc665be92bf605efa1e8f4a905bc3327e4d5c7eddf584e5",
    "licence": null,
    "note": "the Slidge project's logo (matridge is a Slidge bridge)",
    "checked": "2026-11-05"
   },
   "notes": "Bridge seen from the XMPP side (the slidge family). Not on matrix.org; added because the lane prompt names Slidge. Other XMPP bridges: matrix-bifrost, Parsee.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 142,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 2,
    "authors_all": 9,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 3,
     "2023-Q4": 1,
     "2024-Q1": 2,
     "2024-Q2": 2,
     "2024-Q3": 2,
     "2024-Q4": 0,
     "2025-Q1": 3,
     "2025-Q2": 3,
     "2025-Q3": 2,
     "2025-Q4": 1,
     "2026-Q1": 2,
     "2026-Q2": 2,
     "2026-Q3": 2,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 6,
    "commits_365d": 142,
    "commits_90d": 64,
    "commits_all": 449,
    "first_commit": "2023-07-13T06:55:17+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0148,
     "JavaScript": 0.0059,
     "Lua": 0.0109,
     "Makefile": 0.002,
     "Python": 0.9664
    },
    "last_commit": "2026-10-31T07:53:52+00:00",
    "last_tag": "v0.5.1",
    "last_tag_date": "2026-10-31T08:53:52+01:00",
    "last_tag_repo": "https://codeberg.org/slidge/matridge",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 68,
     "JavaScript": 27,
     "Lua": 50,
     "Makefile": 9,
     "Python": 4436
    },
    "loc_total": 4590,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 6,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     5,
     3,
     0,
     1,
     6,
     0,
     0,
     0,
     0,
     1,
     5,
     6,
     7,
     2,
     9,
     8,
     0,
     0,
     1,
     1,
     4,
     0,
     0,
     0,
     2,
     0,
     0,
     2,
     1,
     0,
     1,
     0,
     2,
     1,
     0,
     10,
     0,
     5,
     0,
     4,
     15,
     21,
     3,
     8,
     0,
     2,
     0,
     0,
     0,
     6
    ]
   }
  },
  {
   "slug": "matrix-dotnet-sdk-half-shot",
   "name": "Matrix .NET SDK (Half-Shot)",
   "category": "sdk",
   "kind": "C#",
   "homepage": "https://github.com/Half-Shot/matrix-dotnet-sdk",
   "summary": "An early C# SDK for .NET Core.",
   "repos": [
    {
     "url": "https://github.com/Half-Shot/matrix-dotnet-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "nuget"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 3a792012a0f6"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix .NET SDK\" (Obsolete, C#, maintainer: Half-Shot). Last non-bot commit 2019-03-28, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 3a792012a0f6 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-authentication-service",
   "name": "Matrix Authentication Service",
   "category": "server",
   "kind": "auth service (OAuth 2.0 / OIDC provider)",
   "homepage": "https://element-hq.github.io/matrix-authentication-service/",
   "summary": "OAuth 2.0 and OpenID Connect provider for Matrix homeservers, the next-gen auth (MSC3861) server used with Synapse.",
   "repos": [
    {
     "url": "https://github.com/element-hq/matrix-authentication-service",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "lane prompt"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only OR LicenseRef-Element-Commercial",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "language": "Rust, TypeScript",
    "database": "PostgreSQL",
    "msc": [
     {
      "msc": 2965,
      "state": "stable",
      "source": "https://github.com/element-hq/matrix-authentication-service/blob/d407daa66e84f5e8c542fc6cce2afcf3f3ed8120/crates/oauth2-types/src/oidc.rs#L620",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2967,
      "state": "stable",
      "source": "https://github.com/element-hq/matrix-authentication-service/blob/d407daa66e84f5e8c542fc6cce2afcf3f3ed8120/crates/data-model/src/compat/device.rs#L17",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3824,
      "state": "stable",
      "source": "https://github.com/element-hq/matrix-authentication-service/blob/d407daa66e84f5e8c542fc6cce2afcf3f3ed8120/crates/cli/src/commands/doctor.rs#L306",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3861,
      "state": "stable",
      "source": "https://github.com/element-hq/matrix-authentication-service/blob/d407daa66e84f5e8c542fc6cce2afcf3f3ed8120/crates/oidc-client/src/lib.rs#L14",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4191,
      "state": "stable",
      "source": "https://github.com/element-hq/matrix-authentication-service/blob/d407daa66e84f5e8c542fc6cce2afcf3f3ed8120/crates/handlers/src/oauth2/discovery.rs#L32",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4198,
      "state": "unstable",
      "source": "https://github.com/element-hq/matrix-authentication-service/blob/d407daa66e84f5e8c542fc6cce2afcf3f3ed8120/crates/handlers/src/oauth2/discovery.rs#L36",
      "note": "unstable prefix in code"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md#L26",
     "note": "Element-wide policy in element-meta CONTRIBUTING.md (added 2026-11-02), which says it applies to all element-hq repositories; the repo's own CONTRIBUTING does not link it yet. Commit messages may be AI-drafted if reviewed; reviews may use AI tools, but only a human approves or closes a PR."
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "16 of 1645 non-bot commits in the last 365 days (1.0 %) carry an AI co-author trailer or similar",
      "https://github.com/element-hq/matrix-authentication-service/commit/cdc501fe7ae01f1c850bf49b8b095e20cb3b99df",
      "https://github.com/element-hq/matrix-authentication-service/commit/21f1b8a427b690dc2dfb7a5419f8a070c2664552",
      "https://github.com/element-hq/matrix-authentication-service/commit/9574a516c58fdc85b868abd781272fea9b4af5de",
      "AI bot authors: copilot-swe-agent[bot]"
     ],
     "checked_at": "d407daa66e84f5e8c542fc6cce2afcf3f3ed8120"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Not a homeserver; pairs with Synapse. The matrix-org/ copy is archived.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 9,
     "attributed_commits_365d": 16,
     "commits_365d": 830,
     "share_365d": 0.0193,
     "suggested_dev_usage": "occasional",
     "tools": {
      "copilot": 16
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 34,
    "authors_90d": 18,
    "authors_all": 76,
    "authors_by_quarter": {
     "2023-Q1": 3,
     "2023-Q2": 6,
     "2023-Q3": 8,
     "2023-Q4": 8,
     "2024-Q1": 8,
     "2024-Q2": 4,
     "2024-Q3": 8,
     "2024-Q4": 9,
     "2025-Q1": 11,
     "2025-Q2": 17,
     "2025-Q3": 13,
     "2025-Q4": 10,
     "2026-Q1": 16,
     "2026-Q2": 11,
     "2026-Q3": 12,
     "2026-Q4": 9
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 112,
    "commits_365d": 830,
    "commits_90d": 170,
    "commits_all": 3618,
    "first_commit": "2021-06-10T11:48:28+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0116,
     "GraphQL": 0.0056,
     "HTML": 0.0212,
     "JavaScript": 0.0017,
     "Rust": 0.8491,
     "SQL": 0.0118,
     "Shell": 0.0013,
     "TypeScript": 0.0952
    },
    "last_commit": "2026-11-04T20:03:08+00:00",
    "last_tag": "unstable",
    "last_tag_date": "2026-11-04T22:24:07+01:00",
    "last_tag_repo": "https://github.com/element-hq/matrix-authentication-service",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 1516,
     "Dockerfile": 116,
     "GraphQL": 734,
     "HCL": 27,
     "HTML": 2763,
     "JavaScript": 226,
     "Makefile": 52,
     "Python": 102,
     "Rust": 110681,
     "SQL": 1541,
     "Shell": 174,
     "TypeScript": 12408,
     "TypeScript Typings": 12
    },
    "loc_total": 130352,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 26,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     28,
     12,
     17,
     50,
     10,
     9,
     5,
     0,
     8,
     25,
     21,
     13,
     10,
     4,
     4,
     1,
     3,
     0,
     8,
     7,
     8,
     35,
     34,
     30,
     21,
     26,
     60,
     47,
     17,
     38,
     4,
     16,
     15,
     15,
     23,
     5,
     7,
     18,
     2,
     12,
     10,
     6,
     2,
     8,
     7,
     13,
     3,
     2,
     8,
     22,
     22,
     58
    ]
   }
  },
  {
   "slug": "matrix-barcamp",
   "name": "Matrix BarCamp",
   "category": "tool",
   "kind": "widget",
   "homepage": "https://github.com/nordeck/matrix-barcamp",
   "summary": "A widget for running a BarCamp (unconference) in Matrix rooms, with session proposals and a schedule grid.",
   "repos": [
    {
     "url": "https://github.com/nordeck/matrix-barcamp",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "helm"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "widget (BarCamp session planning)",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-barcamp/blob/e12def54c78547d0792d1551ac6bc478136903e7/README.md"
    },
    "framework": {
     "value": "matrix-widget-api via Nordeck's matrix-widget-toolkit",
     "how": "code",
     "source": "https://github.com/nordeck/matrix-barcamp/blob/e12def54c78547d0792d1551ac6bc478136903e7/package.json"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-barcamp/blob/e12def54c78547d0792d1551ac6bc478136903e7/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-barcamp/blob/e12def54c78547d0792d1551ac6bc478136903e7/README.md",
     "note": "container or Helm chart; Element 1.11.8+"
    },
    "config": {
     "value": "set up from the widget in the room",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-barcamp/blob/e12def54c78547d0792d1551ac6bc478136903e7/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/nordeck/matrix-barcamp/blob/e12def54c78547d0792d1551ac6bc478136903e7/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2026-09-15), counted at e12def54c785"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "No non-bot commits in the last 365 days (dependency bots only). Sponsored by Zentrales IT-Management Schleswig-Holstein per the README.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 12,
    "authors_by_quarter": {
     "2023-Q1": 4,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 2,
     "2024-Q4": 3,
     "2025-Q1": 3,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 31,
    "first_commit": "2022-12-12T12:22:13+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "HTML": 0.001,
     "JavaScript": 0.0021,
     "Smarty Template": 0.0029,
     "TypeScript": 0.9932
    },
    "last_commit": "2025-07-30T16:58:20+00:00",
    "last_tag": "v1.2.0",
    "last_tag_date": "2023-12-16T08:40:28+00:00",
    "last_tag_repo": "https://github.com/nordeck/matrix-barcamp",
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 6,
     "Dockerfile": 3,
     "HTML": 20,
     "JSON5": 5,
     "JavaScript": 41,
     "Smarty Template": 57,
     "TypeScript": 19322
    },
    "loc_total": 19454,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/nordeck/matrix-barcamp/blob/e12def54c78547d0792d1551ac6bc478136903e7/SECURITY.md",
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "h4x-matrix-blog",
   "name": "Matrix Blog (h4x.no)",
   "category": "client",
   "kind": "web (blog)",
   "homepage": "https://github.com/simeng/matrix-blog",
   "summary": "A read-only, blog-style web interface to a Matrix room.",
   "repos": [
    {
     "url": "https://github.com/simeng/matrix-blog",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org's former Gatsby project list (gatsby/content/projects/clients/ in matrix-org/matrix.org history)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/simeng/matrix-blog/blob/b5bdabcec4380fd6165a8d7fa94612fdc811a39b/README.md"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": "not-found",
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Old matrix.org maturity: \"Not actively maintained\". Last commit 2016-06-14. A not-chat client.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 17,
    "first_commit": "2015-03-23T17:59:51+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "HTML": 0.4027,
     "JavaScript": 0.5973
    },
    "last_commit": "2016-06-14T21:48:58+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "HTML": 89,
     "JavaScript": 132
    },
    "loc_total": 221,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-dotnet-sdk-baking-bad",
   "name": "Matrix C# SDK (Baking Bad)",
   "category": "sdk",
   "kind": "C#",
   "homepage": "https://github.com/baking-bad/matrix-dotnet-sdk",
   "summary": "A .NET Standard library with a limited subset of the Matrix API, built for the Beacon Node.",
   "repos": [
    {
     "url": "https://github.com/baking-bad/matrix-dotnet-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "nuget"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at e09bad5092c3"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix C# SDK\" (Beta, C#, maintainer: Baking Bad). Last non-bot commit 2024-06-23, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at e09bad5092c3 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-client-api-syncpoint",
   "name": "Matrix Client API (ODIN)",
   "category": "sdk",
   "kind": "JavaScript",
   "homepage": "https://github.com/syncpoint/matrix-client-api",
   "summary": "A focused Matrix client library written for the ODIN command-and-control application.",
   "repos": [
    {
     "url": "https://github.com/syncpoint/matrix-client-api",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "https://github.com/jryans/awesome-matrix"
    ]
   },
   "maturity": "beta",
   "platforms": [],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/syncpoint/matrix-client-api"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "3 of 118 non-bot commits in the last 365 days carry an AI attribution (2.5 %), counted at 3dcc6027cb5d",
      "https://github.com/syncpoint/matrix-client-api/commit/3add6fe9a1 (claude)",
      "https://github.com/syncpoint/matrix-client-api/commit/b9ad29742d (claude)",
      "https://github.com/syncpoint/matrix-client-api/commit/47218d2d8c (claude)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-05-21, 118 non-bot commits in the last year and 0 authors in the last 90 days by our count at 3dcc6027cb5d (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-glib-sdk",
   "name": "Matrix Client SDK for GLib",
   "category": "sdk",
   "kind": "C (GLib)",
   "homepage": "https://github.com/gergelypolonkai/matrix-glib-sdk",
   "summary": "A GLib-based Matrix client SDK.",
   "repos": [
    {
     "url": "https://github.com/gergelypolonkai/matrix-glib-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "linux"
   ],
   "licence": "LGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 9a93dc6c2f5d"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix Client SDK for GLib\" (Obsolete, C, maintainer: Gergely Polonkai). Last non-bot commit 2018-05-10, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 9a93dc6c2f5d (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "jenkins-matrix-communication",
   "name": "Matrix Communication Plugin for Jenkins",
   "category": "tool",
   "kind": "ci-plugin",
   "homepage": "https://plugins.jenkins.io/matrix-communication",
   "summary": "A Jenkins plugin with a pipeline step that sends messages to a Matrix room.",
   "repos": [
    {
     "url": "https://github.com/jenkinsci/matrix-communication-plugin",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "jenkins-update-center"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "CI notifications (Jenkins pipeline step)",
     "how": "claimed",
     "source": "https://github.com/jenkinsci/matrix-communication-plugin/blob/93a66bff812841bcae471d4377beeb582c9c6b21/README.md"
    },
    "framework": {
     "value": "own",
     "how": "claimed",
     "source": "https://github.com/jenkinsci/matrix-communication-plugin/blob/93a66bff812841bcae471d4377beeb582c9c6b21/README.md",
     "note": "Java, calls the client-server API with an access token"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/jenkinsci/matrix-communication-plugin/blob/93a66bff812841bcae471d4377beeb582c9c6b21/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/jenkinsci/matrix-communication-plugin/blob/93a66bff812841bcae471d4377beeb582c9c6b21/README.md",
     "note": "inside a Jenkins controller"
    },
    "config": {
     "value": "pipeline step arguments and Jenkins credentials",
     "how": "claimed",
     "source": "https://github.com/jenkinsci/matrix-communication-plugin/blob/93a66bff812841bcae471d4377beeb582c9c6b21/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "claimed",
     "source": "https://github.com/jenkinsci/matrix-communication-plugin/blob/93a66bff812841bcae471d4377beeb582c9c6b21/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2026-04-28), counted at 93a66bff8128"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "No non-bot commits in the last 365 days (last commit 2026-04-28 is from a bot account). The README defers to the jenkinsci organisation's contribution guidelines, which have no statement on AI (checked 2026-11-05: https://github.com/jenkinsci/.github/blob/master/CONTRIBUTING.md).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 18,
    "first_commit": "2023-06-30T16:26:13+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.1979,
     "HTML": 0.0352,
     "Java": 0.4831,
     "Shell": 0.2839
    },
    "last_commit": "2025-08-18T17:27:21+00:00",
    "last_tag": "13.vdcfb_b_44ce852",
    "last_tag_date": "2023-07-07T11:58:28+02:00",
    "last_tag_repo": "https://github.com/jenkinsci/matrix-communication-plugin",
    "licence_detected": "MIT",
    "loc": {
     "Batch": 152,
     "HTML": 27,
     "Java": 371,
     "Shell": 218
    },
    "loc_total": 768,
    "main_language": "Java",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-dart-sdk",
   "name": "Matrix Dart SDK",
   "category": "sdk",
   "kind": "Dart",
   "homepage": "https://pub.dev/packages/matrix",
   "summary": "Famedly's Matrix SDK in pure Dart, the base of FluffyChat and other Flutter clients.",
   "repos": [
    {
     "url": "https://github.com/famedly/matrix-dart-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "android",
    "ios",
    "web",
    "windows",
    "macos",
    "linux"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "pub.dev"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/famedly/matrix-dart-sdk/blob/a4ea7a4cd80afd9e90ff0db347b31ef252d4429f/README.md#L13",
     "note": "\"For E2EE, vodozemac must be provided\" (vodozemac Dart bindings; flutter_vodozemac for Flutter apps)"
    },
    "crypto": "vodozemac",
    "sliding_sync": {
     "value": "not-found",
     "how": "code",
     "note": "no MSC4186 or MSC3575 code at this commit"
    },
    "oidc_auth": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/famedly/matrix-dart-sdk/blob/a4ea7a4cd80afd9e90ff0db347b31ef252d4429f/doc/oidc-login.md",
     "note": "native OIDC login documented; \"Support is still in a MSC and therefore considered as beta\""
    },
    "threads": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/famedly/matrix-dart-sdk/blob/a4ea7a4cd80afd9e90ff0db347b31ef252d4429f/lib/src/event.dart#L24",
     "note": "m.thread relations and sending into a thread; no separate thread timeline found"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/famedly/matrix-dart-sdk/blob/a4ea7a4cd80afd9e90ff0db347b31ef252d4429f/lib/src/utils/space_child.dart"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "commet",
     "extera",
     "fluffychat",
     "polycule",
     "roosterchat",
     "vommet"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "13 of 475 non-bot commits in the last 365 days carry an AI attribution (2.7 %), counted at a4ea7a4cd80a",
      "https://github.com/famedly/matrix-dart-sdk/commit/536c27c35d (claude)",
      "https://github.com/famedly/matrix-dart-sdk/commit/1887fcce03 (claude)",
      "https://github.com/famedly/matrix-dart-sdk/commit/c557fbdec8 (cursor)",
      "agent files: https://github.com/famedly/matrix-dart-sdk/blob/a4ea7a4cd80afd9e90ff0db347b31ef252d4429f/AGENTS.md",
      "AGENTS.md has \"Cursor Cloud specific instructions\" and says commits must be \"authored and committed solely by cursoragent@cursor.com, with no Co-authored-by trailer\"; the scan counts the cursoragent commits as AI-authored"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix Dart SDK\" (Stable, Dart, maintainer: Famedly GmbH). Last non-bot commit 2026-11-04, 475 non-bot commits in the last year and 13 authors in the last 90 days by our count at a4ea7a4cd80a (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-ai-moderator",
   "name": "Matrix Harm Detection Bot (matrix-ai-moderator)",
   "category": "bot",
   "kind": "moderation",
   "homepage": "https://github.com/iv-org/matrix-ai-moderator",
   "summary": "A Deno bot from the Invidious project that checks new members' messages and avatars with an LLM and deletes, warns or bans on inappropriate content.",
   "repos": [
    {
     "url": "https://github.com/iv-org/matrix-ai-moderator",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, repositories sorted by stars, 2026-11-05"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": null,
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "moderation (LLM classification of new members' messages and images)",
     "how": "claimed",
     "source": "https://github.com/iv-org/matrix-ai-moderator/blob/d016cb2314ff9b83d62483255a112415829b031f/README.md"
    },
    "framework": {
     "value": "matrix-js-sdk",
     "how": "code",
     "source": "https://github.com/iv-org/matrix-ai-moderator/blob/d016cb2314ff9b83d62483255a112415829b031f/deno.json"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/iv-org/matrix-ai-moderator/blob/d016cb2314ff9b83d62483255a112415829b031f/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/iv-org/matrix-ai-moderator/blob/d016cb2314ff9b83d62483255a112415829b031f/README.md",
     "note": "Deno"
    },
    "config": {
     "value": "environment variables",
     "how": "claimed",
     "source": "https://github.com/iv-org/matrix-ai-moderator/blob/d016cb2314ff9b83d62483255a112415829b031f/README.md"
    },
    "ai_backend": {
     "value": "OpenAI API or any OpenAI-compatible API (OpenRouter named); text and vision models",
     "how": "code",
     "source": "https://github.com/iv-org/matrix-ai-moderator/blob/d016cb2314ff9b83d62483255a112415829b031f/deno.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 14 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at d016cb2314ff"
     ]
    },
    "in_product": {
     "value": "core",
     "note": "Moderation decisions (delete, warn, ban) come from an LLM's classification of text and images.",
     "source": "https://github.com/iv-org/matrix-ai-moderator/blob/d016cb2314ff9b83d62483255a112415829b031f/README.md"
    }
   },
   "notes": "Filed as a bot (not with the moderation tools in tool/) because it is a single-purpose bot found by search; moderation is its kind. No LICENSE file found; licence null.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 14,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 14,
    "commits_90d": 4,
    "commits_all": 30,
    "first_commit": "2025-04-15T22:21:32+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0183,
     "TypeScript": 0.9817
    },
    "last_commit": "2026-08-23T18:06:32+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": null,
    "loc": {
     "Dockerfile": 19,
     "TypeScript": 1020
    },
    "loc_total": 1039,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     4,
     1,
     0,
     2,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     4,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "hedwig",
   "name": "Matrix Hedwig",
   "category": "tool",
   "kind": "push-gateway",
   "homepage": "https://github.com/famedly/hedwig",
   "summary": "Famedly's push gateway in Rust that delivers Matrix push notifications through Firebase Cloud Messaging and APNs.",
   "repos": [
    {
     "url": "https://github.com/famedly/hedwig",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, repositories sorted by stars, 2026-11-05"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "push gateway (FCM, APNs)",
     "how": "code",
     "source": "https://github.com/famedly/hedwig/blob/e5ce07856e7e08b20b27f42e7fc5ac29ddc095ba/Cargo.toml"
    },
    "framework": {
     "value": "own (Rust, axum)",
     "how": "code",
     "source": "https://github.com/famedly/hedwig/blob/e5ce07856e7e08b20b27f42e7fc5ac29ddc095ba/Cargo.toml"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/famedly/hedwig/blob/e5ce07856e7e08b20b27f42e7fc5ac29ddc095ba/README.md",
     "note": "not applicable"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/famedly/hedwig/blob/e5ce07856e7e08b20b27f42e7fc5ac29ddc095ba/README.md",
     "note": "Docker"
    },
    "config": {
     "value": "config.yaml or PUSHGW_* environment variables",
     "how": "claimed",
     "source": "https://github.com/famedly/hedwig/blob/e5ce07856e7e08b20b27f42e7fc5ac29ddc095ba/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/famedly/hedwig/blob/e5ce07856e7e08b20b27f42e7fc5ac29ddc095ba/Cargo.toml"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 30 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at e5ce07856e7e"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "LICENSE is the GNU AGPL v3 (-only vs -or-later not checked).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 23,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 1,
    "authors_all": 19,
    "authors_by_quarter": {
     "2023-Q1": 4,
     "2023-Q2": 4,
     "2023-Q3": 3,
     "2023-Q4": 1,
     "2024-Q1": 3,
     "2024-Q2": 1,
     "2024-Q3": 2,
     "2024-Q4": 2,
     "2025-Q1": 0,
     "2025-Q2": 2,
     "2025-Q3": 0,
     "2025-Q4": 2,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 2,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 4,
    "commits_365d": 23,
    "commits_90d": 6,
    "commits_all": 150,
    "first_commit": "2020-04-29T13:01:42+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0136,
     "Nix": 0.0166,
     "Rust": 0.9694
    },
    "last_commit": "2026-11-04T13:26:01+00:00",
    "last_tag": "v2.4.0",
    "last_tag_date": "2026-08-07T15:23:39+02:00",
    "last_tag_repo": "https://github.com/famedly/hedwig",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 31,
     "Nix": 38,
     "Rust": 2217,
     "Shell": 1
    },
    "loc_total": 2287,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 3,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     1,
     0,
     0,
     0,
     0,
     1,
     0,
     2,
     4,
     5,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     2,
     1
    ]
   }
  },
  {
   "slug": "matrix-ios-sdk",
   "name": "Matrix iOS SDK",
   "category": "sdk",
   "kind": "Objective-C / Swift",
   "homepage": "https://github.com/matrix-org/matrix-ios-sdk",
   "summary": "The Objective-C Matrix SDK for iOS behind Element iOS (classic); its pod is no longer published, the repo is still maintained.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-ios-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "ios",
    "macos"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "swift-package"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-ios-sdk/blob/097208ccc5bec72b37261d8ea0bc857c9ccd8361/MatrixSDK/Crypto/MXCryptoV2.swift",
     "note": "crypto V2 on the Rust matrix-sdk-crypto (MatrixSDKCrypto pod)"
    },
    "crypto": "matrix-sdk-crypto (vodozemac)",
    "sliding_sync": {
     "value": "not-found",
     "how": "code"
    },
    "oidc_auth": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-ios-sdk/blob/097208ccc5bec72b37261d8ea0bc857c9ccd8361/MatrixSDK/JSONModels/AutoDiscovery/MXWellKnownAuthentication.h",
     "note": "reads the MSC2965 authentication well-known only"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-ios-sdk/blob/097208ccc5bec72b37261d8ea0bc857c9ccd8361/MatrixSDK/JSONModels/MXEvent.m"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-ios-sdk/blob/097208ccc5bec72b37261d8ea0bc857c9ccd8361/MatrixSDK/MXRestClient.m"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "element-classic",
     "nio",
     "seaglass"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 15 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 097208ccc5be"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix.org iOS SDK\" (Beta, Objective-C, maintainer: Matrix.org team). Last non-bot commit 2026-05-27, 15 non-bot commits in the last year and 0 authors in the last 90 days by our count at 097208ccc5be (the collector recounts). README: \"The SDK is no longer published directly to Cocopods [...] the SDK is still being maintained.\" matrix.org labels it beta.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-java-sdk",
   "name": "Matrix Java SDK (Kamax)",
   "category": "sdk",
   "kind": "Java",
   "homepage": "https://github.com/kamax-io/matrix-java-sdk",
   "summary": "A Java SDK by Kamax.io.",
   "repos": [
    {
     "url": "https://github.com/kamax-io/matrix-java-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "maven"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at b0b634341de7"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "icon": {
    "file": "matrix-java-sdk.webp",
    "source": "https://github.com/kamax-io/matrix-java-sdk/blob/b0b634341de793e2f9bedccc5b4bd315e0bf6dd6/media/mx-java-sdk.png",
    "licence": "AGPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"Matrix Java SDK\" (Obsolete, Java, maintainer: Kamax.io). Last non-bot commit 2019-06-20, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at b0b634341de7 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-meetings",
   "name": "Matrix Meetings (NeoDateFix)",
   "category": "tool",
   "kind": "widget",
   "homepage": "https://github.com/nordeck/matrix-meetings",
   "summary": "A calendar widget plus a bot that create meeting rooms with invitees, widgets and breakout sessions in Element; now branded NeoDateFix.",
   "repos": [
    {
     "url": "https://github.com/nordeck/matrix-meetings",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "helm"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "widget and bot (meeting scheduling, meeting rooms, breakout sessions)",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-meetings/blob/03effba8c0fb770abad34f272d407eefedf488e0/README.md"
    },
    "framework": {
     "value": "matrix-bot-sdk (bot) and matrix-widget-api (widget)",
     "how": "code",
     "source": "https://github.com/nordeck/matrix-meetings/blob/03effba8c0fb770abad34f272d407eefedf488e0/matrix-meetings-bot/package.json"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-meetings/blob/03effba8c0fb770abad34f272d407eefedf488e0/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-meetings/blob/03effba8c0fb770abad34f272d407eefedf488e0/README.md",
     "note": "widget and bot containers or Helm charts; Element 1.11.29+"
    },
    "config": {
     "value": "environment files for bot and widget; managed from the widget UI",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-meetings/blob/03effba8c0fb770abad34f272d407eefedf488e0/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/nordeck/matrix-meetings/blob/03effba8c0fb770abad34f272d407eefedf488e0/matrix-meetings-bot/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "0 of 9 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 03effba8c0fb",
      "1 merged pull request(s) since 2025-11-05 whose description explicitly discloses AI help (squash merges can drop this from git history): https://github.com/nordeck/matrix-meetings/pull/966 (\"Tests were added by an LLM and curated by me\")",
      "below the 1 % threshold for occasional; set to occasional because AI-attributed commits or AI-disclosing pull requests exist (lane 7 may revise)"
     ],
     "collector_override": "squash merges dropped the disclosure from git history; a merged pull request says \"Tests were added by an LLM and curated by me\" (linked above)."
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "matrix-meetings.svg",
    "source": "https://github.com/nordeck/matrix-meetings/blob/03effba8c0fb770abad34f272d407eefedf488e0/matrix-meetings-widget/public/logo_light.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 9,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 1,
    "authors_all": 14,
    "authors_by_quarter": {
     "2023-Q1": 3,
     "2023-Q2": 4,
     "2023-Q3": 4,
     "2023-Q4": 5,
     "2024-Q1": 5,
     "2024-Q2": 0,
     "2024-Q3": 2,
     "2024-Q4": 5,
     "2025-Q1": 4,
     "2025-Q2": 1,
     "2025-Q3": 3,
     "2025-Q4": 1,
     "2026-Q1": 2,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 2,
    "commits_365d": 9,
    "commits_90d": 3,
    "commits_all": 322,
    "first_commit": "2023-02-24T10:42:53+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CloudFormation (YAML)": 0.0011,
     "JavaScript": 0.0039,
     "Smarty Template": 0.0023,
     "TypeScript": 0.9908
    },
    "last_commit": "2026-10-21T07:18:55+00:00",
    "last_tag": "@nordeck/matrix-meetings-bot@2.8.9",
    "last_tag_date": "2026-11-03T07:31:42+00:00",
    "last_tag_repo": "https://github.com/nordeck/matrix-meetings",
    "licence_detected": "Apache-2.0",
    "loc": {
     "CloudFormation (YAML)": 64,
     "Dockerfile": 33,
     "HTML": 32,
     "JSON5": 11,
     "JavaScript": 235,
     "Shell": 29,
     "Smarty Template": 139,
     "TypeScript": 59739,
     "TypeScript Typings": 14
    },
    "loc_total": 60296,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/nordeck/matrix-meetings/blob/03effba8c0fb770abad34f272d407eefedf488e0/SECURITY.md",
    "stars": null,
    "status": "small-team",
    "tags_365d": 13,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     1,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     1,
     1,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-nim-sdk",
   "name": "Matrix Nim SDK",
   "category": "sdk",
   "kind": "Nim",
   "homepage": "https://github.com/dylhack/matrix-nim-sdk",
   "summary": "A Nim library for the Matrix client-server and appservice APIs.",
   "repos": [
    {
     "url": "https://github.com/dylhack/matrix-nim-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "GPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot, bridge",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 3061909368d0"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "icon": {
    "file": "matrix-nim-sdk.webp",
    "source": "https://github.com/dylhack/matrix-nim-sdk/blob/3061909368d00ea05f0eaeedd08e7ea6de16e5ed/assets/logo.jpg",
    "licence": "GPL-3.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"Matrix Nim SDK\" (Obsolete, Nim, maintainer: dylhack). Last non-bot commit 2022-02-12, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 3061909368d0 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-poll",
   "name": "Matrix Poll (NeoChoice)",
   "category": "tool",
   "kind": "widget",
   "homepage": "https://github.com/nordeck/matrix-poll",
   "summary": "A widget for structured polls in rooms, including group-based voting with an admin view; now branded NeoChoice.",
   "repos": [
    {
     "url": "https://github.com/nordeck/matrix-poll",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "helm"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "widget (polls with groups and an admin view)",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-poll/blob/306be66eb081afaf49303b99e9768e8e915646ca/README.md"
    },
    "framework": {
     "value": "matrix-widget-api via Nordeck's matrix-widget-toolkit",
     "how": "code",
     "source": "https://github.com/nordeck/matrix-poll/blob/306be66eb081afaf49303b99e9768e8e915646ca/package.json"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-poll/blob/306be66eb081afaf49303b99e9768e8e915646ca/README.md",
     "note": "poll data is stored as room events; the README makes no encryption statement"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-poll/blob/306be66eb081afaf49303b99e9768e8e915646ca/README.md",
     "note": "\"Till now there is no officially hosted demo\"; container or Helm chart; Element 1.11.8+"
    },
    "config": {
     "value": "deploy-time environment variables; admin widget in the room",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-poll/blob/306be66eb081afaf49303b99e9768e8e915646ca/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/nordeck/matrix-poll/blob/306be66eb081afaf49303b99e9768e8e915646ca/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 4 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 306be66eb081"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "matrix-poll.svg",
    "source": "https://github.com/nordeck/matrix-poll/blob/306be66eb081afaf49303b99e9768e8e915646ca/public/logo.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 4,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 1,
    "authors_all": 15,
    "authors_by_quarter": {
     "2023-Q1": 5,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 3,
     "2024-Q1": 2,
     "2024-Q2": 0,
     "2024-Q3": 2,
     "2024-Q4": 5,
     "2025-Q1": 4,
     "2025-Q2": 0,
     "2025-Q3": 2,
     "2025-Q4": 1,
     "2026-Q1": 2,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 4,
    "commits_90d": 1,
    "commits_all": 76,
    "first_commit": "2022-11-03T08:02:54+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "HTML": 0.0013,
     "JavaScript": 0.0037,
     "Sass": 0.001,
     "Smarty Template": 0.0026,
     "TypeScript": 0.99
    },
    "last_commit": "2026-09-03T16:53:33+00:00",
    "last_tag": "v1.6.3",
    "last_tag_date": "2026-11-03T10:11:51+00:00",
    "last_tag_repo": "https://github.com/nordeck/matrix-poll",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 9,
     "HTML": 29,
     "JSON5": 11,
     "JavaScript": 83,
     "Sass": 23,
     "Smarty Template": 58,
     "TypeScript": 22031,
     "TypeScript Typings": 9
    },
    "loc_total": 22253,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/nordeck/matrix-poll/blob/306be66eb081afaf49303b99e9768e8e915646ca/SECURITY.md",
    "stars": null,
    "status": "slowing",
    "tags_365d": 4,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-registration-bot",
   "name": "Matrix Registration Bot",
   "category": "bot",
   "kind": "admin",
   "homepage": "https://github.com/moan0s/matrix-registration-bot",
   "summary": "A bot that creates, lists and revokes Synapse registration tokens from chat, for invitation-based servers.",
   "repos": [
    {
     "url": "https://github.com/moan0s/matrix-registration-bot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "pypi",
    "docker",
    "ansible-playbook"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "server admin (registration tokens)",
     "how": "claimed",
     "source": "https://github.com/moan0s/matrix-registration-bot/blob/600ef746b129adfaf7a2f1a21cdb81732cfc222c/README.md"
    },
    "framework": {
     "value": "simplematrixbotlib",
     "how": "code",
     "source": "https://github.com/moan0s/matrix-registration-bot/blob/600ef746b129adfaf7a2f1a21cdb81732cfc222c/pyproject.toml",
     "note": "on matrix-nio[e2e]"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/moan0s/matrix-registration-bot/blob/600ef746b129adfaf7a2f1a21cdb81732cfc222c/README.md",
     "note": "\"From version 1.2.0 the bot supports E2E encryption\""
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/moan0s/matrix-registration-bot/blob/600ef746b129adfaf7a2f1a21cdb81732cfc222c/README.md",
     "note": "pip, systemd, docker-compose or matrix-docker-ansible-deploy"
    },
    "config": {
     "value": "config file and chat commands",
     "how": "claimed",
     "source": "https://github.com/moan0s/matrix-registration-bot/blob/600ef746b129adfaf7a2f1a21cdb81732cfc222c/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/moan0s/matrix-registration-bot/blob/600ef746b129adfaf7a2f1a21cdb81732cfc222c/pyproject.toml"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2023-12-18), counted at 600ef746b129"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "matrix-registration-bot.webp",
    "source": "https://github.com/moan0s/matrix-registration-bot/blob/600ef746b129adfaf7a2f1a21cdb81732cfc222c/logo.png",
    "licence": "AGPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Last commit 2023-12-18, not archived; maturity is our reading.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 7,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 122,
    "first_commit": "2022-01-14T21:34:19+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0493,
     "Jinja": 0.0438,
     "Python": 0.9069
    },
    "last_commit": "2023-12-15T17:49:48+00:00",
    "last_tag": "v1.3.0",
    "last_tag_date": "2023-07-24T10:54:38+02:00",
    "last_tag_repo": "https://github.com/moan0s/matrix-registration-bot",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 27,
     "Jinja": 24,
     "Python": 497
    },
    "loc_total": 548,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mrs",
   "name": "Matrix Rooms Search (MRS)",
   "category": "tool",
   "kind": "directory",
   "homepage": "https://matrixrooms.info",
   "summary": "A standalone search engine and room directory server for public Matrix rooms, usable over HTTP and natively over the federation directory API.",
   "repos": [
    {
     "url": "https://github.com/etkecc/mrs",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "public room search and directory server",
     "how": "claimed",
     "source": "https://github.com/etkecc/mrs/blob/7a599187ecd9194797aff12ecfb4dcc45c0afa5f/README.md"
    },
    "framework": {
     "value": "gomatrixserverlib",
     "how": "code",
     "source": "https://github.com/etkecc/mrs/blob/7a599187ecd9194797aff12ecfb4dcc45c0afa5f/go.mod",
     "note": "speaks the federation API itself"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/etkecc/mrs/blob/7a599187ecd9194797aff12ecfb4dcc45c0afa5f/README.md",
     "note": "not applicable: indexes public room metadata only"
    },
    "hosting": {
     "value": "both",
     "how": "claimed",
     "source": "https://github.com/etkecc/mrs/blob/7a599187ecd9194797aff12ecfb4dcc45c0afa5f/README.md",
     "note": "self-host, or the public demo instance matrixrooms.info"
    },
    "config": {
     "value": "config file (config.yml)",
     "how": "code",
     "source": "https://github.com/etkecc/mrs/blob/7a599187ecd9194797aff12ecfb4dcc45c0afa5f/config.yml.sample"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/etkecc/mrs/blob/7a599187ecd9194797aff12ecfb4dcc45c0afa5f/go.mod"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 71 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 7a599187ecd9"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "README states opt-out / deindexing and MSC1929 support. matrix.org lists the licence as AGPL-3.0-only; the README's SPDX header says AGPL-3.0-or-later, used here. Agent files only under vendor/.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 46,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 5,
    "authors_90d": 1,
    "authors_all": 9,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 3,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 3,
     "2025-Q1": 1,
     "2025-Q2": 2,
     "2025-Q3": 1,
     "2025-Q4": 3,
     "2026-Q1": 2,
     "2026-Q2": 1,
     "2026-Q3": 2,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 2,
    "commits_365d": 46,
    "commits_90d": 5,
    "commits_all": 454,
    "first_commit": "2023-04-09T21:10:00+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9995
    },
    "last_commit": "2026-10-12T18:21:32+00:00",
    "last_tag": "v0.1.0",
    "last_tag_date": "2024-08-20T09:36:45+03:00",
    "last_tag_repo": "https://github.com/etkecc/mrs",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 9,
     "Go": 17140
    },
    "loc_total": 17149,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     1,
     4,
     0,
     1,
     2,
     2,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     3,
     0,
     0,
     0,
     2,
     5,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     9,
     3,
     2,
     1,
     2,
     0,
     1,
     0,
     1,
     1,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-steam-bridge",
   "name": "Matrix Steam Bridge",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Steam chat bridge on mautrix-go bridgev2 with a C# SteamKit2 service behind gRPC.",
   "repos": [
    {
     "url": "https://github.com/jasonlaguidice/matrix-steam-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "web search for Steam bridges"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": null,
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Steam",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/jasonlaguidice/matrix-steam-bridge/blob/a3938326350dbe488724f979033d71a01e4ab1a3/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/jasonlaguidice/matrix-steam-bridge/blob/a3938326350dbe488724f979033d71a01e4ab1a3/pkg/connector/backfill.go"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "allowed",
     "quote": "Some code in this repository was generated using the assistance of AI",
     "source": "https://github.com/jasonlaguidice/matrix-steam-bridge/blob/a3938326350dbe488724f979033d71a01e4ab1a3/README.md#L161"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "no agent files at HEAD a3938326350d; no AI-attributed commits among 62 non-bot commits in the last 365 days"
     ],
     "note": "no attributed commits, but the README states: 'Some code in this repository was generated using the assistance of AI' (README.md line 161); share unknown",
     "collector_override": "no attributed commits, but the README says \"Some code in this repository was generated using the assistance of AI\" (line 161), so AI use is stated by the project itself."
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "The README acknowledgement is a disclosure, not a contribution rule; recorded as allowed. Other Steam bridge: mx-puppet-steam (archived).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 62,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 1,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 2,
     "2026-Q1": 3,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 5,
    "commits_365d": 62,
    "commits_90d": 15,
    "commits_all": 150,
    "first_commit": "2025-08-07T06:40:52+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C#": 0.2813,
     "Dockerfile": 0.0051,
     "Go": 0.6789,
     "MSBuild": 0.0013,
     "Protocol Buffers": 0.0242,
     "Shell": 0.0091
    },
    "last_commit": "2026-10-29T22:33:20+00:00",
    "last_tag": "v1.4.0",
    "last_tag_date": "2026-09-30T21:38:31-07:00",
    "last_tag_repo": "https://github.com/jasonlaguidice/matrix-steam-bridge",
    "licence_detected": null,
    "loc": {
     "C#": 4212,
     "Dockerfile": 77,
     "Go": 10167,
     "MSBuild": 20,
     "Protocol Buffers": 362,
     "Shell": 137
    },
    "loc_total": 14975,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 6,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     9,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     11,
     0,
     0,
     0,
     0,
     0,
     0,
     3,
     0,
     0,
     0,
     3,
     1,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     3,
     0,
     0,
     1,
     1,
     0,
     0,
     10,
     0,
     1,
     2,
     2,
     2,
     3,
     0,
     0,
     0,
     0,
     3,
     0,
     3,
     0,
     0,
     2
    ]
   }
  },
  {
   "slug": "matrix-bot-light",
   "name": "matrix_bot_light",
   "category": "sdk",
   "kind": "Erlang",
   "homepage": "https://github.com/roquess/matrix_bot_light",
   "summary": "A lightweight Erlang library for Matrix bots with Olm/Megolm support, on Hex.pm.",
   "repos": [
    {
     "url": "https://github.com/roquess/matrix_bot_light",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "hex"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/roquess/matrix_bot_light/blob/4dd451f57d8e2c84948d40f36bb4590574b036ed/README.md",
     "note": "\"Full Megolm/Olm support\"; key backup import"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 10 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 4dd451f57d8e"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"matrix_bot_light\" (Beta, Erlang, maintainer: roquess). Last non-bot commit 2026-03-29, 10 non-bot commits in the last year and 0 authors in the last 90 days by our count at 4dd451f57d8e (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-chatgpt-bot-hibobmaster",
   "name": "matrix_chatgpt_bot",
   "category": "bot",
   "kind": "ai-assistant",
   "homepage": "https://github.com/hibobmaster/matrix_chatgpt_bot",
   "summary": "A Python bot for chatting with OpenAI-compatible models, LangChain (Flowise) agents and image generation from a room.",
   "repos": [
    {
     "url": "https://github.com/hibobmaster/matrix_chatgpt_bot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, repositories sorted by stars, 2026-11-05"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "AI assistant (chat, vision, image generation)",
     "how": "claimed",
     "source": "https://github.com/hibobmaster/matrix_chatgpt_bot/blob/3b3a1a44c705f40f04f097af0264630428cd3b8e/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/hibobmaster/matrix_chatgpt_bot/blob/3b3a1a44c705f40f04f097af0264630428cd3b8e/requirements.txt",
     "note": "matrix-nio[e2e]"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/hibobmaster/matrix_chatgpt_bot/blob/3b3a1a44c705f40f04f097af0264630428cd3b8e/README.md",
     "note": "\"Support E2E Encrypted Room\""
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/hibobmaster/matrix_chatgpt_bot/blob/3b3a1a44c705f40f04f097af0264630428cd3b8e/README.md",
     "note": "Docker recommended"
    },
    "config": {
     "value": "config.json or .env, and chat commands (!gpt, !chat, !pic, !lc, …)",
     "how": "claimed",
     "source": "https://github.com/hibobmaster/matrix_chatgpt_bot/blob/3b3a1a44c705f40f04f097af0264630428cd3b8e/README.md"
    },
    "ai_backend": {
     "value": "OpenAI API and compatible endpoints (LocalAI), LangChain via Flowise, DALL·E / LocalAI / stable-diffusion-webui for images",
     "how": "claimed",
     "source": "https://github.com/hibobmaster/matrix_chatgpt_bot/blob/3b3a1a44c705f40f04f097af0264630428cd3b8e/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2025-05-20), counted at 3b3a1a44c705"
     ]
    },
    "in_product": {
     "value": "core",
     "note": "The product is an LLM and image-generation front-end.",
     "source": "https://github.com/hibobmaster/matrix_chatgpt_bot/blob/3b3a1a44c705f40f04f097af0264630428cd3b8e/README.md"
    }
   },
   "notes": "Last commit 2025-05-20, none in the last 365 days; not archived. Maturity is our reading.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 125,
    "first_commit": "2023-03-05T14:24:15+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0045,
     "Python": 0.9955
    },
    "last_commit": "2025-05-20T09:40:33+00:00",
    "last_tag": "v1.9.1",
    "last_tag_date": "2025-05-20T17:40:33+08:00",
    "last_tag_repo": "https://github.com/hibobmaster/matrix_chatgpt_bot",
    "licence_detected": "MIT",
    "loc": {
     "Dockerfile": 12,
     "Python": 2649
    },
    "loc_total": 2661,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-dotnet-greenscreener",
   "name": "matrix_dotnet",
   "category": "sdk",
   "kind": "C#",
   "homepage": "https://gitlab.com/Greenscreener/matrix-dotnet",
   "summary": "A Matrix client SDK in C#.",
   "repos": [
    {
     "url": "https://gitlab.com/Greenscreener/matrix-dotnet",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 8376e6d1d500"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "icon": {
    "file": "matrix-dotnet-greenscreener.svg",
    "source": "https://gitlab.com/Greenscreener/matrix-dotnet/-/blob/8376e6d1d500ed170da647a2b7b0ecf54ae40c13/docs/images/logo.svg",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05",
    "backing": "light"
   },
   "notes": "matrix.org lists it as \"matrix_dotnet\" (Obsolete, C#, maintainer: Greenscreener). Last non-bot commit 2024-08-16, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 8376e6d1d500 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-alertmanager",
   "name": "matrix-alertmanager",
   "category": "bot",
   "kind": "notifications",
   "homepage": "https://github.com/jaywink/matrix-alertmanager",
   "summary": "A service that receives Prometheus Alertmanager webhooks and posts the alerts to chosen rooms.",
   "repos": [
    {
     "url": "https://github.com/jaywink/matrix-alertmanager",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "notifications (Prometheus Alertmanager)",
     "how": "claimed",
     "source": "https://github.com/jaywink/matrix-alertmanager/blob/666bd936b8e2c13e076254cef4c784e2d4392a67/README.md"
    },
    "framework": {
     "value": "matrix-js-sdk",
     "how": "code",
     "source": "https://github.com/jaywink/matrix-alertmanager/blob/666bd936b8e2c13e076254cef4c784e2d4392a67/package.json"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/jaywink/matrix-alertmanager/blob/666bd936b8e2c13e076254cef4c784e2d4392a67/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/jaywink/matrix-alertmanager/blob/666bd936b8e2c13e076254cef4c784e2d4392a67/README.md",
     "note": "Docker"
    },
    "config": {
     "value": "environment variables",
     "how": "claimed",
     "source": "https://github.com/jaywink/matrix-alertmanager/blob/666bd936b8e2c13e076254cef4c784e2d4392a67/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/jaywink/matrix-alertmanager/blob/666bd936b8e2c13e076254cef4c784e2d4392a67/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 21 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 666bd936b8e2"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 6,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 1,
    "authors_all": 13,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 6,
    "commits_90d": 4,
    "commits_all": 95,
    "first_commit": "2018-12-02T20:45:43+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0211,
     "JavaScript": 0.942,
     "Shell": 0.0369
    },
    "last_commit": "2026-08-15T22:43:46+00:00",
    "last_tag": "v0.10.0",
    "last_tag_date": "2026-08-16T01:43:46+03:00",
    "last_tag_repo": "https://github.com/jaywink/matrix-alertmanager",
    "licence_detected": "MIT",
    "loc": {
     "Dockerfile": 8,
     "JavaScript": 357,
     "Shell": 14
    },
    "loc_total": 379,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     4,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-android-sdk2",
   "name": "matrix-android-sdk2",
   "category": "sdk",
   "kind": "Kotlin",
   "homepage": "https://github.com/matrix-org/matrix-android-sdk2",
   "summary": "The Matrix SDK module extracted from Element Android (classic), published to Maven Central; changes go to the Element Android repo.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-android-sdk2",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "android"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "maven"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-android-sdk2/blob/9af37dfa3785ab79eb138568dcad17a8a6438239/matrix-sdk-android/build.gradle#L227",
     "note": "Rust crypto (org.matrix.rustcomponents:crypto-android)"
    },
    "crypto": "matrix-sdk-crypto (vodozemac)",
    "sliding_sync": {
     "value": "not-found",
     "how": "code"
    },
    "oidc_auth": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-android-sdk2/blob/9af37dfa3785ab79eb138568dcad17a8a6438239/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/data/AuthMetadata.kt",
     "note": "auth metadata types"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-android-sdk2/blob/9af37dfa3785ab79eb138568dcad17a8a6438239/matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/session/room/threads/ThreadMessagingTest.kt"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-android-sdk2/blob/9af37dfa3785ab79eb138568dcad17a8a6438239/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/events/model/EventType.kt"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-android-sdk2"
    },
    "used_by": [
     "element-classic",
     "schildichat"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 9 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 9af37dfa3785"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-07-21, 9 non-bot commits in the last year and 0 authors in the last 90 days by our count at 9af37dfa3785 (the collector recounts). README: \"this project is an extract of the Matrix SDK module from Element Android. Please do not open a pull request on this project.\" The legacy matrix-android-sdk has its own file.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-appservice-bridge",
   "name": "matrix-appservice-bridge",
   "category": "sdk",
   "kind": "TypeScript",
   "homepage": "https://matrix-org.github.io/matrix-appservice-bridge/",
   "summary": "Bridging infrastructure for Matrix application services in Node.js (intents, room and user stores, provisioning), used by the matrix.org bridges and hookshot.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-appservice-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-appservice-bridge/blob/6392ab0550e23fffa9f014411148c667ba2e77da/examples/encryption/package.json",
     "note": "encryption example via matrix-bot-sdk; no crypto of its own"
    },
    "crypto": "via matrix-bot-sdk (example)",
    "sliding_sync": {
     "value": "not-found",
     "how": "code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code"
    },
    "threads": {
     "value": "not-found",
     "how": "code"
    },
    "spaces": {
     "value": "not-found",
     "how": "code"
    },
    "appservice": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-appservice-bridge/blob/6392ab0550e23fffa9f014411148c667ba2e77da/README.md"
    },
    "purpose": {
     "value": "bridge",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "matrix-appservice-discord",
     "matrix-appservice-instagram-media",
     "matrix-appservice-irc",
     "matrix-appservice-mattermost",
     "matrix-appservice-mixer",
     "matrix-appservice-revolt",
     "matrix-appservice-slack",
     "matrix-appservice-twilio",
     "matrix-appservice-twitter",
     "matrix-appservice-wechaty",
     "matrix-as-mm",
     "matrix-bifrost",
     "matrix-hookshot"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 9 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 6392ab0550e2"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"matrix-appservice-bridge\" (Stable, TypeScript, maintainer: Matrix.org). Last non-bot commit 2026-09-24, 9 non-bot commits in the last year and 1 authors in the last 90 days by our count at 6392ab0550e2 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-appservice-discord",
   "name": "matrix-appservice-discord",
   "category": "bridge",
   "kind": "bot-based bridge",
   "homepage": null,
   "summary": "The Matrix.org Foundation's Discord bridge, a bot and webhook based bridge for Discord guild channels.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-appservice-discord",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/discord/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "network": "Discord",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-appservice-discord/blob/8ae61dda84df45b0a558604ef97e60e5870b201a/package.json",
     "note": "matrix-appservice-bridge"
    },
    "puppeting": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-discord/blob/8ae61dda84df45b0a558604ef97e60e5870b201a/docs/puppeting.md",
     "note": "Discord users as Matrix ghosts; Matrix users via webhooks; optional user puppeting"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-discord/blob/8ae61dda84df45b0a558604ef97e60e5870b201a/README.md",
     "note": "guild channels"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-discord/blob/8ae61dda84df45b0a558604ef97e60e5870b201a/README.md",
     "note": "a Discord bot token configured by the bridge admin"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": "https://github.com/matrix-org/matrix-appservice-bridge/blob/develop/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 8ae61dda84df; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "matrix.org labels it Beta. Last commit 2023-09-15 on the default branch, not archived. Other Discord bridges: mautrix-discord (puppeting), Out Of Your Element (bot-based, active), matrix-discord-bridge (archived), mx-puppet-discord (inactive), t2bot.io hosted this bridge publicly.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 37,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 2,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 1168,
    "first_commit": "2016-06-18T23:09:33+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0021,
     "Dockerfile": 0.0012,
     "TypeScript": 0.9965
    },
    "last_commit": "2023-09-15T08:04:30+00:00",
    "last_tag": "v4.0.0",
    "last_tag_date": "2023-09-15T04:04:43-04:00",
    "last_tag_repo": "https://github.com/matrix-org/matrix-appservice-discord",
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 26,
     "Dockerfile": 14,
     "Shell": 2,
     "TypeScript": 12130
    },
    "loc_total": 12172,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-appservice-instagram-media",
   "name": "matrix-appservice-instagram-media",
   "category": "bridge",
   "kind": "media feed bridge",
   "homepage": null,
   "summary": "Archived bridge that posted Instagram media into Matrix rooms (no chat).",
   "repos": [
    {
     "url": "https://github.com/turt2live/matrix-appservice-instagram-media",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Matrix Instagram Media Bridge (ARCHIVED))"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Instagram (posts)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/turt2live/matrix-appservice-instagram-media/blob/c60f4939a746b6db56e039f0b243ed7f09c25326/package.json",
     "note": "matrix-appservice-bridge"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD c60f4939a746; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub (last commit 2017-12-12).",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 46,
    "first_commit": "2017-02-23T21:17:46+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "HTML": 0.0214,
     "JavaScript": 0.9041,
     "Sass": 0.0226,
     "TypeScript": 0.0519
    },
    "last_commit": "2017-12-12T16:42:34+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "GPL-3.0",
    "loc": {
     "HTML": 52,
     "JavaScript": 2197,
     "Sass": 55,
     "TypeScript": 126
    },
    "loc_total": 2430,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-appservice-irc",
   "name": "matrix-appservice-irc",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://matrix-org.github.io/matrix-appservice-irc/",
   "summary": "The Matrix.org Foundation's IRC bridge: dynamically bridges IRC channels and users to Matrix rooms and ghost users.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-appservice-irc",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/irc/",
    "other": [
     "sources/community-space.tsv (IRC Matrix Bridge)"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "npm"
   ],
   "funding": [],
   "features": {
    "network": "IRC",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-appservice-irc/blob/d3edeaa8306d33a213ba5307719a9a07e8788c9b/package.json",
     "note": "matrix-appservice-bridge (Node.js/TypeScript)"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-irc/blob/d3edeaa8306d33a213ba5307719a9a07e8788c9b/docs/usage.md",
     "note": "IRC users appear as Matrix ghosts and Matrix users get IRC clients (multi-puppet)"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-irc/blob/d3edeaa8306d33a213ba5307719a9a07e8788c9b/docs/usage.md#L104-L107",
     "note": "\"the bridge cannot work in an E2EE room. The bridge will leave any room that has encryption enabled\""
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-irc/blob/d3edeaa8306d33a213ba5307719a9a07e8788c9b/docs/usage.md#L72",
     "note": "files sent to IRC as links"
    },
    "reactions_edits": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-irc/blob/d3edeaa8306d33a213ba5307719a9a07e8788c9b/docs/usage.md#L88-L102",
     "note": "edits sent with a fallback star; reactions not sent"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-irc/blob/d3edeaa8306d33a213ba5307719a9a07e8788c9b/README.md",
     "note": "channels"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-irc/blob/d3edeaa8306d33a213ba5307719a9a07e8788c9b/docs/usage.md",
     "note": "IRC nick; NickServ/SASL password stored encrypted by the bridge"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "IRC networks set their own bridge rules; Libera.Chat's matrix.org bridge was disabled in 2023 (matrix.org blog)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": "https://github.com/matrix-org/matrix-appservice-bridge/blob/develop/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD d3edeaa8306d; no AI-attributed commits among 1 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "One non-bot commit in the last 365 days (the 4.0.1 release, 2026-10-26). Shares the matrix.org bridges' contributing guide in matrix-appservice-bridge, which has no AI section. Ran the matrix.org-hosted bridges to OFTC and others; the Libera.Chat bridge was disabled in 2023.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 81,
    "authors_by_quarter": {
     "2023-Q1": 4,
     "2023-Q2": 7,
     "2023-Q3": 3,
     "2023-Q4": 0,
     "2024-Q1": 3,
     "2024-Q2": 2,
     "2024-Q3": 3,
     "2024-Q4": 1,
     "2025-Q1": 2,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 1,
    "commits_365d": 1,
    "commits_90d": 1,
    "commits_all": 3531,
    "first_commit": "2015-03-10T14:42:06+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0011,
     "CSS": 0.0043,
     "Dockerfile": 0.0011,
     "JavaScript": 0.2879,
     "TypeScript": 0.7047
    },
    "last_commit": "2026-10-26T13:44:53+00:00",
    "last_tag": "4.0.1",
    "last_tag_date": "2026-10-26T15:44:53+02:00",
    "last_tag_repo": "https://github.com/matrix-org/matrix-appservice-irc",
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 26,
     "CSS": 106,
     "Dockerfile": 27,
     "HTML": 12,
     "JavaScript": 7100,
     "Shell": 12,
     "TypeScript": 17380
    },
    "loc_total": 24663,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 1,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0
    ]
   }
  },
  {
   "slug": "matrix-appservice-mattermost",
   "name": "matrix-appservice-mattermost",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Archived appservice bridge between Matrix and Mattermost that creates a user on each side for each user.",
   "repos": [
    {
     "url": "https://github.com/dalcde/matrix-appservice-mattermost",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/mattermost/",
    "other": []
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Mattermost",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/dalcde/matrix-appservice-mattermost/blob/c131df3ea090b602fcee8c62296ba5f011fa61ed/package.json",
     "note": "matrix-appservice-bridge"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/dalcde/matrix-appservice-mattermost/blob/c131df3ea090b602fcee8c62296ba5f011fa61ed/README.md",
     "note": "a Matrix user per Mattermost user and the reverse"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD c131df3ea090; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub; last commit 2022-02-16. Other Mattermost bridge: matrix-as-mm.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 172,
    "first_commit": "2020-08-03T13:25:14+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0048,
     "JavaScript": 0.0046,
     "SQL": 0.3873,
     "Shell": 0.0011,
     "TypeScript": 0.6016
    },
    "last_commit": "2022-01-15T03:54:01+00:00",
    "last_tag": "v0.1.2",
    "last_tag_date": "2020-08-25T16:46:42+08:00",
    "last_tag_repo": "https://github.com/dalcde/matrix-appservice-mattermost",
    "licence_detected": "MIT",
    "loc": {
     "AWK": 4,
     "Dockerfile": 34,
     "JavaScript": 32,
     "SQL": 2721,
     "Shell": 8,
     "TypeScript": 4226
    },
    "loc_total": 7025,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-appservice-mixer",
   "name": "matrix-appservice-mixer",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Archived bridge to Mixer chat; Mixer itself closed in 2020.",
   "repos": [
    {
     "url": "https://github.com/turt2live/matrix-appservice-mixer",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv ([Dead] Mixer Bridge)"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Mixer",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/turt2live/matrix-appservice-mixer/blob/08827ffaa519c847cadb618467d4007580e0acd2/package.json",
     "note": "matrix-appservice-bridge"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 08827ffaa519; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub; community space room named [Dead].",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 8,
    "first_commit": "2019-12-01T00:45:57+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0452,
     "TypeScript": 0.9548
    },
    "last_commit": "2019-12-01T23:22:59+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 20,
     "TypeScript": 422
    },
    "loc_total": 442,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-appservice-node",
   "name": "matrix-appservice-node",
   "category": "sdk",
   "kind": "JavaScript / TypeScript",
   "homepage": "https://github.com/matrix-org/matrix-appservice-node",
   "summary": "The low-level Matrix application service framework for Node.js under matrix-appservice-bridge.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-appservice-node",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "how": "code"
    },
    "sliding_sync": {
     "value": "not-found",
     "how": "code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code"
    },
    "threads": {
     "value": "not-found",
     "how": "code"
    },
    "spaces": {
     "value": "not-found",
     "how": "code"
    },
    "appservice": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-appservice-node/blob/f332ccea8f3cfcc43105207b2237f0b6fe2507a8/README.md"
    },
    "purpose": {
     "value": "bot, bridge",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "matrix-appservice-bridge"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 36 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at f332ccea8f3c"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix.org AS Node SDK\" (Stable, JavaScript, maintainer: Matrix.org team). Last non-bot commit 2026-08-10, 36 non-bot commits in the last year and 1 authors in the last 90 days by our count at f332ccea8f3c (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-appservice-revolt",
   "name": "matrix-appservice-revolt",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Appservice bridge between Matrix and Revolt (now Stoat).",
   "repos": [
    {
     "url": "https://codeberg.org/austinhuang/matrix-appservice-revolt",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/stoat/",
    "other": []
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Stoat (formerly Revolt)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://codeberg.org/austinhuang/matrix-appservice-revolt/src/commit/2d64c808756f4849ee5adbe06121e51b72491812/package.json",
     "note": "matrix-appservice-bridge"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 2d64c808756f; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "icon": {
    "file": "matrix-appservice-revolt.webp",
    "source": "https://codeberg.org/repo-avatars/530fe25e4b3555e7da8287e81ab6566ffd5cb34c8fff2da8a68c59603ad10840",
    "licence": null,
    "note": "the repository's avatar on codeberg.org",
    "checked": "2026-11-05"
   },
   "notes": "Last commit 2024-07-20. matrix.org files it under Stoat.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 67,
    "first_commit": "2024-06-03T03:52:41+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "TypeScript": 1
    },
    "last_commit": "2024-07-21T03:53:06+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "TypeScript": 1351
    },
    "loc_total": 1351,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-appservice-slack",
   "name": "matrix-appservice-slack",
   "category": "bridge",
   "kind": "bot-based bridge",
   "homepage": "https://matrix-appservice-slack.readthedocs.io/",
   "summary": "The Matrix.org Foundation's Slack bridge (webhooks or the Events API, optional puppeting); archived.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-appservice-slack",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/slack/",
    "other": []
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "network": "Slack",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-appservice-slack/blob/1da3c1418c6c556ff53fe93343fcabfdca64dfcc/package.json",
     "note": "matrix-appservice-bridge"
    },
    "puppeting": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-slack/blob/1da3c1418c6c556ff53fe93343fcabfdca64dfcc/README.md",
     "note": "bot/webhook bridging with optional puppeting"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-slack/blob/1da3c1418c6c556ff53fe93343fcabfdca64dfcc/README.md",
     "note": "channels"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-appservice-slack/blob/1da3c1418c6c556ff53fe93343fcabfdca64dfcc/README.md",
     "note": "Slack webhooks or a Slack app (Events API)"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": "https://github.com/matrix-org/matrix-appservice-bridge/blob/develop/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 1da3c1418c6c; no AI-attributed commits among 5 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub; matrix.org labels it Obsolete; last commit 2026-01-22. Successor for most users: mautrix-slack.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 3,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 0,
    "authors_all": 38,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 3,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 2,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 2,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 3,
    "commits_90d": 0,
    "commits_all": 1824,
    "first_commit": "2015-09-17T15:48:43+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0022,
     "CSS": 0.0085,
     "Dockerfile": 0.0017,
     "HTML": 0.0019,
     "JavaScript": 0.0218,
     "TypeScript": 0.9638
    },
    "last_commit": "2026-01-21T13:29:18+00:00",
    "last_tag": "2.1.2",
    "last_tag_date": "2023-07-31T10:02:00+01:00",
    "last_tag_repo": "https://github.com/matrix-org/matrix-appservice-slack",
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 26,
     "CSS": 102,
     "Dockerfile": 21,
     "HTML": 23,
     "JavaScript": 262,
     "Shell": 2,
     "TypeScript": 11592
    },
    "loc_total": 12028,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-appservice-telegram-fruitiex",
   "name": "matrix-appservice-telegram (FruitieX)",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Early Node.js Telegram bridge using the Telegram Bot API.",
   "repos": [
    {
     "url": "https://github.com/FruitieX/matrix-appservice-telegram",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Node.js Telegram bridge for Matrix)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Telegram",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/FruitieX/matrix-appservice-telegram/blob/7cd529853d60ef3a166ffc800e1b906124067d05/package.json",
     "note": "own (Node.js)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 7cd529853d60; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2016-12-29. Superseded by mautrix-telegram.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 3,
    "first_commit": "2016-12-29T13:11:36+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 1
    },
    "last_commit": "2016-12-29T13:33:54+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "JavaScript": 65
    },
    "loc_total": 65,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-appservice-twilio",
   "name": "matrix-appservice-twilio",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Archived SMS bridge using Twilio.",
   "repos": [
    {
     "url": "https://github.com/turt2live/matrix-appservice-twilio",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Matrix Twilio Bridge (SMS) (ARCHIVED))"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "SMS via Twilio",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/turt2live/matrix-appservice-twilio/blob/8136fb2492e6f577d24392193b8c027bd3ae7d1a/package.json",
     "note": "matrix-appservice-bridge"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 8136fb2492e6; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub; community space room marked ARCHIVED.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 24,
    "first_commit": "2017-08-19T02:53:10+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 1
    },
    "last_commit": "2018-08-23T05:07:51+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "GPL-3.0",
    "loc": {
     "JavaScript": 1033
    },
    "loc_total": 1033,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-appservice-twitter",
   "name": "matrix-appservice-twitter",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Archived Twitter bridge (timelines and DMs) from 2016-2017.",
   "repos": [
    {
     "url": "https://github.com/Half-Shot/matrix-appservice-twitter",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Matrix Twitter Bridge)"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Twitter",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Half-Shot/matrix-appservice-twitter/blob/312c2228f1f6b94e29da53c41ea070a0b6849ce9/package.json",
     "note": "matrix-appservice-bridge"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 312c2228f1f6; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub (last commit 2016-11-01). Superseded by mautrix-twitter.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 74,
    "first_commit": "2016-05-23T15:34:37+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 1
    },
    "last_commit": "2016-11-01T19:28:12+00:00",
    "last_tag": "v0.1.0-rc2",
    "last_tag_date": "2017-01-23T15:28:14+00:00",
    "last_tag_repo": "https://github.com/Half-Shot/matrix-appservice-twitter",
    "licence_detected": "Apache-2.0",
    "loc": {
     "JavaScript": 1875
    },
    "loc_total": 1875,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-appservice-wechaty",
   "name": "matrix-appservice-wechaty",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Appservice bridge between Matrix and personal WeChat accounts through the Wechaty SDK.",
   "repos": [
    {
     "url": "https://github.com/wechaty/matrix-appservice-wechaty",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/wechat/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "WeChat",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/wechaty/matrix-appservice-wechaty/blob/6db1cfaff1c32db84847c19aefa3981df80a8d48/package.json",
     "note": "matrix-appservice-bridge + Wechaty"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 6db1cfaff1c3; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2021-10-22.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 6,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 394,
    "first_commit": "2019-05-10T08:14:19+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.012,
     "Shell": 0.0428,
     "TypeScript": 0.9447
    },
    "last_commit": "2021-10-21T19:03:42+00:00",
    "last_tag": "v0.9",
    "last_tag_date": "2021-07-30T23:59:21+08:00",
    "last_tag_repo": "https://github.com/wechaty/matrix-appservice-wechaty",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 25,
     "Shell": 89,
     "TypeScript": 1965,
     "TypeScript Typings": 1
    },
    "loc_total": 2080,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-bifrost",
   "name": "matrix-bifröst",
   "category": "bridge",
   "kind": "multi-protocol bridge",
   "homepage": null,
   "summary": "General-purpose puppeting bridge from the Matrix.org Foundation with an xmpp.js backend (XMPP) and a libpurple backend.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-bifrost",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/xmpp/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "network": "XMPP (xmpp.js); libpurple protocols",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-bifrost/blob/75ed0cc3ba6901ab6c3dc29bac2ede2e4ad26577/package.json",
     "note": "matrix-appservice-bridge"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-bifrost/blob/75ed0cc3ba6901ab6c3dc29bac2ede2e4ad26577/README.md",
     "note": "puppeting bridge"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-bifrost/blob/75ed0cc3ba6901ab6c3dc29bac2ede2e4ad26577/README.md",
     "note": "XMPP MUCs"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": "https://github.com/matrix-org/matrix-appservice-bridge/blob/develop/CONTRIBUTING.md"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "1 of 30 non-bot commits in the last 365 days (3.3 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/matrix-org/matrix-bifrost/commit/e14804ffe9855285dc7a196afe1ff5e18b9db6e0"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "README: \"This bridge is not in active development currently and intended mainly for experimentation and evaluation purposes.\" Commits continue (30 non-bot in the last year, mostly maintenance). Other XMPP bridges: Parsee (C, repo unreachable), matridge (XMPP side, slidge).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 1,
     "commits_365d": 24,
     "share_365d": 0.0417,
     "suggested_dev_usage": "occasional",
     "tools": {
      "copilot": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 4,
    "authors_90d": 2,
    "authors_all": 12,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 2,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 2,
     "2026-Q4": 2
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 2,
    "commits_365d": 24,
    "commits_90d": 5,
    "commits_all": 893,
    "first_commit": "2018-10-17T23:25:38+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0019,
     "Dockerfile": 0.0039,
     "JavaScript": 0.0012,
     "Lua": 0.0145,
     "TypeScript": 0.9781
    },
    "last_commit": "2026-10-26T14:32:32+00:00",
    "last_tag": "3.0.0",
    "last_tag_date": "2026-10-26T16:32:32+02:00",
    "last_tag_repo": "https://github.com/matrix-org/matrix-bifrost",
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 26,
     "Dockerfile": 53,
     "JavaScript": 17,
     "Lua": 198,
     "Shell": 6,
     "TypeScript": 13384
    },
    "loc_total": 13684,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 2,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     5,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     10,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     3,
     0,
     0,
     2,
     0
    ]
   }
  },
  {
   "slug": "matrix-bot-sdk",
   "name": "matrix-bot-sdk",
   "category": "sdk",
   "kind": "TypeScript",
   "homepage": "https://turt2live.github.io/matrix-bot-sdk/",
   "summary": "A TypeScript SDK for Matrix bots and appservices by Travis Ralston; Element maintains a fork (@vector-im/matrix-bot-sdk) that hookshot, Mjolnir and Draupnir use.",
   "repos": [
    {
     "url": "https://github.com/turt2live/matrix-bot-sdk",
     "forge": "github",
     "role": "main"
    },
    {
     "url": "https://github.com/element-hq/matrix-bot-sdk",
     "forge": "github",
     "role": "other"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/matrix-bot-sdk/blob/ccaa9f06d67cf2d1cef61721e86a923694bc2d62/docs/tutorials/encryption-bots.md",
     "note": "Rust crypto through @matrix-org/matrix-sdk-crypto-nodejs (both the original and the Element fork)"
    },
    "crypto": "matrix-sdk-crypto-nodejs (vodozemac)",
    "sliding_sync": {
     "value": "not-found",
     "how": "code",
     "note": "no MSC4186 or MSC3575 code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code",
     "note": "no OAuth / auth_metadata code"
    },
    "threads": {
     "value": "not-found",
     "how": "code",
     "note": "no m.thread handling found in the Element fork"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/matrix-bot-sdk/blob/ccaa9f06d67cf2d1cef61721e86a923694bc2d62/src/models/Spaces.ts"
    },
    "appservice": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/matrix-bot-sdk/blob/ccaa9f06d67cf2d1cef61721e86a923694bc2d62/docs/tutorials/appservice.md"
    },
    "purpose": {
     "value": "bot, bridge",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "draupnir",
     "gatho-bot",
     "matrix-chatgpt-bot",
     "matrix-dimension",
     "matrix-email-bot",
     "matrix-feeder",
     "matrix-hookshot",
     "matrix-meetings",
     "matrix-protection-suite",
     "matrix-trello-bot",
     "mjolnir",
     "toot-feed-bot"
    ]
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md#L26",
     "note": "Applies to the Element fork (element-hq/matrix-bot-sdk) through Element's organisation-wide policy in element-meta; the original turt2live repo has no AI text."
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 7 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at abfc53c5a040",
      "Element fork: 0 of 100 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at ccaa9f06d67c"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"matrix-bot-sdk\" (Beta, TypeScript, maintainer: Travis Ralston). Last non-bot commit 2026-03-27, 7 non-bot commits in the last year and 0 authors in the last 90 days by our count at abfc53c5a040 (the collector recounts). The original repo had 7 non-bot commits in the last year; the Element fork (role other) had 100. Element's organisation-wide AI policy covers the fork, not the original.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-chatgpt-bot",
   "name": "matrix-chatgpt-bot",
   "category": "bot",
   "kind": "ai-assistant",
   "homepage": "https://github.com/matrixgpt/matrix-chatgpt-bot",
   "summary": "A bot that relays room messages to OpenAI's ChatGPT API and posts the replies; unmaintained, pointing users to baibot.",
   "repos": [
    {
     "url": "https://github.com/matrixgpt/matrix-chatgpt-bot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, repositories sorted by stars, 2026-11-05"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "AI assistant (ChatGPT front-end)",
     "how": "claimed",
     "source": "https://github.com/matrixgpt/matrix-chatgpt-bot/blob/f2a7d6a3e158cb6040320840771fbeb4f4393db3/README.md"
    },
    "framework": {
     "value": "matrix-bot-sdk",
     "how": "code",
     "source": "https://github.com/matrixgpt/matrix-chatgpt-bot/blob/f2a7d6a3e158cb6040320840771fbeb4f4393db3/package.json"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrixgpt/matrix-chatgpt-bot/blob/f2a7d6a3e158cb6040320840771fbeb4f4393db3/README.md",
     "note": "\"Supports encryption\"; can be switched off with MATRIX_ENCRYPTION=false"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/matrixgpt/matrix-chatgpt-bot/blob/f2a7d6a3e158cb6040320840771fbeb4f4393db3/README.md",
     "note": "Docker recommended"
    },
    "config": {
     "value": ".env file",
     "how": "claimed",
     "source": "https://github.com/matrixgpt/matrix-chatgpt-bot/blob/f2a7d6a3e158cb6040320840771fbeb4f4393db3/README.md"
    },
    "ai_backend": {
     "value": "OpenAI (ChatGPT API, through node-chatgpt-api; base URL can be changed)",
     "how": "claimed",
     "source": "https://github.com/matrixgpt/matrix-chatgpt-bot/blob/f2a7d6a3e158cb6040320840771fbeb4f4393db3/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2024-09-16), counted at f2a7d6a3e158"
     ]
    },
    "in_product": {
     "value": "core",
     "note": "The product is a ChatGPT front-end.",
     "source": "https://github.com/matrixgpt/matrix-chatgpt-bot/blob/f2a7d6a3e158cb6040320840771fbeb4f4393db3/README.md"
    }
   },
   "icon": {
    "file": "matrix-chatgpt-bot.webp",
    "source": "https://avatars.githubusercontent.com/u/121816964?v=4&s=256",
    "licence": null,
    "note": "the matrixgpt organisation's avatar on GitHub",
    "checked": "2026-11-05"
   },
   "notes": "README: \"Note: This is unmaintained. You should use Baibot instead of this project.\" Archived on GitHub; last commit 2024-09-16. Licence from the LICENSE file (AGPL 3.0); check the -only / -or-later choice in package.json before reuse.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 11,
    "authors_by_quarter": {
     "2023-Q1": 5,
     "2023-Q2": 6,
     "2023-Q3": 1,
     "2023-Q4": 3,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 156,
    "first_commit": "2022-12-09T09:41:17+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0213,
     "TypeScript": 0.9787
    },
    "last_commit": "2024-09-16T01:34:38+00:00",
    "last_tag": "v3.1.5",
    "last_tag_date": "2024-02-21T14:44:24+00:00",
    "last_tag_repo": "https://github.com/matrixgpt/matrix-chatgpt-bot",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 11,
     "TypeScript": 505
    },
    "loc_total": 516,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "emacs-matrix-client",
   "name": "matrix-client.el",
   "category": "client",
   "kind": "terminal (Emacs)",
   "homepage": "https://github.com/alphapapa/matrix-client.el",
   "summary": "The older Matrix client for Emacs, superseded by Ement.el.",
   "repos": [
    {
     "url": "https://github.com/alphapapa/matrix-client.el",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv: room \"Emacs Matrix Client\" (\"Being obsoleted by new client, Ement.el\")"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "terminal"
   ],
   "apps": [
    {
     "os": "terminal",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/alphapapa/matrix-client.el/blob/5302530c4685729fbeb5759f5d3703db603a322c/README.md"
    }
   ],
   "licence": "GPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": "not-found",
    "e2ee": "not-found",
    "cross_signing": "not-found",
    "key_backup": "not-found",
    "sliding_sync": "not-found",
    "oidc_auth": "not-found",
    "multi_account": "not-found",
    "threads": "not-found",
    "spaces": "not-found",
    "voip_1to1": "not-found",
    "group_calls": "not-found",
    "reactions": "not-found",
    "edits": "not-found",
    "replies": "not-found",
    "polls": "not-found",
    "custom_emoji": "not-found",
    "stickers": "not-found",
    "location": "not-found",
    "voice_messages": "not-found",
    "rich_text_editor": "not-found",
    "url_previews": "not-found",
    "push_notifications": "not-found",
    "private_read_receipts": "not-found",
    "presence": "not-found",
    "room_upgrades": "not-found",
    "moderation_tools": "not-found",
    "accessibility": "not-found",
    "translations": "not-found",
    "telemetry": "not-found",
    "default_homeserver": "not-found",
    "fork_friendliness": "not-found"
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No commits in the last 365 days; no agent files."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "emacs-matrix-client.svg",
    "source": "https://github.com/alphapapa/matrix-client.el/blob/5302530c4685729fbeb5759f5d3703db603a322c/images/logo.svg",
    "licence": "GPL-3.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Superseded by Ement.el (same maintainer). Last commit 2021-09-16.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 8,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 682,
    "first_commit": "2015-10-03T06:31:14+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Emacs Lisp": 0.9692,
     "Shell": 0.0301
    },
    "last_commit": "2021-09-16T00:24:36+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "GPL-3.0",
    "loc": {
     "Emacs Lisp": 4153,
     "Makefile": 3,
     "Shell": 129
    },
    "loc_total": 4285,
    "main_language": "Emacs Lisp",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-clientserver-api-java",
   "name": "Matrix-ClientServer-API-java",
   "category": "sdk",
   "kind": "Java",
   "homepage": "https://github.com/JojiiOfficial/Matrix-ClientServer-API-java",
   "summary": "A small Java API for the Matrix client-server protocol.",
   "repos": [
    {
     "url": "https://github.com/JojiiOfficial/Matrix-ClientServer-API-java",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at cb733066b8cc"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix-ClientServer-API-java\" (Obsolete, Java, maintainer: Jojii). Last non-bot commit 2023-11-15, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at cb733066b8cc (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-commander",
   "name": "matrix-commander",
   "category": "client",
   "kind": "terminal (CLI)",
   "homepage": null,
   "summary": "Python command-line client for sending, receiving and scripting Matrix messages, on matrix-nio.",
   "repos": [
    {
     "url": "https://github.com/8go/matrix-commander",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/matrix-commander/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "terminal"
   ],
   "apps": [
    {
     "os": "terminal",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "pypi",
       "url": "https://pypi.org/project/matrix-commander/"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/matrix-commander.md"
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "pypi",
    "docker"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/8go/matrix-commander/blob/d4c733cb2ab35a3d65919b5e9ddfd08af4b80442/setup.cfg"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/8go/matrix-commander/blob/d4c733cb2ab35a3d65919b5e9ddfd08af4b80442/help.manual.txt#L886",
     "note": "pattern match [Megolm]"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/8go/matrix-commander/blob/d4c733cb2ab35a3d65919b5e9ddfd08af4b80442/event-templates/template-msc3440-thread.json#L9",
     "note": "pattern match [m.thread]"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/8go/matrix-commander/blob/d4c733cb2ab35a3d65919b5e9ddfd08af4b80442/event-templates/template-msc2677-react.json#L4",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/8go/matrix-commander/blob/d4c733cb2ab35a3d65919b5e9ddfd08af4b80442/event-templates/template-msc2676-edit.json#L8",
     "note": "pattern match [m.new_content]"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/8go/matrix-commander/blob/d4c733cb2ab35a3d65919b5e9ddfd08af4b80442/help.manual.txt#L51",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "GPL-3.0; mostly one Python file; pip"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (47 non-bot commits in the last 365 days) at d4c733cb2a"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "matrix-commander.svg",
    "source": "https://github.com/8go/matrix-commander/blob/d4c733cb2ab35a3d65919b5e9ddfd08af4b80442/logos/matrix-commander-logo.svg",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 34,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 4,
    "authors_90d": 1,
    "authors_all": 22,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 3,
     "2023-Q3": 2,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 2,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 2,
     "2026-Q1": 0,
     "2026-Q2": 3,
     "2026-Q3": 3,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 1,
    "commits_365d": 34,
    "commits_90d": 1,
    "commits_all": 353,
    "first_commit": "2020-07-28T11:11:16+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0105,
     "Dockerfile": 0.0023,
     "Python": 0.8581,
     "Shell": 0.1291
    },
    "last_commit": "2026-11-04T13:32:19+00:00",
    "last_tag": "v8.0.6",
    "last_tag_date": "2026-07-02T18:12:43+02:00",
    "last_tag_repo": "https://github.com/8go/matrix-commander",
    "licence_detected": "GPL-3.0",
    "loc": {
     "BASH": 111,
     "Dockerfile": 24,
     "Python": 9049,
     "Shell": 1362
    },
    "loc_total": 10546,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     4,
     0,
     0,
     0,
     26,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1
    ]
   }
  },
  {
   "slug": "matrix-commander-rs",
   "name": "matrix-commander-rs",
   "category": "client",
   "kind": "terminal (CLI)",
   "homepage": null,
   "summary": "Rust rewrite of matrix-commander on matrix-sdk: a CLI client for sending, receiving and scripting.",
   "repos": [
    {
     "url": "https://github.com/8go/matrix-commander-rs",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/matrix-commander-rs/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "terminal"
   ],
   "apps": [
    {
     "os": "terminal",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "crates.io",
       "url": "https://crates.io/crates/matrix-commander"
      }
     ],
     "source": "https://github.com/8go/matrix-commander-rs/blob/878068bd5b64c2acdb7fdb541e06910e928e1b7a/README.md"
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "crates.io"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "source": "https://github.com/8go/matrix-commander-rs/blob/878068bd5b64c2acdb7fdb541e06910e928e1b7a/Cargo.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/8go/matrix-commander-rs/blob/878068bd5b64c2acdb7fdb541e06910e928e1b7a/src/listen.rs#L820",
     "note": "pattern match [Megolm]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/8go/matrix-commander-rs/blob/878068bd5b64c2acdb7fdb541e06910e928e1b7a/src/main.rs#L977",
     "note": "pattern match [cross signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/8go/matrix-commander-rs/blob/878068bd5b64c2acdb7fdb541e06910e928e1b7a/src/listen.rs#L752",
     "note": "pattern match [key backup]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "GPL-3.0; single Rust crate, about 50 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (110 non-bot commits in the last 365 days) at 878068bd5b"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "matrix-commander-rs.svg",
    "source": "https://github.com/8go/matrix-commander-rs/blob/9f3a44cdcf36664b206936de28d2e598af1f7c13/logos/matrix-commander-rs.svg",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05",
    "backing": "light"
   },
   "notes": "README \"News\": a new maintainer joined in June 2026.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 67,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 10,
    "authors_90d": 4,
    "authors_all": 16,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 5,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 5,
     "2026-Q3": 8,
     "2026-Q4": 3
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 9,
    "commits_365d": 67,
    "commits_90d": 15,
    "commits_all": 218,
    "first_commit": "2022-10-09T07:56:52+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Python": 0.0092,
     "Rust": 0.8765,
     "Shell": 0.1143
    },
    "last_commit": "2026-10-30T03:36:52+00:00",
    "last_tag": "v0.13.0",
    "last_tag_date": "2026-10-24T12:26:01+02:00",
    "last_tag_repo": "https://github.com/8go/matrix-commander-rs",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Python": 66,
     "Rust": 6302,
     "Shell": 822
    },
    "loc_total": 7190,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 4,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     5,
     9,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     5,
     2,
     3,
     7,
     10,
     1,
     4,
     5,
     1,
     0,
     0,
     0,
     0,
     1,
     0,
     1,
     1,
     3,
     1,
     3,
     4,
     1
    ]
   }
  },
  {
   "slug": "matrix-communication-client",
   "name": "matrix-communication-client",
   "category": "sdk",
   "kind": "Java",
   "homepage": "https://github.com/Cosium/matrix-communication-client",
   "summary": "A small Java client for the Matrix protocol by Cosium.",
   "repos": [
    {
     "url": "https://github.com/Cosium/matrix-communication-client",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "maven"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 2 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 5fba31021712"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"matrix-communication-client\" (Obsolete, Java, maintainer: Réda Housni Alaoui). Last non-bot commit 2026-11-03, 2 non-bot commits in the last year and 1 authors in the last 90 days by our count at 5fba31021712 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-discord-bridge",
   "name": "matrix-discord-bridge",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Archived Python Matrix-Discord bridge with a puppeting appservice and a simpler non-puppeting webhook bridge.",
   "repos": [
    {
     "url": "https://github.com/git-bruh/matrix-discord-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/discord/",
    "other": []
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Discord",
    "framework": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/git-bruh/matrix-discord-bridge/blob/924666ab1da8b075cf2d691024afc9c0983a7656/README.md",
     "note": "own (Python), matrix-nio for the non-puppeting variant"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/git-bruh/matrix-discord-bridge/blob/924666ab1da8b075cf2d691024afc9c0983a7656/README.md",
     "note": "appservice variant only"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/git-bruh/matrix-discord-bridge/blob/924666ab1da8b075cf2d691024afc9c0983a7656/README.md",
     "note": "attachments converted to URLs"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/git-bruh/matrix-discord-bridge/blob/924666ab1da8b075cf2d691024afc9c0983a7656/README.md",
     "note": "multiple channels"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 924666ab1da8; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub; last commit 2022-09-28; matrix.org still labels it Alpha.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 150,
    "first_commit": "2020-11-11T09:42:42+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Python": 1
    },
    "last_commit": "2022-09-28T12:07:23+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "MIT",
    "loc": {
     "Python": 1797
    },
    "loc_total": 1797,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-docker-ansible-deploy",
   "name": "matrix-docker-ansible-deploy",
   "category": "tool",
   "kind": "deployment",
   "homepage": "https://github.com/spantaleev/matrix-docker-ansible-deploy",
   "summary": "An Ansible playbook that installs and upgrades a Matrix homeserver with dozens of optional bridges, bots and services, each in a Docker container under systemd.",
   "repos": [
    {
     "url": "https://github.com/spantaleev/matrix-docker-ansible-deploy",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/distributions/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "deployment (homeserver, bridges, bots, admin and monitoring stack)",
     "how": "claimed",
     "source": "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/53515e6e08088dda43f9623b2201ac510ae71455/README.md"
    },
    "framework": {
     "value": "Ansible and Docker",
     "how": "claimed",
     "source": "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/53515e6e08088dda43f9623b2201ac510ae71455/README.md"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/53515e6e08088dda43f9623b2201ac510ae71455/README.md",
     "note": "not applicable: deploys services"
    },
    "hosting": {
     "value": "both",
     "how": "claimed",
     "source": "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/53515e6e08088dda43f9623b2201ac510ae71455/README.md",
     "note": "self-host on your own server; managed hosting offered by etke.cc"
    },
    "config": {
     "value": "Ansible inventory variables (vars.yml)",
     "how": "claimed",
     "source": "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/53515e6e08088dda43f9623b2201ac510ae71455/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "claimed",
     "source": "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/53515e6e08088dda43f9623b2201ac510ae71455/README.md",
     "note": "can deploy LLM bots (baibot, others) as optional services"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "agent file: AGENTS.md",
      "bot author copilot-swe-agent[bot]: 3 commits in the last 365 days",
      "358 of 859 non-bot commits in the last 365 days carry an AI attribution (41.7%), counted at 53515e6e0808",
      "tools named in attributions: claude",
      "example: a0091c47055c (Co-Authored-By: Claude)",
      "example: c4ff5fe9b67a (Co-Authored-By: Claude)",
      "2 merged pull request(s) since 2025-11-05 whose description explicitly discloses AI help (squash merges can drop this from git history): https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4973 (Copilot coding agent); https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/5462 (\"A lot of this was AI generated\")",
      "AGENTS.md (\"Guidance for AI agents\") added 2026-07-18; most attributed commits are Co-Authored-By Claude trailers from the lead maintainer"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "The playbook itself has no AI feature; it can deploy optional LLM bots such as baibot.",
     "source": "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/53515e6e08088dda43f9623b2201ac510ae71455/README.md"
    }
   },
   "notes": "6,511 stars, 54 non-bot authors in the last 365 days. Found on matrix.org's distributions list. No contribution policy on AI found (no CONTRIBUTING file).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 4,
     "attributed_commits_365d": 359,
     "commits_365d": 844,
     "share_365d": 0.4254,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 356,
      "copilot": 3
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 51,
    "authors_90d": 13,
    "authors_all": 476,
    "authors_by_quarter": {
     "2023-Q1": 34,
     "2023-Q2": 29,
     "2023-Q3": 27,
     "2023-Q4": 21,
     "2024-Q1": 32,
     "2024-Q2": 18,
     "2024-Q3": 20,
     "2024-Q4": 17,
     "2025-Q1": 16,
     "2025-Q2": 17,
     "2025-Q3": 16,
     "2025-Q4": 14,
     "2026-Q1": 23,
     "2026-Q2": 23,
     "2026-Q3": 15,
     "2026-Q4": 10
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 72,
    "commits_365d": 844,
    "commits_90d": 232,
    "commits_all": 8253,
    "first_commit": "2017-07-31T20:08:20+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Jinja": 0.9423,
     "Nix": 0.0018,
     "Python": 0.0396,
     "Shell": 0.0157
    },
    "last_commit": "2026-11-02T21:51:47+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 5,
     "Jinja": 22957,
     "Makefile": 10,
     "Nix": 45,
     "Python": 964,
     "Shell": 383
    },
    "loc_total": 24364,
    "main_language": "Jinja",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     14,
     8,
     11,
     9,
     7,
     6,
     8,
     5,
     2,
     5,
     3,
     4,
     11,
     40,
     49,
     18,
     18,
     16,
     28,
     23,
     7,
     9,
     1,
     6,
     10,
     71,
     12,
     4,
     9,
     2,
     7,
     3,
     11,
     20,
     1,
     50,
     46,
     32,
     19,
     14,
     19,
     9,
     85,
     2,
     7,
     11,
     12,
     3,
     14,
     20,
     17,
     21
    ]
   }
  },
  {
   "slug": "matrix-email-bot",
   "name": "matrix-email-bot",
   "category": "bot",
   "kind": "notifications",
   "homepage": "https://github.com/t2bot/matrix-email-bot",
   "summary": "A bot that posts a message to a room when an email arrives at a configured address, aimed at newsletters and announcements.",
   "repos": [
    {
     "url": "https://github.com/t2bot/matrix-email-bot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "notifications (email to room)",
     "how": "claimed",
     "source": "https://github.com/t2bot/matrix-email-bot/blob/68e21579ca35db18752dd98b95ea3d696b1eb985/README.md"
    },
    "framework": {
     "value": "matrix-bot-sdk",
     "how": "code",
     "source": "https://github.com/t2bot/matrix-email-bot/blob/68e21579ca35db18752dd98b95ea3d696b1eb985/package.json"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/t2bot/matrix-email-bot/blob/68e21579ca35db18752dd98b95ea3d696b1eb985/README.md",
     "note": "\"The bot also supports encryption now\""
    },
    "hosting": {
     "value": "both",
     "how": "claimed",
     "source": "https://github.com/t2bot/matrix-email-bot/blob/68e21579ca35db18752dd98b95ea3d696b1eb985/README.md",
     "note": "a t2bot.io hosted instance, or self-host (Docker image t2bot/matrix-email-bot)"
    },
    "config": {
     "value": "config file",
     "how": "claimed",
     "source": "https://github.com/t2bot/matrix-email-bot/blob/68e21579ca35db18752dd98b95ea3d696b1eb985/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/t2bot/matrix-email-bot/blob/68e21579ca35db18752dd98b95ea3d696b1eb985/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2022-01-23), counted at 68e21579ca35"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Last commit 2022-01-23; the repo is not archived on GitHub, but its room in the matrix.org community space is marked ARCHIVED. Maturity is our reading.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 62,
    "first_commit": "2016-12-18T05:43:28+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0342,
     "JavaScript": 0.112,
     "TypeScript": 0.8539
    },
    "last_commit": "2021-10-11T01:34:49+00:00",
    "last_tag": "v2.0.1",
    "last_tag_date": "2021-10-10T19:34:49-06:00",
    "last_tag_repo": "https://github.com/t2bot/matrix-email-bot",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 18,
     "JavaScript": 59,
     "TypeScript": 450
    },
    "loc_total": 527,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-eno-bot",
   "name": "matrix-eno-bot",
   "category": "bot",
   "kind": "assistant",
   "homepage": "https://github.com/8go/matrix-eno-bot",
   "summary": "A personal-assistant and server-admin bot whose commands are mapped to scripts in a YAML command dictionary.",
   "repos": [
    {
     "url": "https://github.com/8go/matrix-eno-bot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "personal assistant and admin tool (runs configured scripts)",
     "how": "claimed",
     "source": "https://github.com/8go/matrix-eno-bot/blob/e18c5cc2bbced2229f661a3b9a8bc022e2a7d808/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/8go/matrix-eno-bot/blob/e18c5cc2bbced2229f661a3b9a8bc022e2a7d808/requirements.txt",
     "note": "based on nio-template; python-olm"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/8go/matrix-eno-bot/blob/e18c5cc2bbced2229f661a3b9a8bc022e2a7d808/README.md",
     "note": "\"bot can handle encrypted rooms by default\""
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/8go/matrix-eno-bot/blob/e18c5cc2bbced2229f661a3b9a8bc022e2a7d808/README.md",
     "note": "systemd service or Docker"
    },
    "config": {
     "value": "config.yaml plus commands.yaml command dictionary",
     "how": "claimed",
     "source": "https://github.com/8go/matrix-eno-bot/blob/e18c5cc2bbced2229f661a3b9a8bc022e2a7d808/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/8go/matrix-eno-bot/blob/e18c5cc2bbced2229f661a3b9a8bc022e2a7d808/requirements.txt"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2024-09-03), counted at e18c5cc2bbce"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "matrix-eno-bot.svg",
    "source": "https://github.com/8go/matrix-eno-bot/blob/e18c5cc2bbced2229f661a3b9a8bc022e2a7d808/eno/logos/eno-logo.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Last commit 2024-09-03, not archived. matrix.org lists the licence as WTFPL; the GitHub API and the LICENSE file at this commit is the Apache License 2.0, which we use here.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 6,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 84,
    "first_commit": "2020-07-13T15:03:15+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0055,
     "Python": 0.5019,
     "Shell": 0.4926
    },
    "last_commit": "2024-09-03T14:57:51+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 19,
     "Python": 1741,
     "Shell": 1709
    },
    "loc_total": 3469,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-erlang-sdk",
   "name": "matrix-erlang-sdk",
   "category": "sdk",
   "kind": "Erlang",
   "homepage": "https://github.com/anhallbe/matrix-erlang-sdk",
   "summary": "A Matrix SDK in Erlang.",
   "repos": [
    {
     "url": "https://github.com/anhallbe/matrix-erlang-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at a866b5e80ec9"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"matrix-erlang-sdk\" (Obsolete, Erlang, maintainer: Andreas Hallberg). Last non-bot commit 2021-09-24, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at a866b5e80ec9 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-events-sdk",
   "name": "matrix-events-sdk",
   "category": "sdk",
   "kind": "TypeScript",
   "homepage": "https://github.com/matrix-org/matrix-events-sdk",
   "summary": "An experimental JS/TS SDK for extensible events (MSC1767), marked as work in progress.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-events-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-events-sdk"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at fb0aa23d441d"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2023-01-13, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at fb0aa23d441d (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-feeder",
   "name": "matrix-feeder",
   "category": "bot",
   "kind": "media-relay",
   "homepage": "https://github.com/dragonchaser/matrix-feeder",
   "summary": "A bot that watches configured rooms for media and reposts it to another room.",
   "repos": [
    {
     "url": "https://github.com/dragonchaser/matrix-feeder",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "media relay between rooms",
     "how": "claimed",
     "source": "https://github.com/dragonchaser/matrix-feeder/blob/0b5b803aa1d6f8308b79868ecbfb4fbcc6692480/README.md"
    },
    "framework": {
     "value": "matrix-bot-sdk",
     "how": "code",
     "source": "https://github.com/dragonchaser/matrix-feeder/blob/0b5b803aa1d6f8308b79868ecbfb4fbcc6692480/package.json"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/dragonchaser/matrix-feeder/blob/0b5b803aa1d6f8308b79868ecbfb4fbcc6692480/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/dragonchaser/matrix-feeder/blob/0b5b803aa1d6f8308b79868ecbfb4fbcc6692480/README.md",
     "note": "Node.js or Docker"
    },
    "config": {
     "value": "config file (JSON)",
     "how": "claimed",
     "source": "https://github.com/dragonchaser/matrix-feeder/blob/0b5b803aa1d6f8308b79868ecbfb4fbcc6692480/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/dragonchaser/matrix-feeder/blob/0b5b803aa1d6f8308b79868ecbfb4fbcc6692480/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2022-02-10), counted at 0b5b803aa1d6"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Archived on GitHub (search API, 2026-11-05); last commit 2022-02-10.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 17,
    "first_commit": "2020-10-14T15:28:42+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0303,
     "Dockerfile": 0.0909,
     "JavaScript": 0.8788
    },
    "last_commit": "2022-02-10T09:30:44+00:00",
    "last_tag": "v0.2.1",
    "last_tag_date": "2020-10-20T19:10:23+02:00",
    "last_tag_repo": "https://github.com/dragonchaser/matrix-feeder",
    "licence_detected": "MIT",
    "loc": {
     "BASH": 2,
     "Dockerfile": 6,
     "JavaScript": 58
    },
    "loc_total": 66,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-hookshot",
   "name": "matrix-hookshot",
   "category": "bot",
   "kind": "integration",
   "homepage": "https://matrix-org.github.io/matrix-hookshot/",
   "summary": "A bot and appservice that connects rooms to GitHub, GitLab, Jira, generic webhooks, RSS/Atom feeds and other services, the successor of Go-NEB.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-hookshot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "helm"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "integrations and notifications (GitHub, GitLab, Jira, generic webhooks, feeds, Figma, OpenProject)",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-hookshot/blob/7977e5c148cc5f4e21988d410a795f855022535a/README.md"
    },
    "framework": {
     "value": "matrix-bot-sdk and matrix-appservice-bridge",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-hookshot/blob/7977e5c148cc5f4e21988d410a795f855022535a/package.json",
     "note": "Element's fork @vector-im/matrix-bot-sdk; Rust parts via napi"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-hookshot/blob/7977e5c148cc5f4e21988d410a795f855022535a/README.md",
     "note": "\"End-to-Bridge encryption allows bots to be used in encrypted Matrix rooms\""
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-hookshot/blob/7977e5c148cc5f4e21988d410a795f855022535a/README.md",
     "note": "runs as an appservice next to a homeserver; Docker image and Helm chart"
    },
    "config": {
     "value": "config file, bot commands and room widgets",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-hookshot/blob/7977e5c148cc5f4e21988d410a795f855022535a/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-hookshot/blob/7977e5c148cc5f4e21988d410a795f855022535a/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "2 of 70 non-bot commits in the last 365 days carry an AI attribution (2.9%), counted at 7977e5c148cc",
      "tools named in attributions: claude",
      "example: 5982a4ff174a (Co-Authored-By: Claude)",
      "example: 817ffd937a3a (Co-authored-by: Claude)",
      "both attributed commits are dependency PRs merged from the account \"szhu25's Automation Bot\" with Claude co-author trailers (#1401, #1438)"
     ],
     "collector_override": "the two attributed commits are dependency updates by a contributor's automation account (\"szhu25's Automation Bot\"), which the collector drops as a bot author; their Claude trailers are still AI evidence."
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "matrix-hookshot.svg",
    "source": "https://github.com/matrix-org/matrix-hookshot/blob/7977e5c148cc5f4e21988d410a795f855022535a/logo.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05",
    "backing": "light"
   },
   "notes": "Listed on matrix.org under integrations (its own description calls it a bridge to project management services); filed here as a bot because it is not on the bridges list. An open feature request proposes an LLM intent layer (https://github.com/matrix-org/matrix-hookshot/issues/1107, 2025-11-26); nothing shipped.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 68,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 9,
    "authors_90d": 7,
    "authors_all": 39,
    "authors_by_quarter": {
     "2023-Q1": 6,
     "2023-Q2": 8,
     "2023-Q3": 5,
     "2023-Q4": 6,
     "2024-Q1": 5,
     "2024-Q2": 3,
     "2024-Q3": 0,
     "2024-Q4": 1,
     "2025-Q1": 4,
     "2025-Q2": 2,
     "2025-Q3": 2,
     "2025-Q4": 4,
     "2026-Q1": 3,
     "2026-Q2": 2,
     "2026-Q3": 3,
     "2026-Q4": 5
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 9,
    "commits_365d": 68,
    "commits_90d": 24,
    "commits_all": 936,
    "first_commit": "2019-08-02T18:07:05+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0041,
     "JavaScript": 0.0067,
     "Rust": 0.0235,
     "Sass": 0.009,
     "Shell": 0.003,
     "Smarty Template": 0.0058,
     "TypeScript": 0.9459
    },
    "last_commit": "2026-11-02T12:14:25+00:00",
    "last_tag": "7.6.0",
    "last_tag_date": "2026-10-26T13:29:34+02:00",
    "last_tag_repo": "https://github.com/matrix-org/matrix-hookshot",
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 166,
     "Dockerfile": 31,
     "HTML": 29,
     "JavaScript": 271,
     "Nix": 21,
     "Rust": 954,
     "Sass": 366,
     "Shell": 120,
     "Smarty Template": 234,
     "TypeScript": 38469,
     "TypeScript Typings": 8
    },
    "loc_total": 40669,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 11,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     1,
     0,
     6,
     6,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     1,
     9,
     0,
     0,
     4,
     5,
     1,
     0,
     0,
     3,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     4,
     2,
     2,
     7,
     0,
     0,
     0,
     6,
     3
    ]
   }
  },
  {
   "slug": "matrix-ircd",
   "name": "matrix-ircd",
   "category": "bridge",
   "kind": "IRC server front-end",
   "homepage": null,
   "summary": "Archived Rust IRC daemon that let IRC clients connect to Matrix.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-ircd",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Matrix IRCd (ARCHIVED))"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "IRC (client side)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-ircd/blob/40e9ea190140367b64febb666a0abde1212bd505/Cargo.toml",
     "note": "own (Rust)"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 40e9ea190140; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub, last commit 2023-07-19; community space room marked ARCHIVED.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 12,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 2,
     "2023-Q3": 1,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 97,
    "first_commit": "2016-10-04T15:07:36+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0059,
     "Dockerfile": 0.0026,
     "Rust": 0.9914
    },
    "last_commit": "2023-07-19T09:39:20+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 18,
     "Dockerfile": 8,
     "Rust": 3010
    },
    "loc_total": 3036,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-js-sdk",
   "name": "matrix-js-sdk",
   "category": "sdk",
   "kind": "JavaScript / TypeScript",
   "homepage": "https://matrix-org.github.io/matrix-js-sdk/",
   "summary": "The Matrix client-server SDK for JavaScript and TypeScript, maintained by Element for the Matrix.org Foundation; the base of Element Web.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-js-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-js-sdk/blob/cc4ae934887a7157452dc332d5de0383197c98c8/src/rust-crypto/index.ts",
     "note": "Rust crypto (matrix-sdk-crypto via @matrix-org/matrix-sdk-crypto-wasm, so vodozemac); libolm (@matrix-org/olm) remains only as a dev dependency for tests"
    },
    "crypto": "vodozemac (via matrix-sdk-crypto-wasm)",
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-js-sdk/blob/cc4ae934887a7157452dc332d5de0383197c98c8/src/sliding-sync.ts",
     "note": "MSC4186 simplified sliding sync: requests go to the org.matrix.simplified_msc3575 prefix (src/client.ts); types still named MSC3575"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-js-sdk/blob/cc4ae934887a7157452dc332d5de0383197c98c8/src/client.ts#L9278",
     "note": "next-gen auth (MSC2965 / MSC3861): auth_metadata discovery, OAuth client id and token refresh"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-js-sdk/blob/cc4ae934887a7157452dc332d5de0383197c98c8/src/models/thread.ts"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-js-sdk/blob/cc4ae934887a7157452dc332d5de0383197c98c8/src/room-hierarchy.ts"
    },
    "qr_login": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-js-sdk/blob/cc4ae934887a7157452dc332d5de0383197c98c8/src/rendezvous/MSC4108SignInWithQR.ts",
     "note": "MSC4108 sign in with QR"
    },
    "matrixrtc": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-js-sdk/blob/cc4ae934887a7157452dc332d5de0383197c98c8/src/matrixrtc/MatrixRTCSession.ts",
     "note": "MatrixRTC sessions, used by Element Call"
    },
    "purpose": {
     "value": "client, bot, bridge",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "chooj",
     "cinny",
     "cinny-ir",
     "ditto",
     "element-call",
     "element-nextcloud",
     "element-web",
     "matrix-ai-moderator",
     "matrix-alertmanager",
     "matrix-redux-wrap",
     "mindroom-chat",
     "parula",
     "sable",
     "schildichat",
     "thunderbird",
     "wizardchat",
     "zam",
     "zooid"
    ]
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "The PR description must be written by a human and mustn't be generated by AI tools. [...] Any PR with a generated AI PR description will be closed.",
     "source": "https://github.com/matrix-org/matrix-js-sdk/blob/cc4ae934887a7157452dc332d5de0383197c98c8/CONTRIBUTING.md#L49",
     "note": "The PR template has an \"AI assistance\" section with the checkbox \"I used AI tools to help create this PR.\""
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "5 of 364 non-bot commits in the last 365 days carry an AI attribution (1.4 %), counted at cc4ae934887a",
      "https://github.com/matrix-org/matrix-js-sdk/commit/cc4ae93488 (claude)",
      "https://github.com/matrix-org/matrix-js-sdk/commit/19b6c36aa5 (copilot)",
      "https://github.com/matrix-org/matrix-js-sdk/commit/300b188d6d (claude)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix.org JS SDK\" (Stable, JavaScript, maintainer: Element Creations Ltd., on behalf of The Matrix.org Foundation). Last non-bot commit 2026-11-04, 364 non-bot commits in the last year and 27 authors in the last 90 days by our count at cc4ae934887a (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-keybase",
   "name": "matrix-keybase",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Discontinued Keybase bridge, stopped after Zoom acquired Keybase.",
   "repos": [
    {
     "url": "https://github.com/Half-Shot/matrix-keybase",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Matrix Keybase Bridge)"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Keybase",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Half-Shot/matrix-keybase/blob/edc887f3697c9009b7e6c1c4b4894e93f0da6960/package.json",
     "note": "own (Node.js)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD edc887f3697c; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub; README: \"This project has been discontinued.\"",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 9,
    "first_commit": "2019-09-11T09:35:54+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "TypeScript": 1
    },
    "last_commit": "2020-06-22T12:57:16+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "MIT",
    "loc": {
     "TypeScript": 173
    },
    "loc_total": 173,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-kt",
   "name": "matrix-kt",
   "category": "sdk",
   "kind": "Kotlin",
   "homepage": "https://github.com/Dominaezzz/matrix-kt",
   "summary": "Kotlin libraries for Matrix.",
   "repos": [
    {
     "url": "https://github.com/Dominaezzz/matrix-kt",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "maven"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 522e067eec51"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"matrix-kt\" (Obsolete, Kotlin, maintainer: Dominic Fischer). Last non-bot commit 2022-07-30, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 522e067eec51 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-media-repo",
   "name": "matrix-media-repo",
   "category": "server",
   "kind": "media repository",
   "homepage": "https://docs.t2bot.io/matrix-media-repo",
   "summary": "A highly configurable multi-domain media repository that can replace a homeserver's media handling.",
   "repos": [
    {
     "url": "https://github.com/t2bot/matrix-media-repo",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Servers/Hosting)"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "language": "Go",
    "database": "PostgreSQL",
    "msc": [
     {
      "msc": 2705,
      "state": "stable",
      "source": "https://github.com/t2bot/matrix-media-repo/blob/ed4f3181a080fbfe6c37fa7fd456c7dd9e97d8c6/api/r0/thumbnail.go#L82",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3069,
      "state": "stable",
      "source": "https://github.com/t2bot/matrix-media-repo/blob/ed4f3181a080fbfe6c37fa7fd456c7dd9e97d8c6/matrix/responses.go#L8",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3911,
      "state": "unstable",
      "source": "https://github.com/t2bot/matrix-media-repo/blob/ed4f3181a080fbfe6c37fa7fd456c7dd9e97d8c6/pipelines/_steps/download/try_download.go#L243",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3916,
      "state": "stable",
      "source": "https://github.com/t2bot/matrix-media-repo/blob/ed4f3181a080fbfe6c37fa7fd456c7dd9e97d8c6/api/r0/versions.go#L30",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4034,
      "state": "unstable",
      "source": "https://github.com/t2bot/matrix-media-repo/blob/ed4f3181a080fbfe6c37fa7fd456c7dd9e97d8c6/api/r0/public_config.go#L14",
      "note": "unstable prefix in code"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "ed4f3181a080fbfe6c37fa7fd456c7dd9e97d8c6"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "No commit on the default branch since 2025-01-16 at the time of reading.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 30,
    "authors_by_quarter": {
     "2023-Q1": 3,
     "2023-Q2": 1,
     "2023-Q3": 2,
     "2023-Q4": 5,
     "2024-Q1": 3,
     "2024-Q2": 3,
     "2024-Q3": 2,
     "2024-Q4": 3,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 1202,
    "first_commit": "2017-11-11T05:41:51+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0027,
     "Go": 0.9762,
     "HTML": 0.0064,
     "SQL": 0.0117,
     "Shell": 0.0029
    },
    "last_commit": "2025-01-16T17:40:21+00:00",
    "last_tag": "v1.3.8",
    "last_tag_date": "2025-01-16T10:40:21-07:00",
    "last_tag_repo": "https://github.com/t2bot/matrix-media-repo",
    "licence_detected": "MIT",
    "loc": {
     "Dockerfile": 56,
     "Go": 20046,
     "HTML": 132,
     "SQL": 241,
     "Shell": 59
    },
    "loc_total": 20534,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/t2bot/matrix-media-repo/blob/ed4f3181a080fbfe6c37fa7fd456c7dd9e97d8c6/SECURITY.md",
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-mqtt-bridge",
   "name": "matrix-mqtt-bridge",
   "category": "bridge",
   "kind": "IoT bridge",
   "homepage": null,
   "summary": "Rust bridge between Matrix rooms and MQTT topics.",
   "repos": [
    {
     "url": "https://github.com/DanNixon/matrix-mqtt-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-bridge"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "MQTT",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/DanNixon/matrix-mqtt-bridge/blob/f862eb6f49949fef43d10efe996bd349536e4803/Cargo.toml",
     "note": "own (Rust)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD f862eb6f4994; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2026-05-30 (dependency updates; no non-bot commits in the last year by our count).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 25,
    "first_commit": "2022-03-03T18:41:48+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Rust": 1
    },
    "last_commit": "2023-06-23T15:40:58+00:00",
    "last_tag": "v0.3.0",
    "last_tag_date": "2022-06-17T12:26:49+01:00",
    "last_tag_repo": "https://github.com/DanNixon/matrix-mqtt-bridge",
    "licence_detected": "MIT",
    "loc": {
     "Rust": 269
    },
    "loc_total": 269,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-nio",
   "name": "matrix-nio",
   "category": "sdk",
   "kind": "Python",
   "homepage": "https://matrix-nio.readthedocs.io/",
   "summary": "A Python Matrix client library designed on sans-I/O principles, with an asyncio client; the most common base for Python bots here.",
   "repos": [
    {
     "url": "https://github.com/matrix-nio/matrix-nio",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server",
    "windows",
    "macos",
    "linux"
   ],
   "licence": "ISC",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-nio/matrix-nio/blob/331c93ed3e9ca86e7444b4dfdf05086654842ace/pyproject.toml#L40",
     "note": "the e2e extra now depends on the vodozemac Python bindings; older releases used python-olm"
    },
    "crypto": "vodozemac",
    "sliding_sync": {
     "value": "not-found",
     "how": "code",
     "note": "no MSC4186 or MSC3575 code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code",
     "note": "no OAuth / auth_metadata code"
    },
    "threads": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/matrix-nio/matrix-nio/blob/331c93ed3e9ca86e7444b4dfdf05086654842ace/src/nio/api.py#L134",
     "note": "thread relation and thread-root filters"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-nio/matrix-nio/blob/331c93ed3e9ca86e7444b4dfdf05086654842ace/src/nio/api.py#L611",
     "note": "space_get_hierarchy"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "bubo",
     "hemppa",
     "langbot",
     "matridge",
     "matrix-chatgpt-bot-hibobmaster",
     "matrix-commander",
     "matrix-discord-bridge",
     "matrix-eno-bot",
     "matrix-registration-bot",
     "matrix-reminder-bot",
     "matrix-rss-bridge",
     "middleman",
     "mirage",
     "moment",
     "nio-template",
     "ollamarama-matrix",
     "opsdroid",
     "pantalaimon",
     "pipe2matrix",
     "simplematrixbotlib",
     "weechat-matrix"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 4 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 331c93ed3e9c"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"matrix-nio\" (Stable, Python, maintainer: matrix-nio maintainers). Last non-bot commit 2026-07-23, 4 non-bot commits in the last year and 0 authors in the last 90 days by our count at 331c93ed3e9c (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-protection-suite",
   "name": "matrix-protection-suite",
   "category": "sdk",
   "kind": "TypeScript",
   "homepage": "https://github.com/the-draupnir-project/Draupnir",
   "summary": "The moderation library under Draupnir (policy lists, protections); the standalone repo is superseded by a package in the Draupnir monorepo.",
   "repos": [
    {
     "url": "https://github.com/Gnuxie/matrix-protection-suite",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "AFL-3.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "bot",
     "how": "claimed",
     "source": "https://github.com/the-draupnir-project/Draupnir"
    },
    "used_by": [
     "draupnir"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 48 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 59d1a72b9461"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-04-02, 48 non-bot commits in the last year and 0 authors in the last 90 days by our count at 59d1a72b9461 (the collector recounts). README: \"The matrix-protection-suite now lives at @the-draupnir-project in a monorepo\". Draupnir has its own file (category tool).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-pstn-bridge",
   "name": "matrix-pstn-bridge",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Puppet bridge for phone numbers through VoIP providers such as Twilio and Vonage.",
   "repos": [
    {
     "url": "https://github.com/KB1RD/matrix-pstn-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Matrix PSTN Bridge)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Telephone network (PSTN) via VoIP providers",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/KB1RD/matrix-pstn-bridge/blob/51556f5faa8ddbc8450b194d77931e61a123c3e3/package.json",
     "note": "own (Node.js)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 51556f5faa8d; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2021-07-02.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 14,
    "first_commit": "2021-04-16T14:58:00+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Sass": 0.0028,
     "TypeScript": 0.9953
    },
    "last_commit": "2021-07-02T16:33:27+00:00",
    "last_tag": "v0.1.0A",
    "last_tag_date": "2021-05-06T21:29:30-04:00",
    "last_tag_repo": "https://github.com/KB1RD/matrix-pstn-bridge",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Gemfile": 2,
     "Sass": 6,
     "Shell": 2,
     "TypeScript": 2116
    },
    "loc_total": 2126,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-puppet-bridge",
   "name": "matrix-puppet-bridge",
   "category": "bridge",
   "kind": "bridge framework",
   "homepage": null,
   "summary": "Early library for building user-puppeting bridges (Slack, iMessage, Facebook and others were built on it).",
   "repos": [
    {
     "url": "https://github.com/matrix-hacks/matrix-puppet-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Matrix Puppet Bridge)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": null,
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "library for several networks",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-hacks/matrix-puppet-bridge/blob/7c2ed78e430b81a536ae4a1dc0b57f707ca6a3f0/package.json",
     "note": "own (Node.js library)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 7c2ed78e430b; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2021-02-11. The README itself points users to newer projects (\"Before you begin, consider the landscape\").",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 16,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 194,
    "first_commit": "2017-01-01T23:38:36+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 1
    },
    "last_commit": "2021-02-11T21:13:42+00:00",
    "last_tag": "v1.17.0",
    "last_tag_date": "2019-02-23T15:37:31+00:00",
    "last_tag_repo": "https://github.com/matrix-hacks/matrix-puppet-bridge",
    "licence_detected": null,
    "loc": {
     "JavaScript": 1167
    },
    "loc_total": 1167,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-puppet-slack",
   "name": "matrix-puppet-slack",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Unofficial Slack bridge using user puppeting through matrix-puppet-bridge.",
   "repos": [
    {
     "url": "https://github.com/matrix-hacks/matrix-puppet-slack",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/slack/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": null,
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Slack",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-hacks/matrix-puppet-slack/blob/3630f19e593219ecf8da440b72a4b44b7481f1bc/package.json",
     "note": "matrix-puppet-bridge"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 3630f19e5932; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2022-06-11; matrix.org labels it Obsolete and the licence unknown.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 12,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 137,
    "first_commit": "2017-01-06T19:57:58+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0056,
     "JavaScript": 0.9944
    },
    "last_commit": "2020-03-30T19:16:52+00:00",
    "last_tag": "1.12.0",
    "last_tag_date": "2019-03-06T20:33:13-06:00",
    "last_tag_repo": "https://github.com/matrix-hacks/matrix-puppet-slack",
    "licence_detected": null,
    "loc": {
     "Dockerfile": 7,
     "JavaScript": 1241
    },
    "loc_total": 1248,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-qq",
   "name": "matrix-qq",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Puppeting bridge between Matrix and QQ based on LagrangeGo and mautrix-go.",
   "repos": [
    {
     "url": "https://github.com/duo/matrix-qq",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/tencent_qq/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Tencent QQ",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/duo/matrix-qq/blob/69ec39e42a76406e105efad1d48fb21a09b2661c/go.mod",
     "note": "mautrix-go"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 69ec39e42a76; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2025-01-27. Other QQ bridge: chuangzhu/matrix-qq-bridge (archived).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 0,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 48,
    "first_commit": "2022-09-07T12:20:56+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0062,
     "Go": 0.9768,
     "Shell": 0.0171
    },
    "last_commit": "2025-01-27T11:37:53+00:00",
    "last_tag": "0.2.1",
    "last_tag_date": "2025-01-22T20:43:03+08:00",
    "last_tag_repo": "https://github.com/duo/matrix-qq",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 2060,
     "Shell": 36
    },
    "loc_total": 2109,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-qq-bridge",
   "name": "matrix-qq-bridge",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Archived work-in-progress QQ bridge in Kotlin using Trixnity and Mirai.",
   "repos": [
    {
     "url": "https://github.com/chuangzhu/matrix-qq-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-bridge"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Tencent QQ",
    "framework": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/chuangzhu/matrix-qq-bridge/blob/e8f4f394cb15569a38783192fd2489c4c47ecedb/README.md",
     "note": "Trixnity (Kotlin)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD e8f4f394cb15; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub (last commit 2022-07-23).",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 56,
    "first_commit": "2022-04-30T02:11:00+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0238,
     "Kotlin": 0.7581,
     "Nix": 0.1838,
     "Shell": 0.0343
    },
    "last_commit": "2022-07-23T04:30:09+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 68,
     "Kotlin": 2165,
     "Nix": 525,
     "Shell": 98
    },
    "loc_total": 2856,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-redux-wrap",
   "name": "matrix-redux-wrap",
   "category": "sdk",
   "kind": "JavaScript",
   "homepage": "https://github.com/lukebarnard1/matrix-redux-wrap",
   "summary": "Redux bindings for matrix-js-sdk.",
   "repos": [
    {
     "url": "https://github.com/lukebarnard1/matrix-redux-wrap",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "web"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 926123e39479"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"matrix-redux-wrap\" (Obsolete, JavaScript, maintainer: Luke Barnard). Last non-bot commit 2018-06-12, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 926123e39479 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-registration",
   "name": "matrix-registration",
   "category": "tool",
   "kind": "registration tokens",
   "homepage": null,
   "summary": "A small Python web app for token-based sign-up on a homeserver; predates the spec's own registration tokens.",
   "repos": [
    {
     "url": "https://github.com/zeratax/matrix-registration",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Not-chat Clients)",
     "notes/02.md, notes/03.md"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "pypi",
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "invite tokens for account registration",
     "how": "claimed",
     "source": "https://github.com/zeratax/matrix-registration/blob/db7aab3dbfb5dbc3254b918a88d0e38c10582d46/README.md"
    },
    "framework": {
     "value": "own (Python, Flask)",
     "how": "claimed",
     "source": "https://github.com/zeratax/matrix-registration/blob/db7aab3dbfb5dbc3254b918a88d0e38c10582d46/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/zeratax/matrix-registration/blob/db7aab3dbfb5dbc3254b918a88d0e38c10582d46/README.md"
    },
    "config": {
     "value": "config file and admin API",
     "how": "claimed",
     "source": "https://github.com/zeratax/matrix-registration/blob/db7aab3dbfb5dbc3254b918a88d0e38c10582d46/README.md"
    },
    "ai_backend": {
     "value": "none-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "last commit 2023-01-11; no agent files"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "matrix-registration.webp",
    "source": "https://github.com/zeratax/matrix-registration/blob/db7aab3dbfb5dbc3254b918a88d0e38c10582d46/matrix_registration/static/images/icon.png",
    "licence": "MIT",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Added in the integration pass. Registration tokens are now in the spec (MSC3231, v1.2) and in Synapse, which covers most of this tool's use.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 13,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 272,
    "first_commit": "2018-04-22T20:55:37+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0996,
     "HTML": 0.1315,
     "Mako": 0.0066,
     "Nix": 0.0292,
     "Python": 0.728,
     "Shell": 0.0051
    },
    "last_commit": "2023-01-11T16:53:50+00:00",
    "last_tag": "v0.9.1",
    "last_tag_date": "2021-04-11T21:51:41+02:00",
    "last_tag_repo": "https://github.com/zeratax/matrix-registration",
    "licence_detected": "MIT",
    "loc": {
     "CSS": 256,
     "HTML": 338,
     "Mako": 17,
     "Nix": 75,
     "Python": 1871,
     "Shell": 13
    },
    "loc_total": 2570,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/zeratax/matrix-registration/blob/db7aab3dbfb5dbc3254b918a88d0e38c10582d46/SECURITY.md",
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-reminder-bot",
   "name": "matrix-reminder-bot",
   "category": "bot",
   "kind": "reminders",
   "homepage": "https://github.com/anoadragon453/matrix-reminder-bot",
   "summary": "A bot for one-off, recurring and cron-style reminders and alarms, working in encrypted rooms.",
   "repos": [
    {
     "url": "https://github.com/anoadragon453/matrix-reminder-bot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "pypi",
    "docker",
    "ansible-playbook"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "reminders",
     "how": "claimed",
     "source": "https://github.com/anoadragon453/matrix-reminder-bot/blob/dd51db6359ecc6c0aa80c70ed19d2ed773c92cc1/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/anoadragon453/matrix-reminder-bot/blob/dd51db6359ecc6c0aa80c70ed19d2ed773c92cc1/setup.py",
     "note": "matrix-nio[e2e]"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/anoadragon453/matrix-reminder-bot/blob/dd51db6359ecc6c0aa80c70ed19d2ed773c92cc1/README.md",
     "note": "\"Supports end-to-end encrypted rooms\""
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/anoadragon453/matrix-reminder-bot/blob/dd51db6359ecc6c0aa80c70ed19d2ed773c92cc1/README.md",
     "note": "Docker recommended; matrix-docker-ansible-deploy role"
    },
    "config": {
     "value": "config.yaml and chat commands (!remindme, !remindroom, !listreminders, …)",
     "how": "claimed",
     "source": "https://github.com/anoadragon453/matrix-reminder-bot/blob/dd51db6359ecc6c0aa80c70ed19d2ed773c92cc1/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/anoadragon453/matrix-reminder-bot/blob/dd51db6359ecc6c0aa80c70ed19d2ed773c92cc1/setup.py"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 4 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at dd51db6359ec"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "CONTRIBUTING.md has no statement on AI.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 6,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 2,
     "2024-Q1": 3,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 2,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 193,
    "first_commit": "2020-04-26T21:10:57+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.025,
     "Python": 0.9357,
     "Shell": 0.0293,
     "Systemd": 0.01
    },
    "last_commit": "2025-09-21T19:50:49+00:00",
    "last_tag": "v0.4.0",
    "last_tag_date": "2025-09-21T21:51:28+02:00",
    "last_tag_repo": "https://github.com/anoadragon453/matrix-reminder-bot",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 35,
     "Python": 1310,
     "Shell": 41,
     "Systemd": 14
    },
    "loc_total": 1400,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-rss-bridge",
   "name": "matrix-rss-bridge",
   "category": "bot",
   "kind": "rss",
   "homepage": "https://gitlab.com/matrix-rss-bridge/matrix-rss-bridge",
   "summary": "Despite the name a bot rather than an appservice bridge; it posts new RSS feed items into Matrix rooms.",
   "repos": [
    {
     "url": "https://gitlab.com/matrix-rss-bridge/matrix-rss-bridge",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "RSS",
     "how": "claimed",
     "source": "https://gitlab.com/matrix-rss-bridge/matrix-rss-bridge/-/blob/1d039fcad25908ccade3a494717a3163740a02d8/README.md"
    },
    "framework": {
     "value": "simplematrixbotlib",
     "how": "code",
     "source": "https://gitlab.com/matrix-rss-bridge/matrix-rss-bridge/-/blob/1d039fcad25908ccade3a494717a3163740a02d8/pyproject.toml"
    },
    "e2ee": {
     "value": "partial",
     "how": "claimed",
     "source": "https://gitlab.com/matrix-rss-bridge/matrix-rss-bridge/-/blob/1d039fcad25908ccade3a494717a3163740a02d8/README.md",
     "note": "the setup guide has the bot invited to an end-to-end encrypted room; no further statement"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://gitlab.com/matrix-rss-bridge/matrix-rss-bridge/-/blob/1d039fcad25908ccade3a494717a3163740a02d8/README.md",
     "note": "Docker"
    },
    "config": {
     "value": "config file (config.toml)",
     "how": "claimed",
     "source": "https://gitlab.com/matrix-rss-bridge/matrix-rss-bridge/-/blob/1d039fcad25908ccade3a494717a3163740a02d8/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://gitlab.com/matrix-rss-bridge/matrix-rss-bridge/-/blob/1d039fcad25908ccade3a494717a3163740a02d8/pyproject.toml"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2025-10-21), counted at 1d039fcad259"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Listed under integrations on matrix.org, not under bridges, so it is filed here as a bot. Last commit 2025-10-21; maturity is our reading.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 5,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 148,
    "first_commit": "2022-07-20T23:24:17+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0465,
     "Makefile": 0.1802,
     "Python": 0.6047,
     "Shell": 0.1424,
     "Snakemake": 0.0262
    },
    "last_commit": "2025-10-21T23:37:02+00:00",
    "last_tag": "0.0.1",
    "last_tag_date": "2024-07-28T20:19:04-06:00",
    "last_tag_repo": "https://gitlab.com/matrix-rss-bridge/matrix-rss-bridge",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Dockerfile": 16,
     "Makefile": 62,
     "Python": 208,
     "Shell": 49,
     "Snakemake": 9
    },
    "loc_total": 344,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-rust-sdk",
   "name": "matrix-rust-sdk",
   "category": "sdk",
   "kind": "Rust",
   "homepage": "https://github.com/matrix-org/matrix-rust-sdk",
   "summary": "A Matrix client-server library in Rust with UniFFI bindings for Kotlin and Swift; the base of Element X and many newer clients and bots.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-rust-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "android",
    "ios",
    "windows",
    "macos",
    "linux",
    "web"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "crates.io",
    "maven",
    "swift-package"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-rust-sdk/blob/b59505e2f5980ced579dd6d4d272583a34cca76e/crates/matrix-sdk-crypto/Cargo.toml",
     "note": "own crypto crate matrix-sdk-crypto on vodozemac; also shipped as bindings (crypto-wasm, crypto-nodejs, crypto-ffi)"
    },
    "crypto": "vodozemac",
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-rust-sdk/blob/b59505e2f5980ced579dd6d4d272583a34cca76e/crates/matrix-sdk/src/sliding_sync/mod.rs#L543",
     "note": "native MSC4186 simplified sliding sync; Element X uses it exclusively"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-rust-sdk/blob/b59505e2f5980ced579dd6d4d272583a34cca76e/crates/matrix-sdk/src/authentication/oauth/mod.rs",
     "note": "OAuth 2.0 next-gen auth (MSC3861 family), including MSC4108 QR login"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-rust-sdk/blob/b59505e2f5980ced579dd6d4d272583a34cca76e/crates/matrix-sdk-ui/src/timeline/thread_list_service.rs",
     "note": "threaded timelines and a thread list service in matrix-sdk-ui"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-rust-sdk/blob/b59505e2f5980ced579dd6d4d272583a34cca76e/crates/matrix-sdk-ui/src/spaces/mod.rs",
     "note": "space service in matrix-sdk-ui"
    },
    "qr_login": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-rust-sdk/blob/b59505e2f5980ced579dd6d4d272583a34cca76e/crates/matrix-sdk-crypto/src/types/qr_login/mod.rs",
     "note": "MSC4108"
    },
    "matrixrtc": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-rust-sdk/blob/b59505e2f5980ced579dd6d4d272583a34cca76e/bindings/matrix-sdk-ffi/src/room/mod.rs",
     "note": "MatrixRTC / Element Call widget support"
    },
    "purpose": {
     "value": "client, bot, bridge",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "acter",
     "axon",
     "baibot",
     "daydream",
     "echelon",
     "element-x",
     "fermium",
     "fractal",
     "gosuto",
     "iamb",
     "komai",
     "koushi",
     "libquotient",
     "lightning",
     "mactrix",
     "mages",
     "matrix-android-sdk2",
     "matrix-commander-rs",
     "matrix-ios-sdk",
     "matrix-sdk-crypto-nodejs",
     "matrix-sdk-crypto-wasm",
     "matrix-swift",
     "mnotify",
     "rivet",
     "rumatui",
     "sable",
     "schildichat-next",
     "schildichat-revenge",
     "singularity",
     "tesseract",
     "trinity-bot",
     "wanchat",
     "yapfast"
    ]
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "If content was made with the help of AI, you **must** convey that this is the case. [...] It is **not allowed** to use AI in an autonomous-looking way to contribute to the Matrix Rust SDK.",
     "source": "https://github.com/matrix-org/matrix-rust-sdk/blob/b59505e2f5980ced579dd6d4d272583a34cca76e/CONTRIBUTING.md#L367",
     "note": "Its own \"AI policy\" section: disclosure required (PR template checkbox \"This PR was made with the help of AI.\"), human-written communication, general AI for review forbidden, no vibe coding or agent mode."
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "2 of 2822 non-bot commits in the last 365 days carry an AI attribution (0.1 %), counted at b59505e2f598",
      "https://github.com/matrix-org/matrix-rust-sdk/commit/e3a21fd842 (claude)",
      "https://github.com/matrix-org/matrix-rust-sdk/commit/c6c518553b (claude)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "icon": {
    "file": "matrix-rust-sdk.svg",
    "source": "https://github.com/matrix-org/matrix-rust-sdk/blob/b59505e2f5980ced579dd6d4d272583a34cca76e/contrib/logo.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"matrix-rust-sdk\" (Stable, Rust, maintainer: Element Creations Ltd., on behalf of The Matrix.org Foundation). Last non-bot commit 2026-10-26, 2822 non-bot commits in the last year and 55 authors in the last 90 days by our count at b59505e2f598 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-sdk-crypto-nodejs",
   "name": "matrix-sdk-crypto-nodejs",
   "category": "sdk",
   "kind": "Rust / Node.js",
   "homepage": "https://github.com/matrix-org/matrix-rust-sdk-crypto-nodejs",
   "summary": "Node.js bindings (napi) of matrix-rust-sdk's crypto crate, used by matrix-bot-sdk for encrypted bots.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-rust-sdk-crypto-nodejs",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-rust-sdk-crypto-nodejs/blob/b29219c69b996224d6b8e7c94cb40fb3e4949516/README.md",
     "note": "matrix-sdk-crypto (vodozemac)"
    },
    "crypto": "matrix-sdk-crypto (vodozemac)",
    "sliding_sync": {
     "value": "not-found",
     "note": "not applicable"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not applicable"
    },
    "threads": {
     "value": "not-found",
     "note": "not applicable"
    },
    "spaces": {
     "value": "not-found",
     "note": "not applicable"
    },
    "purpose": {
     "value": "crypto",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-rust-sdk-crypto-nodejs"
    },
    "used_by": [
     "matrix-bot-sdk",
     "toot-feed-bot"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "1 of 169 non-bot commits in the last 365 days carry an AI attribution (0.6 %), counted at b29219c69b99",
      "https://github.com/matrix-org/matrix-rust-sdk-crypto-nodejs/commit/0bd29c8376 (claude)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-09-02, 169 non-bot commits in the last year and 3 authors in the last 90 days by our count at b29219c69b99 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-sdk-crypto-wasm",
   "name": "matrix-sdk-crypto-wasm",
   "category": "sdk",
   "kind": "Rust / WebAssembly",
   "homepage": "https://github.com/matrix-org/matrix-sdk-crypto-wasm",
   "summary": "WebAssembly bindings of matrix-rust-sdk's crypto crate for JavaScript; matrix-js-sdk's crypto backend.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-sdk-crypto-wasm",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "web"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-sdk-crypto-wasm/blob/ed3a5b6c4bea2564448186d77cf004b1b135502b/src/machine.rs",
     "note": "matrix-sdk-crypto (vodozemac), with libolm migration"
    },
    "crypto": "matrix-sdk-crypto (vodozemac)",
    "sliding_sync": {
     "value": "not-found",
     "note": "not applicable"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not applicable"
    },
    "threads": {
     "value": "not-found",
     "note": "not applicable"
    },
    "spaces": {
     "value": "not-found",
     "note": "not applicable"
    },
    "qr_login": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/matrix-sdk-crypto-wasm/blob/ed3a5b6c4bea2564448186d77cf004b1b135502b/src/qr_login.rs",
     "note": "MSC4108"
    },
    "purpose": {
     "value": "crypto",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-sdk-crypto-wasm"
    },
    "used_by": [
     "cetirizine",
     "jorvik",
     "matrix-js-sdk",
     "small-talk",
     "thunderbird"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 148 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at ed3a5b6c4bea"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-11-02, 148 non-bot commits in the last year and 5 authors in the last 90 days by our count at ed3a5b6c4bea (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-sms-bridge",
   "name": "matrix-sms-bridge",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Bridge from Matrix rooms to SMS with one phone number, in Kotlin on matrix-spring-boot-sdk.",
   "repos": [
    {
     "url": "https://github.com/benkuly/matrix-sms-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/sms/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "SMS (modem via Gammu)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/benkuly/matrix-sms-bridge/blob/03d522da3044bf51996abf3dcbe980aadec02087/build.gradle.kts",
     "note": "matrix-spring-boot-sdk (Kotlin)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 03d522da3044; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2025-10-20 (none in the 365 days before 2026-11-05 counted as non-bot). Differs from mautrix-gmessages: needs its own modem/SIM, not a phone app.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 174,
    "first_commit": "2020-05-12T07:46:29+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0157,
     "Dockerfile": 0.004,
     "Kotlin": 0.9545,
     "Shell": 0.0258
    },
    "last_commit": "2025-10-20T18:30:24+00:00",
    "last_tag": "v0.5.13",
    "last_tag_date": "2025-10-20T20:30:24+02:00",
    "last_tag_repo": "https://github.com/benkuly/matrix-sms-bridge",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 78,
     "Dockerfile": 20,
     "Kotlin": 4744,
     "Shell": 128
    },
    "loc_total": 4970,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-spigot-bridge",
   "name": "matrix-spigot-bridge",
   "category": "bridge",
   "kind": "game chat bridge",
   "homepage": null,
   "summary": "Spigot plugin linking a Minecraft server chat with a Matrix room; the author stopped development.",
   "repos": [
    {
     "url": "https://github.com/lautriva/matrix-spigot-bridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-bridge"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Minecraft (Spigot)",
    "framework": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/lautriva/matrix-spigot-bridge/blob/89b8c353710445f1321f43aff6fd777fd2da7295/README.md",
     "note": "own (Java plugin)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 89b8c3537104; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "icon": {
    "file": "matrix-spigot-bridge.webp",
    "source": "https://github.com/lautriva/matrix-spigot-bridge/blob/89b8c353710445f1321f43aff6fd777fd2da7295/logo.jpg",
    "licence": "MIT",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "README: the author stopped developing the plugin. Last commit 2025-11-04 (non-bot activity none in the last year by our count).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 5,
    "first_commit": "2021-12-04T19:40:56+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Java": 1
    },
    "last_commit": "2025-11-04T07:28:33+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "MIT",
    "loc": {
     "Java": 507
    },
    "loc_total": 507,
    "main_language": "Java",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-spring-boot-sdk",
   "name": "matrix-spring-boot-sdk",
   "category": "sdk",
   "kind": "Kotlin",
   "homepage": "https://github.com/benkuly/matrix-spring-boot-sdk",
   "summary": "Spring Boot starters for Matrix clients, bots and appservices on Trixnity.",
   "repos": [
    {
     "url": "https://github.com/benkuly/matrix-spring-boot-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "Lane 6 notes (matrix-sms-bridge)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [
    "maven"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "appservice": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/benkuly/matrix-spring-boot-sdk/blob/167f047ea0c446d3f823dac55363d4b1941b8868/README.md",
     "note": "matrix-spring-boot-rest-appservice"
    },
    "purpose": {
     "value": "bot, bridge",
     "how": "claimed",
     "source": "https://github.com/benkuly/matrix-spring-boot-sdk"
    },
    "used_by": [
     "matrix-sms-bridge"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 167f047ea0c4"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2021-05-24, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 167f047ea0c4 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-tiktok",
   "name": "matrix-tiktok",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "TikTok direct-message bridge on mautrix-go bridgev2, intended for use with Beeper.",
   "repos": [
    {
     "url": "https://github.com/httpjamesm/matrix-tiktok",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-bridge"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "network": "TikTok DMs",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/httpjamesm/matrix-tiktok/blob/011a948528a4ca19c0e6a38c275af1cbd5044a06/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/httpjamesm/matrix-tiktok/blob/011a948528a4ca19c0e6a38c275af1cbd5044a06/README.md"
    },
    "reactions_edits": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/httpjamesm/matrix-tiktok/blob/011a948528a4ca19c0e6a38c275af1cbd5044a06/README.md",
     "note": "reactions"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/httpjamesm/matrix-tiktok/blob/011a948528a4ca19c0e6a38c275af1cbd5044a06/README.md"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/httpjamesm/matrix-tiktok/blob/011a948528a4ca19c0e6a38c275af1cbd5044a06/README.md",
     "note": "browser cookie string"
    },
    "network_tos_risk": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/httpjamesm/matrix-tiktok/blob/011a948528a4ca19c0e6a38c275af1cbd5044a06/README.md",
     "note": "README has a legal disclaimer: the project reverse-engineers TikTok's private API"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "config-only",
     "evidence": [
      "agent files at HEAD: https://github.com/httpjamesm/matrix-tiktok/blob/011a948528a4ca19c0e6a38c275af1cbd5044a06/.cursorrules, https://github.com/httpjamesm/matrix-tiktok/blob/011a948528a4ca19c0e6a38c275af1cbd5044a06/AGENTS.md, https://github.com/httpjamesm/matrix-tiktok/blob/011a948528a4ca19c0e6a38c275af1cbd5044a06/CLAUDE.md"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Found with GitHub topic matrix-bridge.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 3,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 74,
     "share_365d": 0,
     "suggested_dev_usage": "config-only",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 1,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 74,
    "commits_90d": 2,
    "commits_all": 74,
    "first_commit": "2026-04-13T22:17:13+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0032,
     "Go": 0.961,
     "Protocol Buffers": 0.0351
    },
    "last_commit": "2026-08-15T17:18:12+00:00",
    "last_tag": "v1.1.0",
    "last_tag_date": "2026-04-28T21:43:36-04:00",
    "last_tag_repo": "https://github.com/httpjamesm/matrix-tiktok",
    "licence_detected": "MIT",
    "loc": {
     "Dockerfile": 56,
     "Go": 16741,
     "Makefile": 3,
     "Protocol Buffers": 612,
     "Shell": 8
    },
    "loc_total": 17420,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 2,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     43,
     27,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-trello-bot",
   "name": "matrix-trello-bot",
   "category": "bot",
   "kind": "integration",
   "homepage": "https://github.com/turt2live/matrix-trello-bot",
   "summary": "A bot that links Trello boards to rooms for notifications and card commands.",
   "repos": [
    {
     "url": "https://github.com/turt2live/matrix-trello-bot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "integration (Trello)",
     "how": "claimed",
     "source": "https://github.com/turt2live/matrix-trello-bot/blob/6a43cde31fda124873b26b0af173968871549545/README.md"
    },
    "framework": {
     "value": "matrix-bot-sdk",
     "how": "code",
     "source": "https://github.com/turt2live/matrix-trello-bot/blob/6a43cde31fda124873b26b0af173968871549545/package.json"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/turt2live/matrix-trello-bot/blob/6a43cde31fda124873b26b0af173968871549545/README.md"
    },
    "hosting": {
     "value": "both",
     "how": "claimed",
     "source": "https://github.com/turt2live/matrix-trello-bot/blob/6a43cde31fda124873b26b0af173968871549545/README.md",
     "note": "https://github.com/turt2live/matrix-trello-bot/blob/6a43cde31fda124873b26b0af173968871549545/trello:t2bot.io hosted instance, or self-host with Docker"
    },
    "config": {
     "value": "config file and !trello commands",
     "how": "claimed",
     "source": "https://github.com/turt2live/matrix-trello-bot/blob/6a43cde31fda124873b26b0af173968871549545/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/turt2live/matrix-trello-bot/blob/6a43cde31fda124873b26b0af173968871549545/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2022-04-08), counted at 6a43cde31fda"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Archived on GitHub; last commit 2022-04-08. Whether the t2bot.io instance still runs was not checked.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 36,
    "first_commit": "2018-04-24T00:36:22+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0104,
     "TypeScript": 0.9896
    },
    "last_commit": "2019-11-16T22:11:19+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "GPL-3.0",
    "loc": {
     "Dockerfile": 21,
     "TypeScript": 2003
    },
    "loc_total": 2024,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-wechat",
   "name": "matrix-wechat",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Puppeting bridge between Matrix and WeChat on mautrix-go, using a Windows WeChat agent.",
   "repos": [
    {
     "url": "https://github.com/duo/matrix-wechat",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/wechat/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "WeChat",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/duo/matrix-wechat/blob/4c815c80dfb85af149833913d887f801b3a006ea/go.mod",
     "note": "mautrix-go"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 4c815c80dfb8; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2025-02-19. Other WeChat bridge: matrix-appservice-wechaty.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 37,
    "first_commit": "2022-09-13T15:01:04+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0031,
     "Go": 0.9825,
     "SQL": 0.011,
     "Shell": 0.0034
    },
    "last_commit": "2025-02-19T04:51:15+00:00",
    "last_tag": "0.2.4",
    "last_tag_date": "2024-02-14T10:06:06+08:00",
    "last_tag_repo": "https://github.com/duo/matrix-wechat",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 17,
     "Go": 5448,
     "SQL": 61,
     "Shell": 19
    },
    "loc_total": 5545,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-widget-api",
   "name": "matrix-widget-api",
   "category": "sdk",
   "kind": "TypeScript",
   "homepage": "https://github.com/matrix-org/matrix-widget-api",
   "summary": "The JavaScript/TypeScript implementation of the Matrix widget API (both the widget and the client side), used by Element and Element Call.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-widget-api",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "web"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "how": "code",
     "note": "not applicable: widgets go through the client"
    },
    "sliding_sync": {
     "value": "not-found",
     "how": "code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code"
    },
    "threads": {
     "value": "not-found",
     "how": "code"
    },
    "spaces": {
     "value": "not-found",
     "how": "code"
    },
    "purpose": {
     "value": "widget",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix-widget-api"
    },
    "used_by": [
     "matrix-barcamp",
     "matrix-meetings",
     "matrix-neoboard",
     "matrix-poll",
     "matrix-widget-toolkit"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 26 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 19e340c8d8fb"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-10-01, 26 non-bot commits in the last year and 3 authors in the last 90 days by our count at 19e340c8d8fb (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-widget-toolkit",
   "name": "matrix-widget-toolkit",
   "category": "sdk",
   "kind": "TypeScript",
   "homepage": "https://github.com/nordeck/matrix-widget-toolkit",
   "summary": "Nordeck's toolkit for building Matrix widgets with React on top of matrix-widget-api.",
   "repos": [
    {
     "url": "https://github.com/nordeck/matrix-widget-toolkit",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "web"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "widget",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-widget-toolkit"
    },
    "used_by": [
     "matrix-barcamp",
     "matrix-neoboard",
     "matrix-poll"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 8 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at ee82f956bcf1"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-10-20, 8 non-bot commits in the last year and 2 authors in the last 90 days by our count at ee82f956bcf1 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "raku-matrix-client",
   "name": "Matrix::Client",
   "category": "sdk",
   "kind": "Raku",
   "homepage": "https://github.com/matiaslina/perl6-matrix-client",
   "summary": "A Matrix client library for Raku (Perl 6).",
   "repos": [
    {
     "url": "https://github.com/matiaslina/perl6-matrix-client",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "Artistic-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 3a79571db365"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix::Client\" (Obsolete, Raku, maintainer: matiaslina). Last non-bot commit 2021-08-25, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 3a79571db365 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-android-sdk",
   "name": "Matrix.org Android SDK (legacy)",
   "category": "sdk",
   "kind": "Java",
   "homepage": "https://github.com/matrix-org/matrix-android-sdk",
   "summary": "The legacy Matrix SDK for Android, replaced by matrix-android-sdk2.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-android-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "android"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 68165b6ddbbe"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix.org Android SDK\" (Obsolete, Java, maintainer: Matrix.org team). Last non-bot commit 2020-12-09, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 68165b6ddbbe (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-angular-sdk",
   "name": "Matrix.org AngularJS SDK",
   "category": "sdk",
   "kind": "JavaScript",
   "homepage": "https://github.com/matrix-org/matrix-angular-sdk",
   "summary": "The 2014-2016 AngularJS SDK from Matrix.org, replaced by matrix-js-sdk.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-angular-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "web"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 84b0b64d3a6b"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix.org AngularJS SDK\" (Obsolete, JavaScript, maintainer: Matrix.org team). Last non-bot commit 2016-02-10, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 84b0b64d3a6b (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-python-sdk",
   "name": "Matrix.org Python SDK",
   "category": "sdk",
   "kind": "Python",
   "homepage": "https://github.com/matrix-org/matrix-python-sdk",
   "summary": "The original Python SDK by Matrix.org, superseded by matrix-nio.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/matrix-python-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "python-matrix-bot-api"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 887f5d55e165"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix.org Python SDK\" (Obsolete, Python, maintainer: Matrix.org team). Last non-bot commit 2021-07-26, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 887f5d55e165 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrixpy",
   "name": "matrix.py",
   "category": "sdk",
   "kind": "Python",
   "homepage": "https://github.com/Code-Society-Lab/matrixpy",
   "summary": "A decorator-based Python library for Matrix bots by Code Society Lab.",
   "repos": [
    {
     "url": "https://github.com/Code-Society-Lab/matrixpy",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "Lane 5 notes",
     "https://github.com/jryans/awesome-matrix"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 62 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 972033fa5158"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "icon": {
    "file": "matrixpy.svg",
    "source": "https://github.com/Code-Society-Lab/matrixpy/blob/972033fa5158916463c6bf4f476bbd940d4938cc/docs/docs/img/favicon.svg",
    "licence": "MIT",
    "note": null,
    "checked": "2026-11-05",
    "backing": "dark"
   },
   "notes": "matrix.org lists it as \"matrix.py\" (Beta, Python, maintainer: Code Society Lab, Simon Roy (PenguinBoi12)). Last non-bot commit 2026-08-03, 62 non-bot commits in the last year and 0 authors in the last 90 days by our count at 972033fa5158 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrix-swift",
   "name": "Matrix.swift",
   "category": "sdk",
   "kind": "Swift",
   "homepage": "https://github.com/circles-project/Matrix.swift",
   "summary": "A native Swift client SDK for Apple platforms by the Circles project, using the Rust crypto SDK for E2EE.",
   "repos": [
    {
     "url": "https://github.com/circles-project/Matrix.swift",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "ios",
    "macos"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "swift-package"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 9d44bd600958"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Matrix.swift\" (Obsolete, Swift, maintainer: cvwright). Last non-bot commit 2025-02-03, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 9d44bd600958 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrixapi-vrocker",
   "name": "MatrixAPI",
   "category": "sdk",
   "kind": "C#",
   "homepage": "https://github.com/VRocker/MatrixAPI",
   "summary": "A C# Matrix API library.",
   "repos": [
    {
     "url": "https://github.com/VRocker/MatrixAPI",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 1847fddf659f"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"MatrixAPI\" (Obsolete, C#, maintainer: VRocker). Last non-bot commit 2020-03-29, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 1847fddf659f (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrixbot-dotnet-sdk",
   "name": "MatrixBot .NET Core SDK",
   "category": "sdk",
   "kind": "C#",
   "homepage": "https://github.com/enimatek-nl/matrixbot-dotnet-sdk",
   "summary": "A .NET library for Matrix bots with a limited subset of the API.",
   "repos": [
    {
     "url": "https://github.com/enimatek-nl/matrixbot-dotnet-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "nuget"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at adebefc612de"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"MatrixBot .NET Core SDK\" (Obsolete, C#, maintainer: enimatek-nl). Last non-bot commit 2022-07-18, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at adebefc612de (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "matrixctl",
   "name": "MatrixCtl",
   "category": "tool",
   "kind": "admin CLI",
   "homepage": null,
   "summary": "A command-line tool to control, manage, provision and deploy Matrix homeservers remotely.",
   "repos": [
    {
     "url": "https://github.com/MichaelSasser/matrixctl",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Servers/Hosting)",
     "notes/04.md"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "terminal"
   ],
   "licence": "GPL-3.0",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "homeserver administration and deployment (Synapse admin API, Ansible)",
     "how": "claimed",
     "source": "https://github.com/MichaelSasser/matrixctl/blob/44576a1fe4a4e3134f79cb4ac30a71eb40ac911c/README.md"
    },
    "framework": {
     "value": "own (Python)",
     "how": "claimed",
     "source": "https://github.com/MichaelSasser/matrixctl/blob/44576a1fe4a4e3134f79cb4ac30a71eb40ac911c/README.md"
    },
    "hosting": {
     "value": "local CLI",
     "how": "claimed",
     "source": "https://github.com/MichaelSasser/matrixctl/blob/44576a1fe4a4e3134f79cb4ac30a71eb40ac911c/README.md"
    },
    "config": {
     "value": "config file",
     "how": "claimed",
     "source": "https://github.com/MichaelSasser/matrixctl/blob/44576a1fe4a4e3134f79cb4ac30a71eb40ac911c/README.md"
    },
    "ai_backend": {
     "value": "none-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no commits since 2025-11-05 (last 2025-10-06); no agent files"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Added in the integration pass from lane 4's notes.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 419,
    "first_commit": "2020-04-04T01:48:07+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Makefile": 0.0078,
     "Python": 0.9922
    },
    "last_commit": "2025-06-02T11:40:02+00:00",
    "last_tag": "v0.15.2",
    "last_tag_date": "2025-06-02T13:40:56+02:00",
    "last_tag_repo": "https://github.com/MichaelSasser/matrixctl",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Makefile": 60,
     "Python": 7654
    },
    "loc_total": 7714,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-zulip-bridge",
   "name": "MatrixZulipBridge",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Puppeting appservice bridge between Matrix and Zulip in Python.",
   "repos": [
    {
     "url": "https://github.com/GearKite/MatrixZulipBridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/zulip/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Zulip",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/GearKite/MatrixZulipBridge/blob/2ba51f3da2ad8bd33460c953ef91a9cfc585a2d4/pyproject.toml",
     "note": "own (Python), mautrix-python"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 2ba51f3da2ad; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2025-08-26; matrix.org labels it Beta. Other Zulip bridge: mautrix-zulip (early stage).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 2,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 97,
    "first_commit": "2024-01-19T06:52:49+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0018,
     "Python": 0.9982
    },
    "last_commit": "2024-05-09T06:42:41+00:00",
    "last_tag": "v0.4.1",
    "last_tag_date": "2024-03-14T17:44:14+02:00",
    "last_tag_repo": "https://github.com/GearKite/MatrixZulipBridge",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 8,
     "Python": 4346
    },
    "loc_total": 4354,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matterbridge",
   "name": "matterbridge",
   "category": "bridge",
   "kind": "relay bridge",
   "homepage": null,
   "summary": "Relay-bot chat bridge between many networks (Matrix, IRC, Discord, Slack, Telegram, XMPP, Mattermost, …), not an appservice.",
   "repos": [
    {
     "url": "https://github.com/42wim/matterbridge",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (matterbridge)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "snap"
   ],
   "funding": [],
   "features": {
    "network": "many (Discord, IRC, Mattermost, MS Teams, Slack, Telegram, WhatsApp, XMPP, Zulip, …)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/42wim/matterbridge/blob/c4157a4d5b49fce79c80a30730dc7c404bacd663/go.mod",
     "note": "own (Go), Matrix side via a regular user account"
    },
    "puppeting": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/hifi/heisenbridge/blob/eb6e2f7f4cf5f915811505356af9f409c7b6faea/README.md",
     "note": "relay through one Matrix account (Heisenbridge's comparison table)"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/42wim/matterbridge/blob/c4157a4d5b49fce79c80a30730dc7c404bacd663/README.md"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD c4157a4d5b49; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Our reading of maturity: last commit on master 2024-08-27, no release since; not archived. Listed in the community space Bridges section (room without topic).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 138,
    "authors_by_quarter": {
     "2023-Q1": 7,
     "2023-Q2": 5,
     "2023-Q3": 2,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 9,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 1687,
    "first_commit": "2015-10-23T15:07:05+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.004,
     "Go": 0.9953
    },
    "last_commit": "2024-08-27T17:04:05+00:00",
    "last_tag": "v1.26.0",
    "last_tag_date": "2023-01-29T18:26:52+01:00",
    "last_tag_repo": "https://github.com/42wim/matterbridge",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 53,
     "Go": 13227,
     "Systemd": 9
    },
    "loc_total": 13289,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-as-mm",
   "name": "Mattermost Matrix Connector (matrix-as-mm)",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Appservice bridge from Mattermost to share channels and chats between Mattermost and Matrix.",
   "repos": [
    {
     "url": "https://github.com/mattermost/matrix-as-mm",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/mattermost/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Mattermost",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mattermost/matrix-as-mm/blob/9f6d5a4d862d512eaaac54e421bed28da5598437/package.json",
     "note": "matrix-appservice-bridge"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 9f6d5a4d862d; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2023-07-28. Differs from matrix-appservice-mattermost (which it was forked from, per matrix.org's maintainer line) by being under the mattermost organisation.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 3,
     "2023-Q3": 1,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 9,
    "first_commit": "2023-04-24T21:14:54+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0032,
     "SQL": 0.8246,
     "Shell": 0.0015,
     "TypeScript": 0.1696
    },
    "last_commit": "2023-07-28T08:49:44+00:00",
    "last_tag": "TGZ",
    "last_tag_date": "2023-07-28T10:49:44+02:00",
    "last_tag_repo": "https://github.com/mattermost/matrix-as-mm",
    "licence_detected": "MIT",
    "loc": {
     "AWK": 4,
     "Dockerfile": 146,
     "JavaScript": 32,
     "SQL": 37535,
     "Shell": 70,
     "Systemd": 13,
     "TypeScript": 7720
    },
    "loc_total": 45520,
    "main_language": "SQL",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "maubot",
   "name": "maubot",
   "category": "bot",
   "kind": "framework",
   "homepage": "https://mau.bot",
   "summary": "A plugin-based bot system in Python; one maubot instance runs many bots and plugins, managed from a web UI.",
   "repos": [
    {
     "url": "https://github.com/maubot/maubot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "pypi",
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "bot framework and plugin host",
     "how": "claimed",
     "source": "https://github.com/maubot/maubot/blob/f20825b5e3031a89eb5b2edea7f6f7726ada9a10/README.md"
    },
    "framework": {
     "value": "mautrix-python",
     "how": "code",
     "source": "https://github.com/maubot/maubot/blob/f20825b5e3031a89eb5b2edea7f6f7726ada9a10/requirements.txt"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://docs.mau.fi/maubot/usage/encryption.html"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/maubot/maubot/blob/f20825b5e3031a89eb5b2edea7f6f7726ada9a10/README.md",
     "note": "Python or Docker"
    },
    "config": {
     "value": "web management UI, CLI (mbc) and config file",
     "how": "claimed",
     "source": "https://docs.mau.fi/maubot/"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/maubot/maubot/blob/f20825b5e3031a89eb5b2edea7f6f7726ada9a10/requirements.txt",
     "note": "none in maubot itself; third-party plugins can call LLM APIs"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 15 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at f20825b5e303"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "No LLM feature in maubot itself; LLM chat plugins exist as separate third-party projects.",
     "source": "https://github.com/maubot/maubot/blob/f20825b5e3031a89eb5b2edea7f6f7726ada9a10/requirements.txt"
    }
   },
   "icon": {
    "file": "maubot.webp",
    "source": "https://github.com/maubot/maubot/blob/f20825b5e3031a89eb5b2edea7f6f7726ada9a10/maubot/management/frontend/public/favicon.png",
    "licence": "AGPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Plugins are separate repos (for example maubot/github, maubot/gitlab, which have their own files here). Plugin list: https://plugins.mau.bot",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 15,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 4,
    "authors_90d": 1,
    "authors_all": 37,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 2,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 2,
     "2024-Q4": 2,
     "2025-Q1": 3,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 3,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 2,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 2,
    "commits_365d": 15,
    "commits_90d": 2,
    "commits_all": 643,
    "first_commit": "2018-06-13T22:41:05+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0082,
     "HTML": 0.0021,
     "JavaScript": 0.1939,
     "Jinja": 0.0061,
     "Python": 0.6888,
     "Sass": 0.0971,
     "Shell": 0.0038
    },
    "last_commit": "2026-10-24T16:29:54+00:00",
    "last_tag": "v0.6.0",
    "last_tag_date": "2025-11-17T15:53:42+02:00",
    "last_tag_repo": "https://github.com/maubot/maubot",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 80,
     "HTML": 20,
     "JavaScript": 1882,
     "Jinja": 59,
     "Python": 6685,
     "Sass": 942,
     "Shell": 37
    },
    "loc_total": 9705,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     4,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     1,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     3,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0
    ]
   }
  },
  {
   "slug": "maubot-github",
   "name": "maubot GitHub plugin",
   "category": "bot",
   "kind": "integration",
   "homepage": "https://github.com/maubot/github",
   "summary": "A maubot plugin that acts as a GitHub client and posts GitHub webhook events to rooms; a hosted instance runs on maunium.net.",
   "repos": [
    {
     "url": "https://github.com/maubot/github",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, topic matrix-bot, 2026-11-05"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "integration (GitHub)",
     "how": "claimed",
     "source": "https://github.com/maubot/github/blob/64c5d4197e6b3659afcb8e484fc6a7e66fd22ca1/README.md"
    },
    "framework": {
     "value": "maubot",
     "how": "code",
     "source": "https://github.com/maubot/github/blob/64c5d4197e6b3659afcb8e484fc6a7e66fd22ca1/pyproject.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://docs.mau.fi/maubot/usage/encryption.html",
     "note": "inherited from the maubot instance it runs in"
    },
    "hosting": {
     "value": "both",
     "how": "claimed",
     "source": "https://github.com/maubot/github/blob/64c5d4197e6b3659afcb8e484fc6a7e66fd22ca1/README.md",
     "note": "https://github.com/maubot/github/blob/64c5d4197e6b3659afcb8e484fc6a7e66fd22ca1/github:maunium.net hosted instance, or self-host in maubot"
    },
    "config": {
     "value": "maubot web UI and !github commands",
     "how": "claimed",
     "source": "https://github.com/maubot/github/blob/64c5d4197e6b3659afcb8e484fc6a7e66fd22ca1/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/maubot/github/blob/64c5d4197e6b3659afcb8e484fc6a7e66fd22ca1/pyproject.toml"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 5 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 64c5d4197e6b"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "maubot-github.webp",
    "source": "https://avatars.githubusercontent.com/u/40141856?v=4&s=256",
    "licence": null,
    "note": "maubot's logo (the maubot organisation's avatar on GitHub); this is a maubot plugin",
    "checked": "2026-11-05"
   },
   "notes": "The LICENSE file is the GNU AGPL v3; the -or-later choice follows maubot's own.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 5,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 2,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 5,
    "commits_90d": 0,
    "commits_all": 107,
    "first_commit": "2019-04-18T14:30:57+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Python": 1
    },
    "last_commit": "2026-07-22T20:31:39+00:00",
    "last_tag": "v0.2.0",
    "last_tag_date": "2025-01-28T17:40:38+02:00",
    "last_tag_repo": "https://github.com/maubot/github",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Python": 2625
    },
    "loc_total": 2625,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "maubot-gitlab",
   "name": "maubot GitLab plugin",
   "category": "bot",
   "kind": "integration",
   "homepage": "https://github.com/maubot/gitlab",
   "summary": "A maubot plugin that acts as a GitLab client (issues, merge requests) and posts GitLab webhook events to rooms.",
   "repos": [
    {
     "url": "https://github.com/maubot/gitlab",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, topic matrix-bot, 2026-11-05"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "integration (GitLab)",
     "how": "claimed",
     "source": "https://github.com/maubot/gitlab/blob/adc6e065c57b8c223ff0dc30f277deff98752224/README.md"
    },
    "framework": {
     "value": "maubot",
     "how": "claimed",
     "source": "https://github.com/maubot/gitlab/blob/adc6e065c57b8c223ff0dc30f277deff98752224/README.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://docs.mau.fi/maubot/usage/encryption.html",
     "note": "inherited from the maubot instance it runs in"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/maubot/gitlab/blob/adc6e065c57b8c223ff0dc30f277deff98752224/README.md",
     "note": "inside a maubot instance"
    },
    "config": {
     "value": "maubot web UI and !gitlab commands",
     "how": "claimed",
     "source": "https://github.com/maubot/gitlab/blob/adc6e065c57b8c223ff0dc30f277deff98752224/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/maubot/gitlab/blob/adc6e065c57b8c223ff0dc30f277deff98752224/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2025-10-13), counted at adc6e065c57b"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "maubot-gitlab.webp",
    "source": "https://avatars.githubusercontent.com/u/40141856?v=4&s=256",
    "licence": null,
    "note": "maubot's logo (the maubot organisation's avatar on GitHub); this is a maubot plugin",
    "checked": "2026-11-05"
   },
   "notes": "Last commit 2025-10-13. The LICENSE file is the GNU AGPL v3; the -or-later choice follows maubot's own and was not checked in the source headers.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 11,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 149,
    "first_commit": "2017-09-29T19:59:01+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "HTML": 0.1259,
     "Python": 0.8741
    },
    "last_commit": "2025-10-13T13:37:18+00:00",
    "last_tag": "v0.2.1",
    "last_tag_date": "2022-03-28T17:37:59+03:00",
    "last_tag_repo": "https://github.com/maubot/gitlab",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "HTML": 240,
     "Python": 1667
    },
    "loc_total": 1907,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "maunium-stickerpicker",
   "name": "Maunium sticker picker",
   "category": "tool",
   "kind": "widget",
   "homepage": "https://github.com/maunium/stickerpicker",
   "summary": "A sticker picker widget for Element with pack import from Telegram; no longer maintained since MSC2545 image packs are in the spec.",
   "repos": [
    {
     "url": "https://github.com/maunium/stickerpicker",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "widget (sticker picker, Telegram pack import, GIF search proxy)",
     "how": "claimed",
     "source": "https://github.com/maunium/stickerpicker/blob/c4ac072dd33ae5c89144d0222103786c8d8c1ba4/README.md"
    },
    "framework": {
     "value": "own widget; mautrix-go for the GIF proxy",
     "how": "code",
     "source": "https://github.com/maunium/stickerpicker/blob/c4ac072dd33ae5c89144d0222103786c8d8c1ba4/giphyproxy/go.mod"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/maunium/stickerpicker/blob/c4ac072dd33ae5c89144d0222103786c8d8c1ba4/README.md",
     "note": "not applicable: stickers are served as static media"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/maunium/stickerpicker/blob/c4ac072dd33ae5c89144d0222103786c8d8c1ba4/README.md",
     "note": "static files, e.g. GitHub Pages"
    },
    "config": {
     "value": "pack files and import script",
     "how": "claimed",
     "source": "https://github.com/maunium/stickerpicker/blob/c4ac072dd33ae5c89144d0222103786c8d8c1ba4/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/maunium/stickerpicker/blob/c4ac072dd33ae5c89144d0222103786c8d8c1ba4/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 3 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at c4ac072dd33a"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "README: \"No longer maintained … it's better to use clients that support native Matrix sticker packs.\" Archived on GitHub. LICENSE is the GNU AGPL v3 (-only vs -or-later not checked).",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 3,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 8,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 1,
     "2025-Q1": 2,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 3,
    "commits_90d": 0,
    "commits_all": 95,
    "first_commit": "2020-09-04T23:31:34+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0014,
     "Dockerfile": 0.0085,
     "Go": 0.0455,
     "HTML": 0.0149,
     "JavaScript": 0.4023,
     "Python": 0.3682,
     "Sass": 0.1592
    },
    "last_commit": "2026-05-31T11:12:55+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 2,
     "Dockerfile": 12,
     "Go": 64,
     "HTML": 21,
     "JavaScript": 566,
     "Python": 518,
     "Sass": 224
    },
    "loc_total": 1407,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mautrix-appservice-go",
   "name": "mautrix-appservice-go",
   "category": "sdk",
   "kind": "Go",
   "homepage": "https://github.com/tulir/mautrix-appservice-go",
   "summary": "The former Go appservice framework by Tulir Asokan, merged into mautrix-go.",
   "repos": [
    {
     "url": "https://github.com/tulir/mautrix-appservice-go",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "MPL-2.0",
   "fork_of": null,
   "distribution": [
    "go-module"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "bridge",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 56bc975b4e69"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"mautrix-appservice-go\" (Obsolete, Go, maintainer: Tulir). Last non-bot commit 2020-05-09, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 56bc975b4e69 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "mautrix-bluesky",
   "name": "mautrix-bluesky",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/bluesky/index.html",
   "summary": "Puppeting bridge between Matrix and Bluesky direct messages on mautrix-go bridgev2.",
   "repos": [
    {
     "url": "https://github.com/mautrix/bluesky",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:mautrix"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Bluesky DMs",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/bluesky/blob/0c2076b1b0093ed3c131520f1fd032c3898414ef/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/bluesky/blob/0c2076b1b0093ed3c131520f1fd032c3898414ef/pkg/connector/backfill.go"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/bluesky/authentication.md",
     "note": "handle + password (app password with 2FA)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "no ToS warning found"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 0c2076b1b009; no AI-attributed commits among 7 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-bluesky.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Not on matrix.org; found with GitHub search org:mautrix.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 7,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 7,
    "commits_90d": 0,
    "commits_all": 26,
    "first_commit": "2024-11-26T15:02:36+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0136,
     "Go": 0.9592,
     "Shell": 0.0272
    },
    "last_commit": "2026-05-16T11:10:29+00:00",
    "last_tag": "v0.2510.0",
    "last_tag_date": "2025-10-16T12:05:32+02:00",
    "last_tag_repo": "https://github.com/mautrix/bluesky",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 916,
     "Shell": 26
    },
    "loc_total": 955,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Segment"
    ],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     1,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mautrix-deltachat",
   "name": "mautrix-deltachat",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/deltachat/index.html",
   "summary": "Archived, unfinished puppeting bridge between Matrix and Delta Chat.",
   "repos": [
    {
     "url": "https://github.com/mautrix/deltachat",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:mautrix"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Delta Chat (email)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/deltachat/blob/23a615244f877ae7944bad8ebd23e57feb076e4c/go.mod",
     "note": "legacy mautrix-go bridge (v1)"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 23a615244f87; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-deltachat.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "GitHub description: \"A work-in-progress Matrix-DeltaChat puppeting bridge\". Archived, last commit 2023-04-05.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 11,
    "first_commit": "2023-04-03T11:49:27+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9817,
     "SQL": 0.0183
    },
    "last_commit": "2023-04-05T18:10:01+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Go": 1874,
     "SQL": 35
    },
    "loc_total": 1909,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mautrix-discord",
   "name": "mautrix-discord",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/discord/index.html",
   "summary": "Puppeting bridge between Matrix and Discord on the older mautrix-go bridge framework; a bridgev2 rewrite is in progress on a branch.",
   "repos": [
    {
     "url": "https://github.com/mautrix/discord",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/discord/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Discord",
    "framework": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/mautrix/discord/blob/c62165a46109d7c824bc0b4bb067ba02ea6528f1/go.mod",
     "note": "legacy mautrix-go bridge (v1) on the default branch; bridgev2 rewrite on the megadiscord branch, active in Nov 2026"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting; relay via webhooks (docs go/discord/relay.md)"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/discord/blob/c62165a46109d7c824bc0b4bb067ba02ea6528f1/ROADMAP.md"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/discord/blob/c62165a46109d7c824bc0b4bb067ba02ea6528f1/ROADMAP.md",
     "note": "media and files; custom emoji partial"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/discord/blob/c62165a46109d7c824bc0b4bb067ba02ea6528f1/ROADMAP.md"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/discord/blob/c62165a46109d7c824bc0b4bb067ba02ea6528f1/ROADMAP.md",
     "note": "guilds (servers) and group DMs"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/discord/authentication.md",
     "note": "QR code from the Discord mobile app, user token, or bot token"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "no ToS warning found in the docs; user-token login is a self-bot style login"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD c62165a46109; no AI-attributed commits among 18 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-discord.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Bridges for Discord: this one (user puppeting), matrix-appservice-discord (bot-based, matrix.org, inactive), Out Of Your Element (bot-based, webhooks), matrix-discord-bridge (archived), mx-puppet-discord (inactive). Default branch last commit 2026-08-16; development continues on the megadiscord branch.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 18,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 1,
    "authors_all": 14,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 4,
     "2023-Q3": 2,
     "2023-Q4": 3,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 4,
     "2025-Q2": 3,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 2,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 18,
    "commits_90d": 4,
    "commits_all": 574,
    "first_commit": "2021-11-18T07:30:50+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0013,
     "Go": 0.9588,
     "SQL": 0.0375,
     "Shell": 0.0025
    },
    "last_commit": "2026-08-16T12:19:50+00:00",
    "last_tag": "v0.7.7",
    "last_tag_date": "2026-08-16T15:19:50+03:00",
    "last_tag_repo": "https://github.com/mautrix/discord",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 15,
     "Go": 11301,
     "SQL": 442,
     "Shell": 29
    },
    "loc_total": 11787,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 2,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     2,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     5,
     0,
     0,
     1,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     3,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mautrix-facebook",
   "name": "mautrix-facebook",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/facebook/index.html",
   "summary": "Archived Python puppeting bridge for Facebook Messenger, replaced by mautrix-meta.",
   "repos": [
    {
     "url": "https://github.com/mautrix/facebook",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/facebook_messenger/",
    "other": []
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Facebook Messenger",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/facebook/blob/2ab4342c0d1ec1714de2b05f1a7ef6698d4fcf3f/setup.py",
     "note": "mautrix-python"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/facebook/blob/2ab4342c0d1ec1714de2b05f1a7ef6698d4fcf3f/ROADMAP.md",
     "note": "double puppeting"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/facebook/blob/2ab4342c0d1ec1714de2b05f1a7ef6698d4fcf3f/ROADMAP.md"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/facebook/blob/2ab4342c0d1ec1714de2b05f1a7ef6698d4fcf3f/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/facebook/blob/2ab4342c0d1ec1714de2b05f1a7ef6698d4fcf3f/ROADMAP.md"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/facebook/blob/2ab4342c0d1ec1714de2b05f1a7ef6698d4fcf3f/ROADMAP.md"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 2ab4342c0d1e; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-facebook.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Archived on GitHub (last commit 2024-03-02); matrix.org labels it Obsolete. Use mautrix-meta.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 22,
    "authors_by_quarter": {
     "2023-Q1": 6,
     "2023-Q2": 3,
     "2023-Q3": 1,
     "2023-Q4": 2,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 920,
    "first_commit": "2019-04-28T23:32:49+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0083,
     "Dockerfile": 0.0032,
     "HTML": 0.0023,
     "JavaScript": 0.0266,
     "Python": 0.9559,
     "Shell": 0.0038
    },
    "last_commit": "2024-03-02T12:40:58+00:00",
    "last_tag": "v0.5.1",
    "last_tag_date": "2023-09-19T12:55:04-04:00",
    "last_tag_repo": "https://github.com/mautrix/facebook",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 91,
     "Dockerfile": 35,
     "HTML": 25,
     "JavaScript": 293,
     "Python": 10523,
     "Shell": 42
    },
    "loc_total": 11009,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mautrix-gmessages",
   "name": "mautrix-gmessages",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/gmessages/index.html",
   "summary": "Puppeting bridge between Matrix and Google Messages (SMS, MMS and RCS through the user's Android phone).",
   "repos": [
    {
     "url": "https://github.com/mautrix/gmessages",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/sms/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "SMS/RCS via Google Messages",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/gmessages/blob/9aef7fc879107c9c819a2e7e14680465f3a90430/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/gmessages/blob/9aef7fc879107c9c819a2e7e14680465f3a90430/pkg/connector/backfill.go"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/gmessages/blob/9aef7fc879107c9c819a2e7e14680465f3a90430/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/mautrix/gmessages/blob/9aef7fc879107c9c819a2e7e14680465f3a90430/ROADMAP.md",
     "note": "reactions with RCS only"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/gmessages/blob/9aef7fc879107c9c819a2e7e14680465f3a90430/ROADMAP.md"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/gmessages/authentication.md",
     "note": "Google account cookies, or QR pairing with the Google Messages app"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "no ToS warning found in the docs"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "1 of 130 non-bot commits in the last 365 days (0.8 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/mautrix/gmessages/commit/ab98fe9d12e596ec129fe2291d730e300c027288"
     ],
     "note": "attributed share is below the rubric's 1 % line; shown as occasional because commits are attributed (lower bound)"
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-gmessages.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Needs an Android phone with Google Messages. Other SMS bridges: matrix-sms-bridge (modem), beeper android-sms (archived).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 1,
     "commits_365d": 130,
     "share_365d": 0.0077,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 4,
    "authors_90d": 3,
    "authors_all": 9,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 2,
     "2023-Q3": 2,
     "2023-Q4": 4,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 3,
     "2025-Q3": 1,
     "2025-Q4": 2,
     "2026-Q1": 3,
     "2026-Q2": 2,
     "2026-Q3": 2,
     "2026-Q4": 3
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 20,
    "commits_365d": 130,
    "commits_90d": 79,
    "commits_all": 764,
    "first_commit": "2023-06-30T09:51:54+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9383,
     "Protocol Buffers": 0.0583,
     "SQL": 0.0016,
     "Shell": 0.0013
    },
    "last_commit": "2026-11-04T22:59:31+00:00",
    "last_tag": "v0.2610.0",
    "last_tag_date": "2026-10-16T18:03:24+03:00",
    "last_tag_repo": "https://github.com/mautrix/gmessages",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 23112,
     "Protocol Buffers": 1436,
     "SQL": 39,
     "Shell": 32
    },
    "loc_total": 24632,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 8,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     3,
     2,
     1,
     0,
     0,
     1,
     0,
     0,
     0,
     1,
     2,
     1,
     2,
     0,
     1,
     1,
     0,
     0,
     1,
     3,
     0,
     3,
     1,
     6,
     3,
     3,
     3,
     1,
     1,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     2,
     0,
     7,
     0,
     1,
     21,
     9,
     12,
     12,
     3,
     0,
     1,
     2,
     9,
     7,
     2
    ]
   }
  },
  {
   "slug": "mautrix-go",
   "name": "mautrix-go",
   "category": "sdk",
   "kind": "Go",
   "homepage": "https://maunium.net/go/mautrix",
   "summary": "A Go Matrix framework by Tulir Asokan for clients, bots and appservices; includes bridgev2, the framework of the current mautrix bridges.",
   "repos": [
    {
     "url": "https://github.com/mautrix/go",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server",
    "windows",
    "macos",
    "linux"
   ],
   "licence": "MPL-2.0",
   "fork_of": null,
   "distribution": [
    "go-module"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/go/blob/bd0b1eef45525852445580731c3625e51c1410ed/crypto/registerlibolm.go",
     "note": "libolm through cgo by default; goolm, its own pure-Go Olm/Megolm, with the goolm build tag"
    },
    "crypto": "libolm (default) or goolm (own)",
    "sliding_sync": {
     "value": "not-found",
     "how": "code",
     "note": "no MSC4186 or MSC3575 code"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/go/blob/bd0b1eef45525852445580731c3625e51c1410ed/oauth.go#L52",
     "note": "OAuth server metadata, dynamic client registration and authorization URL helpers"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/go/blob/bd0b1eef45525852445580731c3625e51c1410ed/event/relations.go#L24",
     "note": "m.thread relations"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/go/blob/bd0b1eef45525852445580731c3625e51c1410ed/client.go#L2455",
     "note": "hierarchy endpoint"
    },
    "appservice": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/go/blob/bd0b1eef45525852445580731c3625e51c1410ed/appservice/appservice.go",
     "note": "appservice package and bridgev2"
    },
    "purpose": {
     "value": "client, bot, bridge",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "beeper-ai-bridge",
     "beeper-android-sms",
     "beeper-chatgpt-dots",
     "beeper-googlevoice",
     "beeper-groupme",
     "beeper-imessage",
     "beeper-line",
     "beeper-reddit",
     "beeper-tumblr-dms",
     "emm",
     "go-neb",
     "go-skype-bridge",
     "gomuks",
     "honoroit",
     "matrix-qq",
     "matrix-steam-bridge",
     "matrix-tiktok",
     "matrix-wechat",
     "maunium-stickerpicker",
     "mautrix-bluesky",
     "mautrix-deltachat",
     "mautrix-discord",
     "mautrix-gmessages",
     "mautrix-gvoice",
     "mautrix-imessage",
     "mautrix-irc",
     "mautrix-linkedin",
     "mautrix-meta",
     "mautrix-signal",
     "mautrix-slack",
     "mautrix-telegram",
     "mautrix-twilio",
     "mautrix-twitter",
     "mautrix-whatsapp",
     "mautrix-zulip",
     "meowlnir",
     "pickle"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "7 of 700 non-bot commits in the last 365 days carry an AI attribution (1.0 %), counted at bd0b1eef4552",
      "https://github.com/mautrix/go/commit/aa7eede2b4 (claude)",
      "https://github.com/mautrix/go/commit/8c64f024d2 (claude)",
      "https://github.com/mautrix/go/commit/5bdd29bfd1 (claude)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-go.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix organisation's avatar on GitHub",
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"mautrix-go\" (Stable, Go, maintainer: Tulir). Last non-bot commit 2026-11-03, 700 non-bot commits in the last year and 9 authors in the last 90 days by our count at bd0b1eef4552 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "mautrix-googlechat",
   "name": "mautrix-googlechat",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/python/googlechat/index.html",
   "summary": "Puppeting bridge between Matrix and Google Chat, the last mautrix bridge still on the Python framework.",
   "repos": [
    {
     "url": "https://github.com/mautrix/googlechat",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/google_chat/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Google Chat",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/googlechat/blob/a835bccd269eace6c28196a3f869eb1fb3c8acf7/setup.py",
     "note": "mautrix-python (legacy), not ported to bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/googlechat/blob/a835bccd269eace6c28196a3f869eb1fb3c8acf7/ROADMAP.md"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/googlechat/blob/a835bccd269eace6c28196a3f869eb1fb3c8acf7/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/googlechat/blob/a835bccd269eace6c28196a3f869eb1fb3c8acf7/ROADMAP.md"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/googlechat/blob/a835bccd269eace6c28196a3f869eb1fb3c8acf7/ROADMAP.md",
     "note": "spaces and group DMs"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/python/googlechat/authentication.md",
     "note": "browser cookies"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD a835bccd269e; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-googlechat.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Last commit 2025-07-16 on the default branch.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 13,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 3,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 420,
    "first_commit": "2019-05-09T18:14:49+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0021,
     "Protocol Buffers": 0.128,
     "Python": 0.8682,
     "Shell": 0.0017
    },
    "last_commit": "2025-07-16T10:44:56+00:00",
    "last_tag": "v0.5.2",
    "last_tag_date": "2024-07-16T11:54:51+03:00",
    "last_tag_repo": "https://github.com/mautrix/googlechat",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 34,
     "Protocol Buffers": 2115,
     "Python": 14343,
     "Shell": 28
    },
    "loc_total": 16520,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mautrix-gvoice",
   "name": "mautrix-gvoice",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/gvoice/index.html",
   "summary": "Puppeting bridge between Matrix and Google Voice text messages on mautrix-go bridgev2.",
   "repos": [
    {
     "url": "https://github.com/mautrix/gvoice",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Mautrix-Google Voice Bridge)"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Google Voice",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/gvoice/blob/bb883cde5945efa39c591f922cfe1a7556e3a66e/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/gvoice/blob/bb883cde5945efa39c591f922cfe1a7556e3a66e/pkg/connector/handlegvoice.go"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/gvoice/blob/bb883cde5945efa39c591f922cfe1a7556e3a66e/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/gvoice/authentication.md",
     "note": "Google account cookies"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "no ToS warning found in the docs"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "2 of 36 non-bot commits in the last 365 days (5.6 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/mautrix/gvoice/commit/f82c6eaf5bd0ebc798ea3333c998a33606d735f1, https://github.com/mautrix/gvoice/commit/f13a075bec488095487e631d0e524c2c4c8b4c04"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-gvoice.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Not on matrix.org; found through the community space and org:mautrix. Successor to beeper/googlevoice (archived).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 2,
     "commits_365d": 37,
     "share_365d": 0.0541,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 1,
      "copilot": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 5,
    "authors_90d": 4,
    "authors_all": 7,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 2,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 3,
     "2026-Q1": 3,
     "2026-Q2": 3,
     "2026-Q3": 2,
     "2026-Q4": 4
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 14,
    "commits_365d": 37,
    "commits_90d": 19,
    "commits_all": 83,
    "first_commit": "2024-08-25T10:25:10+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0011,
     "Go": 0.9305,
     "JavaScript": 0.0097,
     "Protocol Buffers": 0.0557,
     "Shell": 0.0025
    },
    "last_commit": "2026-11-05T04:19:07+00:00",
    "last_tag": "v0.2605.0",
    "last_tag_date": "2026-05-16T13:32:45+03:00",
    "last_tag_repo": "https://github.com/mautrix/gvoice",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 10522,
     "JavaScript": 110,
     "Protocol Buffers": 630,
     "SQL": 5,
     "Shell": 28
    },
    "loc_total": 11308,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 3,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     2,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     3,
     1,
     1,
     1,
     1,
     1,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     2,
     1,
     1,
     1,
     1,
     5,
     3,
     4
    ]
   }
  },
  {
   "slug": "mautrix-imessage",
   "name": "mautrix-imessage",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/imessage/index.html",
   "summary": "Puppeting bridge for iMessage (running on a Mac) or Android SMS, on the legacy mautrix-go bridge framework.",
   "repos": [
    {
     "url": "https://github.com/mautrix/imessage",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/imessage/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "macos",
    "android",
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "iMessage, Android SMS",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/imessage/blob/300ba6d0e5566d1f841d42ee1555779a9b6fa4be/go.mod",
     "note": "legacy mautrix-go bridge (v1); needs mautrix-wsproxy"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/imessage/blob/300ba6d0e5566d1f841d42ee1555779a9b6fa4be/ROADMAP.md"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/imessage/blob/300ba6d0e5566d1f841d42ee1555779a9b6fa4be/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/mautrix/imessage/blob/300ba6d0e5566d1f841d42ee1555779a9b6fa4be/ROADMAP.md",
     "note": "tapbacks; full features need SIP disabled"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/imessage/blob/300ba6d0e5566d1f841d42ee1555779a9b6fa4be/ROADMAP.md"
    },
    "login_methods": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/mautrix/imessage/blob/300ba6d0e5566d1f841d42ee1555779a9b6fa4be/README.md",
     "note": "runs on the user's own Mac signed into iMessage, or an Android phone for SMS"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 300ba6d0e556; no AI-attributed commits among 1 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-imessage.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "One commit in the last year (2026-05-14). beeper/imessage (archived 2024) was the registration-relay variant.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 19,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 5,
     "2023-Q3": 5,
     "2023-Q4": 1,
     "2024-Q1": 6,
     "2024-Q2": 2,
     "2024-Q3": 0,
     "2024-Q4": 1,
     "2025-Q1": 0,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 1,
    "commits_90d": 0,
    "commits_all": 754,
    "first_commit": "2021-01-27T13:09:36+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0021,
     "Go": 0.9652,
     "Objective C": 0.0164,
     "SQL": 0.013,
     "Shell": 0.0032
    },
    "last_commit": "2026-05-14T10:56:37+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "C Header": 27,
     "Go": 12523,
     "Objective C": 213,
     "SQL": 169,
     "Shell": 42
    },
    "loc_total": 12974,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mautrix-instagram",
   "name": "mautrix-instagram",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/instagram/index.html",
   "summary": "Archived Python puppeting bridge for Instagram DMs, replaced by mautrix-meta.",
   "repos": [
    {
     "url": "https://github.com/mautrix/instagram",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/instagram/",
    "other": []
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Instagram DMs",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/instagram/blob/d3a3a100ddda25c0a68fc72281bd8c68e0705ac1/setup.py",
     "note": "mautrix-python"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/instagram/blob/d3a3a100ddda25c0a68fc72281bd8c68e0705ac1/ROADMAP.md",
     "note": "double puppeting"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/instagram/blob/d3a3a100ddda25c0a68fc72281bd8c68e0705ac1/ROADMAP.md"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/instagram/blob/d3a3a100ddda25c0a68fc72281bd8c68e0705ac1/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/instagram/blob/d3a3a100ddda25c0a68fc72281bd8c68e0705ac1/ROADMAP.md"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/instagram/blob/d3a3a100ddda25c0a68fc72281bd8c68e0705ac1/ROADMAP.md"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD d3a3a100ddda; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-instagram.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Archived on GitHub (last commit 2024-03-02); matrix.org labels it Obsolete. Use mautrix-meta.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 11,
    "authors_by_quarter": {
     "2023-Q1": 8,
     "2023-Q2": 3,
     "2023-Q3": 2,
     "2023-Q4": 2,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 578,
    "first_commit": "2020-12-02T21:16:15+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0032,
     "Python": 0.9929,
     "Shell": 0.0039
    },
    "last_commit": "2024-03-02T12:40:32+00:00",
    "last_tag": "v0.3.1",
    "last_tag_date": "2023-09-19T12:54:39-04:00",
    "last_tag_repo": "https://github.com/mautrix/instagram",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 34,
     "Python": 10580,
     "Shell": 42
    },
    "loc_total": 10656,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mautrix-irc",
   "name": "mautrix-irc",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/irc/index.html",
   "summary": "Puppeting IRC bridge on mautrix-go bridgev2, using IRCv3 extensions where the network offers them.",
   "repos": [
    {
     "url": "https://github.com/mautrix/irc",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:mautrix"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "IRC",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/irc/blob/b27a77861ab7b6bb3c01677d27a4818f22f8fe6a/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/mautrix/irc/blob/b27a77861ab7b6bb3c01677d27a4818f22f8fe6a/ROADMAP.md",
     "note": "chathistory backfill listed as not done"
    },
    "media": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/mautrix/irc/blob/b27a77861ab7b6bb3c01677d27a4818f22f8fe6a/ROADMAP.md",
     "note": "media sent as links"
    },
    "reactions_edits": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/mautrix/irc/blob/b27a77861ab7b6bb3c01677d27a4818f22f8fe6a/ROADMAP.md",
     "note": "reactions via +draft/react"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/irc/blob/b27a77861ab7b6bb3c01677d27a4818f22f8fe6a/ROADMAP.md",
     "note": "channels"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/irc/authentication.md",
     "note": "nick, optional SASL username:password"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD b27a77861ab7; no AI-attributed commits among 57 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-irc.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Single-author project in the last year. Other IRC bridges: matrix-appservice-irc (matrix.org), Heisenbridge (bouncer-style).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 57,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 57,
    "commits_90d": 2,
    "commits_all": 57,
    "first_commit": "2025-11-07T15:26:31+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0047,
     "Go": 0.9824,
     "SQL": 0.0025,
     "Shell": 0.0104
    },
    "last_commit": "2026-09-16T22:22:19+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 2741,
     "SQL": 7,
     "Shell": 29
    },
    "loc_total": 2790,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     36,
     8,
     0,
     2,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     1,
     1,
     0,
     1,
     0,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mautrix-linkedin",
   "name": "mautrix-linkedin",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/linkedin/index.html",
   "summary": "Puppeting bridge between Matrix and LinkedIn messaging on mautrix-go bridgev2.",
   "repos": [
    {
     "url": "https://github.com/mautrix/linkedin",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/linkedin/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "LinkedIn",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/linkedin/blob/3127fea810c03b6a7ab2cb91b366a7eb1a33a0b6/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/linkedin/blob/3127fea810c03b6a7ab2cb91b366a7eb1a33a0b6/pkg/connector/backfill.go"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/linkedin/blob/3127fea810c03b6a7ab2cb91b366a7eb1a33a0b6/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/linkedin/blob/3127fea810c03b6a7ab2cb91b366a7eb1a33a0b6/ROADMAP.md"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/linkedin/authentication.md",
     "note": "browser cookies"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "no ToS warning found in the docs"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "3 of 78 non-bot commits in the last 365 days (3.8 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/mautrix/linkedin/commit/5d6c215cd6126dbd78cfc11170da907e5f0e684a, https://github.com/mautrix/linkedin/commit/75f2e432c2809db5a273e286474b398141ebbcc3"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-linkedin.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Go successor to beeper/linkedin (Python, archived).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 3,
     "commits_365d": 78,
     "share_365d": 0.0385,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 3
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 6,
    "authors_90d": 4,
    "authors_all": 16,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 2,
     "2024-Q1": 2,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 5,
     "2025-Q3": 5,
     "2025-Q4": 5,
     "2026-Q1": 4,
     "2026-Q2": 2,
     "2026-Q3": 3,
     "2026-Q4": 4
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 28,
    "commits_365d": 78,
    "commits_90d": 40,
    "commits_all": 607,
    "first_commit": "2021-05-31T23:13:15+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0016,
     "Go": 0.9948,
     "Shell": 0.0036
    },
    "last_commit": "2026-11-03T21:35:10+00:00",
    "last_tag": "v0.2609.0",
    "last_tag_date": "2026-09-16T13:14:00+03:00",
    "last_tag_repo": "https://github.com/mautrix/linkedin",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 8007,
     "Shell": 29
    },
    "loc_total": 8049,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 6,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     2,
     2,
     0,
     0,
     4,
     0,
     0,
     0,
     7,
     0,
     0,
     2,
     2,
     1,
     3,
     0,
     0,
     1,
     0,
     0,
     0,
     3,
     1,
     2,
     1,
     2,
     1,
     3,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     3,
     2,
     0,
     4,
     0,
     1,
     2,
     8,
     3,
     6,
     10
    ]
   }
  },
  {
   "slug": "mautrix-manager",
   "name": "mautrix-manager",
   "category": "tool",
   "kind": "bridge login app",
   "homepage": null,
   "summary": "An Electron app for logging into mautrix bridgev2 bridges through their provisioning API, with .well-known auto-discovery.",
   "repos": [
    {
     "url": "https://github.com/mautrix/manager",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Not-chat Clients)",
     "notes/02.md, notes/03.md"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "windows",
    "macos",
    "linux",
    "web"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "bridge login and management (bridgev2 provisioning API)",
     "how": "claimed",
     "source": "https://github.com/mautrix/manager/blob/b7fee671ad52218e3dd1bfd25555a6b6f19ed651/README.md"
    },
    "framework": {
     "value": "own (Electron, web)",
     "how": "claimed",
     "source": "https://github.com/mautrix/manager/blob/b7fee671ad52218e3dd1bfd25555a6b6f19ed651/README.md"
    },
    "e2ee": {
     "value": "not-found"
    },
    "hosting": {
     "value": "desktop app",
     "how": "claimed",
     "source": "https://github.com/mautrix/manager/blob/b7fee671ad52218e3dd1bfd25555a6b6f19ed651/README.md"
    },
    "config": {
     "value": "bridge URLs in the app, or /.well-known/matrix/mautrix",
     "how": "claimed",
     "source": "https://github.com/mautrix/manager/blob/b7fee671ad52218e3dd1bfd25555a6b6f19ed651/README.md"
    },
    "ai_backend": {
     "value": "none-found"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. … AI should not be used for communicating with humans.",
     "source": "https://docs.mau.fi/bridges/general/contributing.html",
     "note": "CONTRIBUTING.md points to the shared mautrix guide (\"See <https://docs.mau.fi/bridges/general/contributing.html>\")."
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 25 non-merge commits since 2025-11-05 attributed, counted at b7fee671"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-manager.webp",
    "source": "https://github.com/mautrix/manager/blob/b7fee671ad52218e3dd1bfd25555a6b6f19ed651/icon.png",
    "licence": "AGPL-3.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Supports only bridgev2 bridges (README). Licence file is GNU AGPL v3 without an -only/-or-later marker. Maturity is our reading.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 25,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 2,
    "commits_365d": 25,
    "commits_90d": 2,
    "commits_all": 61,
    "first_commit": "2024-07-27T23:38:09+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.1303,
     "HTML": 0.0047,
     "JavaScript": 0.0291,
     "TypeScript": 0.8359
    },
    "last_commit": "2026-10-28T14:31:45+00:00",
    "last_tag": "v0.2.1",
    "last_tag_date": "2026-07-30T15:35:11+03:00",
    "last_tag_repo": "https://github.com/mautrix/manager",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "CSS": 363,
     "HTML": 13,
     "JavaScript": 81,
     "TypeScript": 2328
    },
    "loc_total": 2785,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 3,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     8,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     5,
     0,
     3,
     0,
     6,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0
    ]
   }
  },
  {
   "slug": "mautrix-meta",
   "name": "mautrix-meta",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/meta/index.html",
   "summary": "Puppeting bridge between Matrix and Facebook Messenger or Instagram DMs, replacing the older mautrix-facebook and mautrix-instagram.",
   "repos": [
    {
     "url": "https://github.com/mautrix/meta",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/facebook_messenger/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Facebook Messenger, Instagram",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/meta/blob/69a505d69039a24796ad5d24a599a548d315c300/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/meta/blob/69a505d69039a24796ad5d24a599a548d315c300/pkg/messagix/securehistory/history.go"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/meta/blob/69a505d69039a24796ad5d24a599a548d315c300/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/meta/blob/69a505d69039a24796ad5d24a599a548d315c300/ROADMAP.md"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/meta/blob/69a505d69039a24796ad5d24a599a548d315c300/ROADMAP.md"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/meta/authentication.md",
     "note": "browser cookies (Facebook, Messenger, Instagram) or username/password (messenger-lite, Instagram android mode)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "no ToS warning found in the docs"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "9 of 596 non-bot commits in the last 365 days (1.5 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/mautrix/meta/commit/b7ccc25041f4a16bd26e3323b85a3137c379fd61, https://github.com/mautrix/meta/commit/bbd67618a3aa649402c85c45c9becd03e8fe1675"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-meta.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Successor to mautrix-facebook and mautrix-instagram (both archived). Supports Messenger end-to-end encrypted chats per ROADMAP.md sections.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 9,
     "commits_365d": 595,
     "share_365d": 0.0151,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 9
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 9,
    "authors_90d": 7,
    "authors_all": 18,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 3,
     "2024-Q2": 6,
     "2024-Q3": 4,
     "2024-Q4": 2,
     "2025-Q1": 3,
     "2025-Q2": 8,
     "2025-Q3": 4,
     "2025-Q4": 4,
     "2026-Q1": 6,
     "2026-Q2": 5,
     "2026-Q3": 7,
     "2026-Q4": 5
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 116,
    "commits_365d": 595,
    "commits_90d": 234,
    "commits_all": 1276,
    "first_commit": "2024-01-15T12:32:16+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9893,
     "JavaScript": 0.0011,
     "Protocol Buffers": 0.0011,
     "SQL": 0.0045,
     "Thrift": 0.0028
    },
    "last_commit": "2026-11-03T21:36:41+00:00",
    "last_tag": "v0.2610.0",
    "last_tag_date": "2026-10-16T18:03:24+03:00",
    "last_tag_repo": "https://github.com/mautrix/meta",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 55058,
     "JavaScript": 61,
     "Modula3": 13,
     "Protocol Buffers": 60,
     "SQL": 250,
     "Shell": 43,
     "Thrift": 156
    },
    "loc_total": 55654,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 12,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     1,
     1,
     5,
     5,
     10,
     5,
     3,
     0,
     5,
     10,
     6,
     16,
     2,
     1,
     3,
     15,
     8,
     12,
     8,
     10,
     11,
     1,
     2,
     1,
     3,
     5,
     3,
     3,
     6,
     6,
     6,
     19,
     8,
     53,
     22,
     18,
     16,
     34,
     18,
     7,
     14,
     28,
     14,
     11,
     17,
     16,
     8,
     8,
     26,
     32,
     35,
     18
    ]
   }
  },
  {
   "slug": "mautrix-python",
   "name": "mautrix-python",
   "category": "sdk",
   "kind": "Python",
   "homepage": "https://docs.mau.fi/python/latest/",
   "summary": "A Python 3 asyncio Matrix framework by Tulir Asokan; the base of maubot and the legacy Python mautrix bridges.",
   "repos": [
    {
     "url": "https://github.com/mautrix/python",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "MPL-2.0",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/python/blob/3ec2849729e4579593a7ab826d519f303a0de16f/setup.py#L5",
     "note": "optional encryption extra on python-olm (libolm)"
    },
    "crypto": "libolm (python-olm)",
    "sliding_sync": {
     "value": "not-found",
     "how": "code",
     "note": "no MSC4186 or MSC3575 code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code",
     "note": "no OAuth / auth_metadata code"
    },
    "threads": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/mautrix/python/blob/3ec2849729e4579593a7ab826d519f303a0de16f/mautrix/types/event/message.py",
     "note": "thread relation type in the event models"
    },
    "spaces": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/mautrix/python/blob/3ec2849729e4579593a7ab826d519f303a0de16f/mautrix/types/event/type.py",
     "note": "space event types"
    },
    "appservice": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/python/blob/3ec2849729e4579593a7ab826d519f303a0de16f/mautrix/appservice/__init__.py"
    },
    "purpose": {
     "value": "client, bot, bridge",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "alertbot",
     "beeper-linkedin",
     "heisenbridge",
     "matrix-zulip-bridge",
     "maubot",
     "maubot-github",
     "maubot-gitlab",
     "mautrix-facebook",
     "mautrix-googlechat",
     "mautrix-instagram",
     "mautrix-twilio-legacy"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 20 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 3ec2849729e4"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-python.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix organisation's avatar on GitHub",
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"mautrix-python\" (Stable, Python, maintainer: Tulir). Last non-bot commit 2026-10-12, 20 non-bot commits in the last year and 2 authors in the last 90 days by our count at 3ec2849729e4 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "mautrix-signal",
   "name": "mautrix-signal",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/signal/index.html",
   "summary": "Puppeting bridge between Matrix and Signal, using libsignal through a Go wrapper on mautrix-go bridgev2.",
   "repos": [
    {
     "url": "https://github.com/mautrix/signal",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/signal/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Signal",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/signal/blob/7501c40cba38fafeec636ccae6eb4eb870ea27e3/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/mautrix/signal/blob/7501c40cba38fafeec636ccae6eb4eb870ea27e3/pkg/connector/backfill.go",
     "note": "from Signal's history transfer when linking; media only if the phone still has it (docs backfill page)"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/signal/blob/7501c40cba38fafeec636ccae6eb4eb870ea27e3/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/signal/blob/7501c40cba38fafeec636ccae6eb4eb870ea27e3/ROADMAP.md"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/signal/blob/7501c40cba38fafeec636ccae6eb4eb870ea27e3/ROADMAP.md",
     "note": "groups; some membership actions not bridged from Matrix"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/signal/authentication.md",
     "note": "link as a secondary device by QR code, or register as the primary device"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "no ToS warning found in the docs"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "2 of 245 non-bot commits in the last 365 days (0.8 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/mautrix/signal/commit/357eb58a446f90fa517dc0f08d7e0e732bc2b3d0, https://github.com/mautrix/signal/commit/c2b2792f0b4f82f11ed85f449ab55aad7a7f98b9"
     ],
     "note": "attributed share is below the rubric's 1 % line; shown as occasional because commits are attributed (lower bound)"
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-signal.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Earlier versions used signald (Python bridge); the current bridge links libsignal directly (CHANGELOG.md).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 2,
     "commits_365d": 245,
     "share_365d": 0.0082,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 2
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 10,
    "authors_90d": 5,
    "authors_all": 35,
    "authors_by_quarter": {
     "2023-Q1": 5,
     "2023-Q2": 4,
     "2023-Q3": 3,
     "2023-Q4": 6,
     "2024-Q1": 7,
     "2024-Q2": 4,
     "2024-Q3": 6,
     "2024-Q4": 2,
     "2025-Q1": 3,
     "2025-Q2": 4,
     "2025-Q3": 3,
     "2025-Q4": 5,
     "2026-Q1": 3,
     "2026-Q2": 3,
     "2026-Q3": 4,
     "2026-Q4": 5
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 46,
    "commits_365d": 245,
    "commits_90d": 82,
    "commits_all": 1777,
    "first_commit": "2020-09-27T23:03:47+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0802,
     "Go": 0.8625,
     "Protocol Buffers": 0.0502,
     "SQL": 0.0051,
     "Shell": 0.0016
    },
    "last_commit": "2026-11-04T22:28:39+00:00",
    "last_tag": "v0.2610.0",
    "last_tag_date": "2026-10-16T18:03:24+03:00",
    "last_tag_repo": "https://github.com/mautrix/signal",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "C Header": 7255,
     "Dockerfile": 31,
     "Go": 78061,
     "Protocol Buffers": 4547,
     "SQL": 466,
     "Shell": 148
    },
    "loc_total": 90508,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 14,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     2,
     8,
     14,
     12,
     9,
     11,
     3,
     2,
     3,
     1,
     6,
     1,
     3,
     2,
     3,
     3,
     8,
     3,
     1,
     5,
     1,
     2,
     14,
     1,
     6,
     7,
     7,
     2,
     1,
     0,
     6,
     1,
     2,
     0,
     3,
     4,
     4,
     1,
     0,
     7,
     3,
     4,
     3,
     4,
     8,
     2,
     1,
     7,
     21,
     6,
     7,
     10
    ]
   }
  },
  {
   "slug": "mautrix-slack",
   "name": "mautrix-slack",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/slack/index.html",
   "summary": "Puppeting bridge between Matrix and Slack on mautrix-go bridgev2.",
   "repos": [
    {
     "url": "https://github.com/mautrix/slack",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/slack/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Slack",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/slack/blob/1b55de52bf978729d5aea681b6412eb6f269a3ca/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/slack/blob/1b55de52bf978729d5aea681b6412eb6f269a3ca/pkg/connector/backfill.go"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/slack/blob/1b55de52bf978729d5aea681b6412eb6f269a3ca/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/slack/blob/1b55de52bf978729d5aea681b6412eb6f269a3ca/ROADMAP.md"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/slack/blob/1b55de52bf978729d5aea681b6412eb6f269a3ca/ROADMAP.md",
     "note": "channels, group DMs"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/slack/authentication.md",
     "note": "user token + d cookie, or a Slack app (bot) token"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "no ToS warning found in the docs"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "2 of 104 non-bot commits in the last 365 days (1.9 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/mautrix/slack/commit/65e45a4d669f6b13a5a3302532ff4f77b80fc708, https://github.com/mautrix/slack/commit/a04c357e38700102b23e1068ad0e7212654249bd"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-slack.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists Beeper and Tulir as maintainers. Other Slack bridges: matrix-appservice-slack (matrix.org, archived), mx-puppet-slack and matrix-puppet-slack (inactive).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 2,
     "commits_365d": 104,
     "share_365d": 0.0192,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 2
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 7,
    "authors_90d": 6,
    "authors_all": 16,
    "authors_by_quarter": {
     "2023-Q1": 3,
     "2023-Q2": 4,
     "2023-Q3": 3,
     "2023-Q4": 2,
     "2024-Q1": 2,
     "2024-Q2": 2,
     "2024-Q3": 3,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 2,
     "2026-Q1": 1,
     "2026-Q2": 3,
     "2026-Q3": 6,
     "2026-Q4": 4
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 34,
    "commits_365d": 104,
    "commits_90d": 58,
    "commits_all": 589,
    "first_commit": "2022-05-26T21:38:00+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0014,
     "Go": 0.9904,
     "JavaScript": 0.0038,
     "SQL": 0.0013,
     "Shell": 0.003
    },
    "last_commit": "2026-11-04T21:00:22+00:00",
    "last_tag": "v0.2610.0",
    "last_tag_date": "2026-10-16T18:03:24+03:00",
    "last_tag_repo": "https://github.com/mautrix/slack",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 8886,
     "JavaScript": 34,
     "SQL": 12,
     "Shell": 27
    },
    "loc_total": 8972,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 11,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     2,
     0,
     1,
     0,
     4,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     1,
     0,
     1,
     2,
     1,
     1,
     0,
     2,
     1,
     4,
     1,
     4,
     2,
     3,
     2,
     1,
     1,
     1,
     0,
     1,
     5,
     2,
     0,
     0,
     3,
     5,
     3,
     3,
     0,
     6,
     3,
     2,
     0,
     7,
     10,
     11,
     6
    ]
   }
  },
  {
   "slug": "mautrix-telegram",
   "name": "mautrix-telegram",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/telegram/index.html",
   "summary": "Puppeting and relay-bot bridge between Matrix and Telegram, rewritten in Go on mautrix-go bridgev2.",
   "repos": [
    {
     "url": "https://github.com/mautrix/telegram",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/telegram/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Telegram",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/telegram/blob/f7bb767679114f0e1c0e901cbf1562e56f53ac60/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/telegram/blob/f7bb767679114f0e1c0e901cbf1562e56f53ac60/pkg/connector/backfill.go"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/telegram/blob/f7bb767679114f0e1c0e901cbf1562e56f53ac60/ROADMAP.md",
     "note": "files and media; polls, games and buttons not bridged"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/telegram/blob/f7bb767679114f0e1c0e901cbf1562e56f53ac60/ROADMAP.md"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/telegram/blob/f7bb767679114f0e1c0e901cbf1562e56f53ac60/ROADMAP.md",
     "note": "groups, supergroups and channels"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/telegram/authentication.md",
     "note": "phone number + code (and 2FA password), QR code, or a bot token for relaying"
    },
    "network_tos_risk": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/telegram/authentication.md#L6-L10",
     "note": "\"Telegram is known to ban suspicious users, and a brand new account using a 3rd party client is considered suspicious. Using a well-established account is perfectly safe.\""
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "1 of 403 non-bot commits in the last 365 days (0.2 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/mautrix/telegram/commit/b00e116ce527ec53b3053702bc141241a2de56ea"
     ],
     "note": "attributed share is below the rubric's 1 % line; shown as occasional because commits are attributed (lower bound)"
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-telegram.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "matrix.org still lists it as Python/Beta; the repo's CHANGELOG.md says the bridge was rewritten in Go on bridgev2, and v26.10 dropped migration from the Python version. Other Telegram bridges: matrix-appservice-telegram (FruitieX, abandoned).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 1,
     "commits_365d": 401,
     "share_365d": 0.0025,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 13,
    "authors_90d": 6,
    "authors_all": 57,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 6,
     "2023-Q3": 2,
     "2023-Q4": 2,
     "2024-Q1": 2,
     "2024-Q2": 3,
     "2024-Q3": 3,
     "2024-Q4": 4,
     "2025-Q1": 2,
     "2025-Q2": 5,
     "2025-Q3": 5,
     "2025-Q4": 6,
     "2026-Q1": 3,
     "2026-Q2": 5,
     "2026-Q3": 5,
     "2026-Q4": 5
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 30,
    "commits_365d": 401,
    "commits_90d": 62,
    "commits_all": 2667,
    "first_commit": "2017-11-12T15:42:45+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9854,
     "Go Template": 0.0021,
     "TL": 0.0123
    },
    "last_commit": "2026-11-03T21:36:36+00:00",
    "last_tag": "v0.2610.0",
    "last_tag_date": "2026-10-16T18:03:24+03:00",
    "last_tag_repo": "https://github.com/mautrix/telegram",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 704125,
     "Go Template": 1495,
     "HEX": 2,
     "Makefile": 18,
     "SQL": 95,
     "Shell": 30,
     "TL": 8812
    },
    "loc_total": 714590,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 8,
    "telemetry_sdks": [
     "Segment"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     2,
     2,
     19,
     31,
     35,
     8,
     4,
     1,
     1,
     3,
     1,
     0,
     4,
     1,
     0,
     13,
     2,
     15,
     9,
     59,
     22,
     25,
     6,
     12,
     16,
     12,
     2,
     6,
     3,
     0,
     12,
     3,
     0,
     2,
     1,
     6,
     0,
     1,
     1,
     3,
     9,
     3,
     1,
     5,
     4,
     2,
     5,
     9,
     3,
     8,
     9
    ]
   }
  },
  {
   "slug": "mautrix-twilio",
   "name": "mautrix-twilio",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/twilio/index.html",
   "summary": "Demo bridge for mautrix-go bridgev2 that bridges Twilio SMS; described as a demo project.",
   "repos": [
    {
     "url": "https://github.com/mautrix/twilio",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:mautrix"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "SMS via Twilio",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/twilio/blob/18579cdd5867f6b15323d4a39ffbe571d7701915/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/mautrix/twilio/blob/18579cdd5867f6b15323d4a39ffbe571d7701915/pkg/connector",
     "note": "no FetchMessages implementation in pkg/connector"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "not-found",
     "note": "Twilio account credentials"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 18579cdd5867; no AI-attributed commits among 1 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-twilio.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "GitHub description: \"A bridgev2 demo project for bridging Matrix and Twilio\". beeper/line says it is based on it. Replaces tulir/mautrix-twilio (archived 2019). Licence: MIT, unlike the rest of the mautrix family (LICENSE at https://github.com/mautrix/twilio/blob/18579cdd5867f6b15323d4a39ffbe571d7701915/LICENSE, checked 2026-11-05).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 1,
    "commits_90d": 0,
    "commits_all": 19,
    "first_commit": "2024-07-06T13:20:12+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9446,
     "Shell": 0.0554
    },
    "last_commit": "2025-11-16T13:15:40+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "MIT",
    "loc": {
     "Go": 494,
     "Shell": 29
    },
    "loc_total": 523,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mautrix-twilio-legacy",
   "name": "mautrix-twilio (Python, 2019)",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/twilio-old/index.html",
   "summary": "Archived early Python bridge between Matrix and Twilio SMS.",
   "repos": [
    {
     "url": "https://github.com/tulir/mautrix-twilio",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Mautrix-Twilio Bridge, DEPRECATED)"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "SMS via Twilio",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/tulir/mautrix-twilio/blob/b0c1924e208f71e3a3c6f41389368731f6009940/setup.py",
     "note": "mautrix-python"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "not-found"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "not-found"
    },
    "login_methods": {
     "value": "not-found"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD b0c1924e208f; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "notes": "Archived; the community space room is marked DEPRECATED. Replaced by the bridgev2 demo mautrix/twilio.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 18,
    "first_commit": "2019-09-22T14:58:36+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0226,
     "Mako": 0.0167,
     "Python": 0.8811,
     "Shell": 0.0295,
     "Smarty Template": 0.0501
    },
    "last_commit": "2019-12-06T13:58:03+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 23,
     "Mako": 17,
     "Python": 897,
     "Shell": 30,
     "Smarty Template": 51
    },
    "loc_total": 1018,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mautrix-twitter",
   "name": "mautrix-twitter",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/twitter/index.html",
   "summary": "Puppeting bridge between Matrix and X/Twitter direct messages, rewritten in Go on mautrix-go bridgev2.",
   "repos": [
    {
     "url": "https://github.com/mautrix/twitter",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/X/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "X (Twitter) DMs",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/twitter/blob/3e2add166b93a03bf96390c987978f26ef2e4607/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/twitter/blob/3e2add166b93a03bf96390c987978f26ef2e4607/pkg/connector/backfill.go",
     "note": "ROADMAP.md still lists message history as not done"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/twitter/blob/3e2add166b93a03bf96390c987978f26ef2e4607/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/twitter/blob/3e2add166b93a03bf96390c987978f26ef2e4607/ROADMAP.md",
     "note": "reactions"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/twitter/blob/3e2add166b93a03bf96390c987978f26ef2e4607/ROADMAP.md"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/twitter/authentication.md",
     "note": "browser cookies (ct0, auth_token)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "no ToS warning found in the docs"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "3 of 207 non-bot commits in the last 365 days (1.4 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/mautrix/twitter/commit/df8ebc106078868fad233ff05e23de3c26ee195b, https://github.com/mautrix/twitter/commit/3814539c1d828d4f71f7f0a5edbff6dd46e18240"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-twitter.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as Python; CHANGELOG.md records the rewrite in Go on bridgev2. ROADMAP.md looks out of date against the code.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 3,
     "commits_365d": 206,
     "share_365d": 0.0146,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 3
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 10,
    "authors_90d": 6,
    "authors_all": 18,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 3,
     "2023-Q3": 1,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 2,
     "2024-Q3": 2,
     "2024-Q4": 3,
     "2025-Q1": 4,
     "2025-Q2": 2,
     "2025-Q3": 2,
     "2025-Q4": 4,
     "2026-Q1": 5,
     "2026-Q2": 4,
     "2026-Q3": 5,
     "2026-Q4": 4
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 29,
    "commits_365d": 206,
    "commits_90d": 73,
    "commits_all": 720,
    "first_commit": "2020-07-16T21:19:51+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9855,
     "JavaScript": 0.0132
    },
    "last_commit": "2026-11-05T01:08:45+00:00",
    "last_tag": "v0.2609.0",
    "last_tag_date": "2026-09-16T13:14:00+03:00",
    "last_tag_repo": "https://github.com/mautrix/twitter",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 30251,
     "JavaScript": 404,
     "Shell": 27
    },
    "loc_total": 30695,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 6,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     5,
     0,
     4,
     3,
     7,
     4,
     9,
     1,
     24,
     6,
     1,
     12,
     4,
     11,
     3,
     3,
     3,
     2,
     4,
     1,
     1,
     1,
     1,
     2,
     1,
     5,
     2,
     0,
     2,
     1,
     3,
     0,
     0,
     0,
     0,
     2,
     3,
     2,
     1,
     6,
     8,
     5,
     1,
     9,
     4,
     9,
     3,
     5,
     4,
     7,
     11
    ]
   }
  },
  {
   "slug": "mautrix-whatsapp",
   "name": "mautrix-whatsapp",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/whatsapp/index.html",
   "summary": "Puppeting bridge between Matrix and WhatsApp, built on the whatsmeow library and mautrix-go bridgev2.",
   "repos": [
    {
     "url": "https://github.com/mautrix/whatsapp",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/whatsapp/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "WhatsApp",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/whatsapp/blob/1d024590d2df575f1f2e184229ace51b0300ff70/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/whatsapp/blob/1d024590d2df575f1f2e184229ace51b0300ff70/pkg/connector/backfill.go",
     "note": "from WhatsApp's history sync; historical backfill only in new rooms (docs backfill page)"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/whatsapp/blob/1d024590d2df575f1f2e184229ace51b0300ff70/ROADMAP.md"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/whatsapp/blob/1d024590d2df575f1f2e184229ace51b0300ff70/ROADMAP.md",
     "note": "reactions both ways; edits and polls listed too"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/whatsapp/blob/1d024590d2df575f1f2e184229ace51b0300ff70/ROADMAP.md",
     "note": "groups and communities"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/whatsapp/authentication.md",
     "note": "QR code or 8-letter pairing code (linked device); the phone must come online at least every two weeks"
    },
    "network_tos_risk": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/whatsapp/authentication.md",
     "note": "no ToS warning found; the docs say the bridge uses WhatsApp's web (linked-device) API"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "2 of 273 non-bot commits in the last 365 days (0.7 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/mautrix/whatsapp/commit/33357ced5ae666d9b8e85a56327f28bfb97a293c, https://github.com/mautrix/whatsapp/commit/abf1940af85952912487a87671c82e895d8f574a"
     ],
     "note": "attributed share is below the rubric's 1 % line; shown as occasional because commits are attributed (lower bound)"
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-whatsapp.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Rewritten on bridgev2 (CHANGELOG.md). One of two WhatsApp bridges with a recent commit here; beenim-labs/whatsapp-bridge-nim is a Nim port of it (not covered).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 2,
     "commits_365d": 273,
     "share_365d": 0.0073,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 2
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 10,
    "authors_90d": 6,
    "authors_all": 54,
    "authors_by_quarter": {
     "2023-Q1": 4,
     "2023-Q2": 4,
     "2023-Q3": 2,
     "2023-Q4": 3,
     "2024-Q1": 1,
     "2024-Q2": 2,
     "2024-Q3": 2,
     "2024-Q4": 2,
     "2025-Q1": 4,
     "2025-Q2": 4,
     "2025-Q3": 5,
     "2025-Q4": 7,
     "2026-Q1": 4,
     "2026-Q2": 4,
     "2026-Q3": 6,
     "2026-Q4": 4
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 55,
    "commits_365d": 273,
    "commits_90d": 110,
    "commits_all": 2157,
    "first_commit": "2018-08-12T19:26:05+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9827,
     "SQL": 0.0142,
     "Shell": 0.0022
    },
    "last_commit": "2026-11-04T16:24:07+00:00",
    "last_tag": "v0.2610.0",
    "last_tag_date": "2026-10-16T18:03:24+03:00",
    "last_tag_repo": "https://github.com/mautrix/whatsapp",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 12971,
     "SQL": 187,
     "Shell": 29
    },
    "loc_total": 13200,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 12,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     10,
     7,
     1,
     7,
     3,
     6,
     1,
     1,
     6,
     3,
     11,
     9,
     1,
     3,
     2,
     0,
     0,
     2,
     6,
     4,
     1,
     3,
     5,
     1,
     4,
     6,
     8,
     4,
     8,
     5,
     3,
     4,
     4,
     2,
     1,
     10,
     4,
     1,
     3,
     8,
     4,
     11,
     1,
     9,
     12,
     2,
     11,
     8,
     7,
     6,
     17,
     17
    ]
   }
  },
  {
   "slug": "mautrix-zulip",
   "name": "mautrix-zulip",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": "https://docs.mau.fi/bridges/go/zulip/index.html",
   "summary": "Puppeting bridge between Matrix and Zulip on mautrix-go bridgev2, early stage.",
   "repos": [
    {
     "url": "https://github.com/mautrix/zulip",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:mautrix"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/tulir"
   ],
   "features": {
    "network": "Zulip",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mautrix/zulip/blob/c5a5dde25d3589e094f2523a53bd9c9bd30ff879/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/double-puppeting.md",
     "note": "double puppeting (automatic via an appservice registration, or manual login); relay mode: https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/relay-mode.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/end-to-bridge-encryption.md",
     "note": "optional end-to-bridge encryption of the Matrix side (Matrix rooms encrypted between users and the bridge)"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/mautrix/zulip/blob/c5a5dde25d3589e094f2523a53bd9c9bd30ff879/ROADMAP.md",
     "note": "Zulip to Matrix only"
    },
    "reactions_edits": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/mautrix/zulip/blob/c5a5dde25d3589e094f2523a53bd9c9bd30ff879/ROADMAP.md"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/zulip/blob/c5a5dde25d3589e094f2523a53bd9c9bd30ff879/ROADMAP.md",
     "note": "streams/topics"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/go/zulip/authentication.md",
     "note": "Zulip API token"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. The author is accountable for the code. [...] AI should not be used for communicating with humans.",
     "source": "https://github.com/mautrix/docs/blob/da79465b14f6490d6f9a73d53ca5953d6cce0d75/bridges/general/contributing.md#L23-L37"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD c5a5dde25d35; no AI-attributed commits among 11 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README, ROADMAP or code",
     "source": null
    }
   },
   "icon": {
    "file": "mautrix-zulip.webp",
    "source": "https://avatars.githubusercontent.com/u/88519669?v=4&s=256",
    "licence": null,
    "note": "the mautrix bridges' shared logo: the mautrix organisation's avatar on GitHub (the repo itself ships only the bridged network's logo, or none)",
    "checked": "2026-11-05"
   },
   "notes": "Most ROADMAP items unchecked. Other Zulip bridge: MatrixZulipBridge (GearKite).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 11,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 11,
    "commits_90d": 2,
    "commits_all": 19,
    "first_commit": "2025-10-02T19:11:59+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0015,
     "Go": 0.9953,
     "Shell": 0.0033
    },
    "last_commit": "2026-09-16T22:20:19+00:00",
    "last_tag": "v0.2511.0",
    "last_tag_date": "2025-11-16T13:43:08+02:00",
    "last_tag_repo": "https://github.com/mautrix/zulip",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 13,
     "Go": 8879,
     "Shell": 29
    },
    "loc_total": 8921,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     1,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     1,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "meowlnir",
   "name": "Meowlnir",
   "category": "tool",
   "kind": "moderation",
   "homepage": "https://docs.mau.fi/meowlnir/",
   "summary": "An opinionated moderation bot from the mautrix author, optimised for Synapse, applying policy lists with its own policy evaluator; not a fork of Mjolnir.",
   "repos": [
    {
     "url": "https://github.com/maunium/meowlnir",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "moderation (policy lists, bans)",
     "how": "claimed",
     "source": "https://github.com/maunium/meowlnir/blob/666f797570173665654c5972f5bd7f0d0bc5d423/README.md"
    },
    "framework": {
     "value": "mautrix-go",
     "how": "code",
     "source": "https://github.com/maunium/meowlnir/blob/666f797570173665654c5972f5bd7f0d0bc5d423/go.mod"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/maunium/meowlnir/blob/666f797570173665654c5972f5bd7f0d0bc5d423/bot/init.go",
     "note": "each bot sets up a mautrix-go OlmMachine"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/maunium/meowlnir/blob/666f797570173665654c5972f5bd7f0d0bc5d423/README.md",
     "note": "runs as an appservice; Docker"
    },
    "config": {
     "value": "config file and per-bot management commands",
     "how": "claimed",
     "source": "https://docs.mau.fi/meowlnir/bot-config.html"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/maunium/meowlnir/blob/666f797570173665654c5972f5bd7f0d0bc5d423/go.mod"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "In general, you can use AI to help with contributions. However, AI slop is not accepted. … AI should not be used for communicating with humans.",
     "source": "https://docs.mau.fi/bridges/general/contributing.html"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 118 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 666f79757017"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "The policy comes from the mautrix contributing guidelines, which say they apply to \"all mautrix bridges, as well as other associated projects like the mautrix libraries, whatsmeow, meowlnir, and gomuks\"; the repo's CONTRIBUTING.md and PR template link to it (checked 2026-11-05).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 118,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 2,
    "authors_all": 7,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 3,
     "2025-Q2": 5,
     "2025-Q3": 3,
     "2025-Q4": 2,
     "2026-Q1": 2,
     "2026-Q2": 2,
     "2026-Q3": 2,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 19,
    "commits_365d": 118,
    "commits_90d": 52,
    "commits_all": 385,
    "first_commit": "2024-08-31T14:45:15+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9954,
     "SQL": 0.0042
    },
    "last_commit": "2026-11-02T19:55:33+00:00",
    "last_tag": "v0.2609.0",
    "last_tag_date": "2026-09-16T13:23:15+03:00",
    "last_tag_repo": "https://github.com/maunium/meowlnir",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Go": 9419,
     "SQL": 40,
     "Shell": 4
    },
    "loc_total": 9463,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 10,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     2,
     1,
     5,
     2,
     0,
     2,
     3,
     0,
     3,
     0,
     5,
     0,
     0,
     0,
     5,
     2,
     7,
     7,
     1,
     3,
     1,
     1,
     2,
     1,
     0,
     1,
     1,
     1,
     1,
     0,
     0,
     2,
     0,
     2,
     3,
     1,
     0,
     0,
     1,
     0,
     2,
     6,
     9,
     12,
     2,
     1,
     0,
     7,
     0,
     10,
     1,
     2
    ]
   }
  },
  {
   "slug": "middleman",
   "name": "Middleman",
   "category": "bot",
   "kind": "helpdesk",
   "homepage": "https://github.com/elokapina/middleman",
   "summary": "A bot that relays messages between rooms and a management room, so a team can answer users through one account.",
   "repos": [
    {
     "url": "https://github.com/elokapina/middleman",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "helpdesk / message relay",
     "how": "claimed",
     "source": "https://github.com/elokapina/middleman/blob/0848def2a487d07cec5732d0b2a78a828e78c3e7/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/elokapina/middleman/blob/0848def2a487d07cec5732d0b2a78a828e78c3e7/requirements.txt",
     "note": "matrix-nio[e2e]"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/elokapina/middleman/blob/0848def2a487d07cec5732d0b2a78a828e78c3e7/requirements.txt",
     "note": "matrix-nio[e2e] and python-olm"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/elokapina/middleman/blob/0848def2a487d07cec5732d0b2a78a828e78c3e7/README.md",
     "note": "Docker"
    },
    "config": {
     "value": "config.yaml and !reply / !message commands",
     "how": "claimed",
     "source": "https://github.com/elokapina/middleman/blob/0848def2a487d07cec5732d0b2a78a828e78c3e7/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/elokapina/middleman/blob/0848def2a487d07cec5732d0b2a78a828e78c3e7/requirements.txt"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2024-08-11), counted at 0848def2a487"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Last commit 2024-08-11, not archived; maturity is our reading.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 100,
    "first_commit": "2020-11-27T22:30:35+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0242,
     "Python": 0.9694,
     "Shell": 0.0065
    },
    "last_commit": "2024-08-07T19:55:40+00:00",
    "last_tag": "v0.2.0",
    "last_tag_date": "2021-08-20T17:03:34+03:00",
    "last_tag_repo": "https://github.com/elokapina/middleman",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 30,
     "Python": 1202,
     "Shell": 8
    },
    "loc_total": 1240,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "miitrix",
   "name": "Miitrix",
   "category": "client",
   "kind": "other (Nintendo 3DS homebrew)",
   "homepage": null,
   "summary": "Matrix client for the Nintendo 3DS.",
   "repos": [
    {
     "url": "https://github.com/Sorunome/miitrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/miitrix/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "apps": [
    {
     "os": "other",
     "tech": "native",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/miitrix.md"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own",
     "how": "code",
     "note": "C++ on its own small Matrix library"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/miitrix.md"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Sorunome/miitrix/blob/7770ad9ae0fa101f7aa244172e62c246901d0778/source/event.cpp#L78",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2020-08-03, so no commits in the last 365 days (HEAD 7770ad9ae0)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 29,
    "first_commit": "2019-10-20T21:51:08+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.1395,
     "C++": 0.7853,
     "Makefile": 0.0753
    },
    "last_commit": "2020-07-08T15:11:34+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "C Header": 252,
     "C++": 1419,
     "Makefile": 136
    },
    "loc_total": 1807,
    "main_language": "C++",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mindroom",
   "name": "MindRoom",
   "category": "bot",
   "kind": "AI agent platform",
   "homepage": "https://mindroom.chat",
   "summary": "A self-hostable platform that runs AI agents as Matrix users, reachable from any Matrix client or through bridges.",
   "repos": [
    {
     "url": "https://github.com/mindroom-ai/mindroom",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "notes/03.md (lane 3, from MindRoom Chat)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "AI agents (personal and team assistants) as Matrix users",
     "how": "claimed",
     "source": "https://github.com/mindroom-ai/mindroom/blob/42d6b5502d8e93f996e05d632b7a39ca469dd424/README.md"
    },
    "framework": {
     "value": "own (Python), Matrix integration in src/mindroom/",
     "how": "claimed",
     "source": "https://github.com/mindroom-ai/mindroom/blob/42d6b5502d8e93f996e05d632b7a39ca469dd424/AGENTS.md"
    },
    "e2ee": {
     "value": "not-found"
    },
    "hosting": {
     "value": "both: self-host or the hosted MindRoom service",
     "how": "claimed",
     "source": "https://github.com/mindroom-ai/mindroom/blob/42d6b5502d8e93f996e05d632b7a39ca469dd424/README.md"
    },
    "config": {
     "value": "config file and web dashboard",
     "how": "claimed",
     "source": "https://github.com/mindroom-ai/mindroom/blob/42d6b5502d8e93f996e05d632b7a39ca469dd424/README.md"
    },
    "ai_backend": {
     "value": "any model: cloud APIs, subscription logins such as Codex, or local models",
     "how": "claimed",
     "source": "https://github.com/mindroom-ai/mindroom/blob/42d6b5502d8e93f996e05d632b7a39ca469dd424/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "https://github.com/mindroom-ai/mindroom/blob/42d6b5502d8e93f996e05d632b7a39ca469dd424/AGENTS.md",
      "https://github.com/mindroom-ai/mindroom/blob/42d6b5502d8e93f996e05d632b7a39ca469dd424/.claude/",
      "24 of 3,278 non-merge commits since 2025-11-05 carry an AI co-author trailer or \"Generated with\" line (0.7 %), counted at 42d6b550"
     ],
     "note": "AGENTS.md and a .claude/ directory (agents, commands, prompts, skills) are working agent configuration; the attributed share is a lower bound."
    },
    "in_product": {
     "value": "core",
     "note": "The product is AI agents that live in Matrix rooms.",
     "source": "https://github.com/mindroom-ai/mindroom/blob/42d6b5502d8e93f996e05d632b7a39ca469dd424/README.md"
    }
   },
   "icon": {
    "file": "mindroom.webp",
    "source": "https://github.com/mindroom-ai/mindroom/blob/42d6b5502d8e93f996e05d632b7a39ca469dd424/saas-platform/platform-frontend/public/res/branding/mindroom.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "The agent backend behind MindRoom Chat (client file mindroom-chat). Added in the integration pass from lane 3's notes; maturity is our reading (pre-1.0, fast-moving).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 7,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 7,
     "commits_365d": 3258,
     "share_365d": 0.0021,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 6,
      "codex": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 10,
    "authors_90d": 8,
    "authors_all": 10,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 2,
     "2026-Q3": 5,
     "2026-Q4": 5
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 809,
    "commits_365d": 3258,
    "commits_90d": 1650,
    "commits_all": 5538,
    "first_commit": "2025-07-30T04:36:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Python": 0.9078,
     "SQL": 0.0074,
     "Shell": 0.0017,
     "Smarty Template": 0.0013,
     "Swift": 0.0069,
     "TypeScript": 0.0724
    },
    "last_commit": "2026-11-05T03:01:38+00:00",
    "last_tag": "v2026.11.127",
    "last_tag_date": "2026-11-05T03:05:23+00:00",
    "last_tag_repo": "https://github.com/mindroom-ai/mindroom",
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 959,
     "HCL": 135,
     "HTML": 331,
     "JavaScript": 556,
     "Jinja": 360,
     "Nix": 218,
     "Python": 1157381,
     "SQL": 9422,
     "Shell": 2204,
     "Smarty Template": 1619,
     "Swift": 8833,
     "Terraform": 607,
     "TypeScript": 92250,
     "TypeScript Typings": 6
    },
    "loc_total": 1274881,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 2943,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     30,
     0,
     20,
     57,
     75,
     48,
     65,
     45,
     23,
     17,
     37,
     40,
     101,
     73,
     106,
     145,
     56,
     39,
     32,
     54,
     38,
     90,
     24,
     28,
     75,
     92,
     66,
     91,
     39,
     21,
     41,
     29,
     30,
     37,
     122,
     160,
     179,
     259,
     104,
     160,
     243,
     266
    ]
   }
  },
  {
   "slug": "mindroom-chat",
   "name": "MindRoom Chat",
   "category": "client",
   "kind": "web, desktop, mobile",
   "homepage": "https://chat.mindroom.chat",
   "summary": "A Cinny-based Matrix client made for the MindRoom AI-agent platform: streaming agent replies, tool traces, approval cards and canvases.",
   "repos": [
    {
     "url": "https://github.com/mindroom-ai/mindroom-chat",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "PLAN.md (category to check)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "web",
    "macos",
    "ios",
    "android"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [],
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/README.md#L30"
    },
    {
     "os": "ios",
     "tech": "webview",
     "min_os": "16.4",
     "status": "stable",
     "stores": [
      {
       "name": "app-store",
       "url": "https://apps.apple.com/us/app/mindroom-ai/id6760272172"
      }
     ],
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/README.md#L31",
     "note": "iPhone and iPad; Capacitor shell (IPHONEOS_DEPLOYMENT_TARGET 16.4)"
    },
    {
     "os": "macos",
     "tech": "other",
     "min_os": "13.3",
     "status": "stable",
     "stores": [
      {
       "name": "homebrew",
       "url": "https://github.com/mindroom-ai/homebrew-tap"
      }
     ],
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/README.md#L32"
    },
    {
     "os": "android",
     "tech": "webview",
     "min_os": "7.0",
     "status": "beta",
     "stores": [],
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/README.md#L33",
     "note": "internal testing on Google Play, not public"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": "cinny",
   "distribution": [
    "app-store",
    "homebrew",
    "docker"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/package.json"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/vite.config.js#L119",
     "note": "pattern match [matrix-sdk-crypto]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/types/matrix/accountData.ts#L15",
     "note": "pattern match [CrossSigning]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/types/matrix/accountData.ts#L13",
     "note": "pattern match [SecretStorage]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/app/i18nLiteralTokens.test.ts#L55",
     "note": "pattern match [OIDC]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/app/components/message/Reply.tsx#L51",
     "note": "pattern match [threadRoot]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/types/matrix/room.ts#L39",
     "note": "pattern match [SpaceChild]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/app/mindroom/canvas/canvasDocument.test.ts#L135",
     "note": "pattern match [RTCPeerConnection]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/vite.config.js#L17",
     "note": "pattern match [ElementCall]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/types/matrix/room.ts#L51",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/app/matrixRelationsRace.test.ts#L14",
     "note": "pattern match [m.new_content]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/app/mindroom/message-search/SearchResultGroup.tsx#L133",
     "note": "pattern match [m.in_reply_to]"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/app/mindroom/threads/sdk/roomTimelineSdk.test.ts#L46",
     "note": "pattern match [m.poll]"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/types/matrix/accountData.ts#L10",
     "note": "pattern match [im.ponies]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/types/matrix/room.ts#L49",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/app/mindroom/threads/compactThreadRootData.test.ts#L975",
     "note": "pattern match [m.location]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/types/matrix/common.ts#L8",
     "note": "pattern match [VOICE_MESSAGE]"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/capacitor.config.ts#L24",
     "note": "pattern match [LinkPreview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/app/mindroom/native/iosPush.ts#L23",
     "note": "pattern match [setPusher]"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/app/mindroom/notifications/readReceipts.ts#L17",
     "note": "pattern match [ReadPrivate]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/app/components/presence/Presence.tsx#L24",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/types/matrix/room.ts#L34",
     "note": "pattern match [Tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/src/serviceWorkerNavigation.ts#L15",
     "note": "pattern match [/report]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/package.json#L168",
     "note": "pattern match [a11y]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "not-found"
    },
    "default_homeserver": {
     "value": "matrix.org",
     "how": "code",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/config.json#L3",
     "note": "first entry of homeserverList; the hosted app offers mindroom.chat accounts"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "note": "AGPL-3.0; Cinny (Vite/React) plus Capacitor iOS/Android; about 2,900 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "CLAUDE.md, AGENTS.md and .claude/ (skills: pr-review, address-pr-review-comments, cinny-live-test, native-subagent-pr-loop) at 9a35686964",
      "4 of 795 commits in the last 365 days carry Claude co-author trailers (0.5 %, below the 1 % mark; the agent setup is what makes this more than config-only)"
     ]
    },
    "in_product": {
     "value": "core",
     "note": "Built to talk to MindRoom AI agents: streaming replies with tool traces, model and run details, approval cards, canvases and agent-driven browsers.",
     "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/README.md#L12"
    }
   },
   "icon": {
    "file": "mindroom-chat.webp",
    "source": "https://github.com/mindroom-ai/mindroom-chat/blob/9a35686964e6228ccf9b03483617d0b8b18f0b8d/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Category decided from the repo: it is a full Matrix client (a Cinny fork), so lane 3 owns it. The agent backend, MindRoom (https://github.com/mindroom-ai/mindroom), is a bot/tool: listed in notes/03.md for lane 5.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 3,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 4,
     "commits_365d": 795,
     "share_365d": 0.005,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 4
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 17,
    "authors_90d": 1,
    "authors_all": 77,
    "authors_by_quarter": {
     "2023-Q1": 4,
     "2023-Q2": 4,
     "2023-Q3": 5,
     "2023-Q4": 4,
     "2024-Q1": 2,
     "2024-Q2": 6,
     "2024-Q3": 7,
     "2024-Q4": 5,
     "2025-Q1": 9,
     "2025-Q2": 5,
     "2025-Q3": 7,
     "2025-Q4": 3,
     "2026-Q1": 12,
     "2026-Q2": 6,
     "2026-Q3": 2,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 130,
    "commits_365d": 795,
    "commits_90d": 704,
    "commits_all": 1790,
    "first_commit": "2021-07-28T13:15:52+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "HTML": 0.0111,
     "JavaScript": 0.0145,
     "Python": 0.0015,
     "Shell": 0.0031,
     "Swift": 0.0055,
     "TypeScript": 0.9617
    },
    "last_commit": "2026-11-04T22:15:51+00:00",
    "last_tag": "v4.12.6-mindroom.298",
    "last_tag_date": "2026-11-04T14:15:51-08:00",
    "last_tag_repo": "https://github.com/mindroom-ai/mindroom-chat",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 73,
     "CSS": 283,
     "Dockerfile": 22,
     "Gemfile": 2,
     "Gradle": 167,
     "HTML": 4319,
     "Java": 23,
     "JavaScript": 5631,
     "Prolog": 18,
     "Python": 565,
     "Ruby": 202,
     "Shell": 1215,
     "Swift": 2136,
     "TypeScript": 372617,
     "TypeScript Typings": 176
    },
    "loc_total": 387449,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 591,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     2,
     10,
     10,
     5,
     16,
     7,
     8,
     3,
     0,
     0,
     2,
     0,
     1,
     3,
     10,
     3,
     0,
     0,
     1,
     3,
     1,
     0,
     0,
     2,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     440,
     49,
     25,
     82,
     26,
     24,
     30,
     28
    ]
   }
  },
  {
   "slug": "minetrix",
   "name": "Minetrix",
   "category": "bridge",
   "kind": "game chat bridge",
   "homepage": null,
   "summary": "Spigot/PaperMC plugin that connects a Minecraft server's chat to a Matrix room.",
   "repos": [
    {
     "url": "https://github.com/rrerrNet/Minetrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Matrix Minecraft Bridges)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "BSD-2-Clause",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Minecraft (Spigot/Paper)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/rrerrNet/Minetrix/blob/dd3367013234fd5acdd23855f2a15377e22b0390/pom.xml",
     "note": "own (Java plugin)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD dd3367013234; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2019-10-13. Licence: BSD-2-Clause (LICENSE at https://github.com/rrerrNet/Minetrix/blob/dd3367013234fd5acdd23855f2a15377e22b0390/LICENSE, checked 2026-11-05).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 14,
    "first_commit": "2019-09-01T13:13:49+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Kotlin": 1
    },
    "last_commit": "2019-10-13T19:52:47+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "BSD-2-Clause",
    "loc": {
     "Kotlin": 388
    },
    "loc_total": 388,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mirage",
   "name": "Mirage",
   "category": "client",
   "kind": "desktop",
   "homepage": null,
   "summary": "Customizable, keyboard-operable Qt/QML desktop client on matrix-nio; development stopped in 2021 (continued as the Moment fork).",
   "repos": [
    {
     "url": "https://github.com/mirukana/mirage",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)",
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "linux"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "qt",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/README.md"
    }
   ],
   "licence": "LGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "appimage",
    "flatpak-bundle",
    "aur",
    "nixpkgs"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/requirements.txt"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/src/backend/matrix_client.py#L1684",
     "note": "pattern match [Megolm]"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/README.md#L40",
     "note": "E2E key file import and export; no server-side key backup found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/README.md",
     "note": "\"Multiple accounts in one client\""
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/src/backend/matrix_client.py#L153",
     "note": "m.reaction is in the filter of event types hidden unless Chat.show_unknown_events is set (applied at matrix_client.py#L502-L506); reactions are not shown"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/src/backend/matrix_client.py#L670",
     "note": "pattern match [m.in_reply_to]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/README.md#L74",
     "note": "image previews of Matrix and HTTP URLs; no link (OpenGraph) previews"
    },
    "push_notifications": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/README.md",
     "note": "desktop notifications and a push-rules editor; no pusher"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/src/config/settings.py#L47",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "no",
     "how": "code",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/src/backend/matrix_client.py#L152",
     "note": "m.room.tombstone is in the same hidden-events filter; Utils.qml#L585 is only a push-rule label"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/src/gui/Popups/RemoveMemberPopup.qml#L24",
     "note": "kick, ban, power levels (README.md#L53)"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "none",
     "how": "code",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/src/backend/backend.py#L554",
     "note": "empty server field and a server browser fed by publiclist.anchel.nl"
    },
    "fork_friendliness": {
     "value": "Python + QML, about 470 files, qmake, five git submodules, matrix-nio from the author's own fork; LGPL-3.0-or-later",
     "how": "code",
     "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/requirements.txt"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2021-07-26, so no commits in the last 365 days (HEAD 9a4ababd9a)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "mirage.webp",
    "source": "https://github.com/mirukana/mirage/blob/9a4ababd9aa59bd78ad239422918c2c4eaaf6b7d/packaging/mirage.png",
    "licence": "LGPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Licence, features and distribution corrected in the integration pass from lane 9's reading of the repo at 9a4ababd (SPDX headers say LGPL-3.0-or-later; README says \"currently in alpha\"; maturity unmaintained is our reading: no commit since 2021). Continued as Moment, whose history contains Mirage's last commit. Releases: AppImage and a .flatpak bundle on GitHub (not on Flathub), AUR matrix-mirage, nixpkgs mirage-im; docs/INSTALL.md says releases are Linux only.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 16,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 2627,
    "first_commit": "2019-03-22T03:28:14+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.009,
     "C++": 0.0079,
     "Prolog": 0.004,
     "Python": 0.3404,
     "QML": 0.6295,
     "Shell": 0.0091
    },
    "last_commit": "2021-07-26T08:39:58+00:00",
    "last_tag": "v0.7.2",
    "last_tag_date": "2021-07-26T04:39:58-04:00",
    "last_tag_repo": "https://github.com/mirukana/mirage",
    "licence_detected": "GPL-3.0",
    "loc": {
     "C Header": 203,
     "C++": 178,
     "Prolog": 90,
     "Python": 7664,
     "QML": 14172,
     "Shell": 205
    },
    "loc_total": 22512,
    "main_language": "QML",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mjolnir",
   "name": "Mjolnir",
   "category": "tool",
   "kind": "moderation",
   "homepage": "https://github.com/matrix-org/mjolnir",
   "summary": "Matrix.org's moderation bot that applies shared ban lists (policy lists) across protected rooms, with an optional Synapse module and report handling.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/mjolnir",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "moderation (policy lists, bans, protections, abuse reports)",
     "how": "claimed",
     "source": "https://github.com/matrix-org/mjolnir/blob/23f2fec90e09752a7d28f58c35f76cfbd5e8999a/README.md"
    },
    "framework": {
     "value": "matrix-bot-sdk",
     "how": "code",
     "source": "https://github.com/matrix-org/mjolnir/blob/23f2fec90e09752a7d28f58c35f76cfbd5e8999a/package.json",
     "note": "Element's fork @vector-im/matrix-bot-sdk"
    },
    "e2ee": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/matrix-org/mjolnir/blob/23f2fec90e09752a7d28f58c35f76cfbd5e8999a/README.md",
     "note": "the report-handling web API can only read unencrypted rooms; the README does not state E2EE support for the bot"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/matrix-org/mjolnir/blob/23f2fec90e09752a7d28f58c35f76cfbd5e8999a/README.md",
     "note": "bot (Docker or Node) plus an optional Synapse antispam module"
    },
    "config": {
     "value": "config file and !mjolnir commands",
     "how": "claimed",
     "source": "https://github.com/matrix-org/mjolnir/blob/23f2fec90e09752a7d28f58c35f76cfbd5e8999a/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/matrix-org/mjolnir/blob/23f2fec90e09752a7d28f58c35f76cfbd5e8999a/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 21 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 23f2fec90e09"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Draupnir is a continuation of Mjolnir by a former contributor; Meowlnir is an unrelated rewrite. CONTRIBUTING.md (the matrix-org template) has no statement on AI.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 21,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 2,
    "authors_all": 35,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 2,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 4,
     "2024-Q4": 4,
     "2025-Q1": 6,
     "2025-Q2": 3,
     "2025-Q3": 2,
     "2025-Q4": 2,
     "2026-Q1": 2,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 4,
    "commits_365d": 21,
    "commits_90d": 8,
    "commits_all": 540,
    "first_commit": "2019-09-26T01:36:12+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Python": 0.0169,
     "TypeScript": 0.9813
    },
    "last_commit": "2026-10-27T18:07:33+00:00",
    "last_tag": "v2.0.2",
    "last_tag_date": "2026-10-27T11:07:33-07:00",
    "last_tag_repo": "https://github.com/matrix-org/mjolnir",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 15,
     "JavaScript": 6,
     "Python": 270,
     "Shell": 8,
     "TypeScript": 15698
    },
    "loc_total": 15997,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 5,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     1,
     0,
     1,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     4,
     0,
     1,
     0,
     2,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     1,
     1,
     0,
     0,
     1,
     0,
     0,
     1,
     2,
     1,
     0
    ]
   }
  },
  {
   "slug": "mnotify",
   "name": "mnotify",
   "category": "client",
   "kind": "terminal (CLI)",
   "homepage": null,
   "summary": "Small Rust CLI (mn) for getting messages from scripts and servers into Matrix rooms, E2EE included, with JSON output.",
   "repos": [
    {
     "url": "https://github.com/rumpelsepp/mnotify",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/mnotify/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "terminal"
   ],
   "apps": [
    {
     "os": "terminal",
     "tech": "other",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/rumpelsepp/mnotify/blob/5a9d8163b86aae053a4971971f6e5b2f31ab7ed1/README.md"
    }
   ],
   "licence": "EUPL-1.2",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "source": "https://github.com/rumpelsepp/mnotify/blob/5a9d8163b86aae053a4971971f6e5b2f31ab7ed1/Cargo.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/rumpelsepp/mnotify/blob/5a9d8163b86aae053a4971971f6e5b2f31ab7ed1/Cargo.toml#L20",
     "note": "pattern match [matrix-sdk-crypto]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/rumpelsepp/mnotify/blob/5a9d8163b86aae053a4971971f6e5b2f31ab7ed1/src/main.rs#L214",
     "note": "pattern match [cross-signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/rumpelsepp/mnotify/blob/5a9d8163b86aae053a4971971f6e5b2f31ab7ed1/src/output.rs#L193",
     "note": "pattern match [key backup]"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/rumpelsepp/mnotify/blob/5a9d8163b86aae053a4971971f6e5b2f31ab7ed1/src/main.rs#L401",
     "note": "pattern match [sliding sync]"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/rumpelsepp/mnotify/blob/5a9d8163b86aae053a4971971f6e5b2f31ab7ed1/src/output.rs#L275",
     "note": "pattern match [m.thread]"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/rumpelsepp/mnotify/blob/5a9d8163b86aae053a4971971f6e5b2f31ab7ed1/src/main.rs#L13",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/rumpelsepp/mnotify/blob/5a9d8163b86aae053a4971971f6e5b2f31ab7ed1/src/output.rs#L121",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "EUPL-1.2; one Rust crate, about 50 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "49 of 50 commits in the last 365 days carry Claude co-author trailers (Claude Opus 5.5, Sonnet 5) at 5a9d8163b8",
      "no agent files"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "matrix.org marks it \"Obsolete\" and lists E2EE as unsupported; the current repo is active again (commits in October 2026) and its README says E2EE rooms work. The listing looks out of date.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 49,
     "commits_365d": 50,
     "share_365d": 0.98,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 49
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 2,
    "commits_365d": 50,
    "commits_90d": 50,
    "commits_all": 171,
    "first_commit": "2020-09-07T12:12:25+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0326,
     "Dockerfile": 0.0015,
     "Python": 0.1012,
     "Rust": 0.8539,
     "Shell": 0.0108
    },
    "last_commit": "2026-10-07T19:38:01+00:00",
    "last_tag": "v0.3.0",
    "last_tag_date": "2026-10-07T21:41:55+02:00",
    "last_tag_repo": "https://github.com/rumpelsepp/mnotify",
    "licence_detected": "EUPL-1.2",
    "loc": {
     "BASH": 106,
     "Dockerfile": 5,
     "Python": 329,
     "Rust": 2777,
     "Shell": 35
    },
    "loc_total": 3252,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 2,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     19,
     1,
     0,
     0,
     30,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "moment",
   "name": "Moment",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://mx-moment.xyz",
   "summary": "Customizable, keyboard-operable Qt/QML desktop client, a fork of Mirage on matrix-nio.",
   "repos": [
    {
     "url": "https://gitlab.com/mx-moment/moment",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "linux"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/details/xyz.mx_moment.moment"
      },
      {
       "name": "aur",
       "url": "https://aur.archlinux.org/packages/moment"
      }
     ],
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/README.md"
    }
   ],
   "licence": "LGPL-3.0-or-later",
   "fork_of": "mirage",
   "distribution": [
    "flathub",
    "aur"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/requirements.txt"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/src/backend/matrix_client.py#L1923",
     "note": "pattern match [Megolm]"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "partial",
     "how": "claimed",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/README.md#L44",
     "note": "key file import and export only"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/README.md#L41"
    },
    "threads": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/src/backend/matrix_client.py#L2864",
     "note": "reads m.thread relations only to send threaded read receipts; no thread view"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/src/backend/matrix_client.py#L891",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/src/backend/nio_callbacks.py#L168",
     "note": "received edits are displayed (CHANGELOG 0.7.4); sending an edit not found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/src/backend/matrix_client.py#L728",
     "note": "pattern match [m.in_reply_to]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/src/config/settings.py#L192-L197",
     "note": "image previews only; external (http) media previews off by default since 0.7.6, with an IP-leak warning"
    },
    "push_notifications": {
     "value": "partial",
     "how": "claimed",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/README.md",
     "note": "desktop notifications and a push-rules editor"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/src/config/settings.py#L48",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/src/gui/Utils.qml#L610",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/src/gui/Popups/RemoveMemberPopup.qml#L24",
     "note": "kick, ban, power levels (README.md#L57)"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "none",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/src/backend/backend.py#L570",
     "note": "empty server field and a server browser from servers.joinmatrix.org"
    },
    "fork_friendliness": {
     "value": "Python + QML, about 480 files, qmake; LGPL-3.0-or-later",
     "how": "code",
     "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/requirements.txt"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (6 non-bot commits in the last 365 days) at 2667256dbb"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "moment.webp",
    "source": "https://gitlab.com/mx-moment/moment/-/blob/2667256dbbc940154e9cb3e95b8db5e0b3206393/packaging/moment.png",
    "licence": "LGPL-3.0-or-later",
    "note": "ships Mirage's logo (Moment is a fork of Mirage)",
    "checked": "2026-11-05"
   },
   "notes": "Fork of Mirage (README; Mirage's HEAD 9a4ababd is an ancestor of main). Adds reaction display, proper edit display, upstream matrix-nio, emoji shortcodes, spoilers and external media previews off by default (docs/MIRAGEDIFF.md, docs/CHANGELOG.md). README says \"currently in alpha\". Licence, maturity and features corrected in the integration pass from lane 9's reading at 2667256d. Last tag v0.7.6 (2025-03-06). Releases are Linux only (docs/INSTALL.md).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 6,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 23,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 3,
     "2023-Q4": 2,
     "2024-Q1": 4,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 3,
     "2025-Q2": 2,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 6,
    "commits_90d": 0,
    "commits_all": 2775,
    "first_commit": "2019-03-22T03:28:14+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0086,
     "C++": 0.0153,
     "Prolog": 0.0039,
     "Python": 0.351,
     "QML": 0.6206
    },
    "last_commit": "2026-03-16T16:17:10+00:00",
    "last_tag": "v0.7.6",
    "last_tag_date": "2025-03-06T13:54:02+01:00",
    "last_tag_repo": "https://gitlab.com/mx-moment/moment",
    "licence_detected": "GPL-3.0",
    "loc": {
     "C Header": 203,
     "C++": 360,
     "Prolog": 92,
     "Python": 8250,
     "QML": 14587,
     "Shell": 14
    },
    "loc_total": 23506,
    "main_language": "QML",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     3,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mtxclient",
   "name": "mtxclient",
   "category": "sdk",
   "kind": "C++",
   "homepage": "https://github.com/Nheko-Reborn/mtxclient",
   "summary": "A C++17 client library for Matrix by the Nheko maintainers, the base of nheko and konheko.",
   "repos": [
    {
     "url": "https://github.com/Nheko-Reborn/mtxclient",
     "forge": "github",
     "role": "main"
    },
    {
     "url": "https://github.com/mujx/mtxclient",
     "forge": "github",
     "role": "other"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "windows",
    "macos",
    "linux"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "aur"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/mtxclient/blob/f5766cb53c244a808b7e512c7b83b3942fb67834/CMakeLists.txt",
     "note": "libolm (bundled or system)"
    },
    "crypto": "libolm",
    "sliding_sync": {
     "value": "not-found",
     "how": "code",
     "note": "no MSC4186 or MSC3575 code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code",
     "note": "only the UIA m.oauth stage type in user_interactive.hpp, no OAuth login"
    },
    "threads": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/mtxclient/blob/f5766cb53c244a808b7e512c7b83b3942fb67834/include/mtx/events/common.hpp#L191",
     "note": "m.thread relation type"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/mtxclient/blob/f5766cb53c244a808b7e512c7b83b3942fb67834/include/mtx/events/spaces.hpp",
     "note": "space child/parent events and the hierarchy endpoint"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "konheko",
     "nheko"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 16 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at f5766cb53c24"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "icon": {
    "file": "mtxclient.webp",
    "source": "https://avatars.githubusercontent.com/u/46657606?v=4&s=256",
    "licence": null,
    "note": "Nheko's logo: the Nheko-Reborn organisation's avatar on GitHub (mtxclient is Nheko's client library)",
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"mtxclient\" (Obsolete, C++, maintainer: mujx). Last non-bot commit 2026-03-02, 16 non-bot commits in the last year and 0 authors in the last 90 days by our count at f5766cb53c24 (the collector recounts). The original repo (mujx/mtxclient, listed on matrix.org as obsolete, last commit 2019) is kept as a second repo; Nheko-Reborn continued it.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "mx-puppet-bridge",
   "name": "mx-puppet-bridge",
   "category": "bridge",
   "kind": "bridge framework",
   "homepage": null,
   "summary": "Library for building puppeting bridges (Discord, Slack, Steam, GroupMe, … were built on it); the original author stopped development.",
   "repos": [
    {
     "url": "https://gitlab.com/mx-puppet/mx-puppet-bridge",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Mx Puppet Bridge)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "library for several networks",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/mx-puppet/mx-puppet-bridge/-/blob/f536fad8067b096720b9e5d19751000f3527306e/package.json",
     "note": "own (TypeScript library)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD f536fad8067b; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2022-05-21. Community space room: the original author stopped, library has no maintainer.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 16,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 438,
    "first_commit": "2019-06-16T12:06:29+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Makefile": 0.0031,
     "TypeScript": 0.9955
    },
    "last_commit": "2022-05-21T14:07:21+00:00",
    "last_tag": "v0.1.8",
    "last_tag_date": "2022-05-01T22:48:30+02:00",
    "last_tag_repo": "https://gitlab.com/mx-puppet/mx-puppet-bridge",
    "licence_detected": "Apache-2.0",
    "loc": {
     "JavaScript": 14,
     "Makefile": 57,
     "Shell": 10,
     "TypeScript": 18086
    },
    "loc_total": 18167,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mx-puppet-discord",
   "name": "mx-puppet-discord",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Discord puppeting bridge on mx-puppet-bridge (DMs, group DMs and guilds).",
   "repos": [
    {
     "url": "https://gitlab.com/mx-puppet/discord/mx-puppet-discord",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Mx Puppet Bridge)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Discord",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/mx-puppet/discord/mx-puppet-discord/-/blob/fd4402268e9a8b942ca632f3337702862e06d24f/package.json",
     "note": "mx-puppet-bridge"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD fd4402268e9a; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2022-05-09. The community space room suggests mautrix-discord instead.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 18,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 247,
    "first_commit": "2019-06-30T15:45:05+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0265,
     "Shell": 0.0104,
     "TypeScript": 0.9631
    },
    "last_commit": "2022-05-09T18:32:43+00:00",
    "last_tag": "v0.1.1",
    "last_tag_date": "2022-05-05T18:06:54+00:00",
    "last_tag_repo": "https://gitlab.com/mx-puppet/discord/mx-puppet-discord",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 64,
     "Shell": 25,
     "TypeScript": 2326
    },
    "loc_total": 2415,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mx-puppet-groupme",
   "name": "mx-puppet-groupme",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "GroupMe puppeting bridge on mx-puppet-bridge.",
   "repos": [
    {
     "url": "https://gitlab.com/robintown/mx-puppet-groupme",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/groupme/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "GroupMe",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/robintown/mx-puppet-groupme/-/blob/19c9824127e387b4af1d1492941b783b69e0bf3c/package.json",
     "note": "mx-puppet-bridge"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 19c9824127e3; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2021-11-17; matrix.org labels it Obsolete (listed as matrix-puppet-groupme). Successor in development: beeper-groupme.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 52,
    "first_commit": "2020-12-19T05:09:22+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0266,
     "Shell": 0.0214,
     "TypeScript": 0.952
    },
    "last_commit": "2021-11-13T03:47:34+00:00",
    "last_tag": "v2",
    "last_tag_date": "2021-01-09T18:58:46-05:00",
    "last_tag_repo": "https://gitlab.com/robintown/mx-puppet-groupme",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 31,
     "Shell": 25,
     "TypeScript": 1111
    },
    "loc_total": 1167,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mx-puppet-slack",
   "name": "mx-puppet-slack",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Slack puppeting bridge on mx-puppet-bridge with multi-user instances.",
   "repos": [
    {
     "url": "https://gitlab.com/mx-puppet/slack/mx-puppet-slack",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/slack/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Slack",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/mx-puppet/slack/mx-puppet-slack/-/blob/71b501797febf6b804faca1d9f827a045dce46f9/package.json",
     "note": "mx-puppet-bridge"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 71b501797feb; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2022-05-14; matrix.org labels it Obsolete.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 17,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 172,
    "first_commit": "2019-06-21T13:12:20+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0399,
     "Shell": 0.0159,
     "TypeScript": 0.9442
    },
    "last_commit": "2022-05-13T17:36:01+00:00",
    "last_tag": "v0.1.2",
    "last_tag_date": "2022-05-16T16:53:58+00:00",
    "last_tag_repo": "https://gitlab.com/mx-puppet/slack/mx-puppet-slack",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 63,
     "Shell": 25,
     "TypeScript": 1489
    },
    "loc_total": 1577,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mx-puppet-steam",
   "name": "mx-puppet-steam",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Archived Steam puppeting bridge on mx-puppet-bridge.",
   "repos": [
    {
     "url": "https://github.com/icewind1991/mx-puppet-steam",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "search for Steam bridges"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Steam",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/icewind1991/mx-puppet-steam/blob/101ca17fb9a645377d3482e94c2c25d8182db1e8/package.json",
     "note": "mx-puppet-bridge"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 101ca17fb9a6; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Archived on GitHub (last commit 2025-06-03). Other Steam bridge: matrix-steam-bridge (bridgev2, active).",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 1,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 53,
    "first_commit": "2020-05-05T16:40:44+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.008,
     "Nix": 0.0092,
     "Shell": 0.0057,
     "TypeScript": 0.9771
    },
    "last_commit": "2025-06-03T13:07:28+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 35,
     "Nix": 40,
     "Shell": 25,
     "TypeScript": 4258
    },
    "loc_total": 4358,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mxbt",
   "name": "mxbt",
   "category": "sdk",
   "kind": "Python",
   "homepage": "https://codeberg.org/librehub/mxbt",
   "summary": "Yet another Matrix bot library in Python.",
   "repos": [
    {
     "url": "https://codeberg.org/librehub/mxbt",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 6a2dc916d653"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"mxbt\" (Beta, Python, maintainer: kulebyaka). Last non-bot commit 2025-10-29, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 6a2dc916d653 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "mxhsd",
   "name": "mxhsd",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A Java homeserver for organisations wanting in-depth control of their servers.",
   "repos": [
    {
     "url": "https://github.com/kamax-matrix/mxhsd",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Java",
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "no commits since 2018-10-19; not cloned"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "mxhsd.webp",
    "source": "https://github.com/kamax-matrix/mxhsd/blob/710692052f2e349a1ab415246dc5bf04bb46af98/media/mx-hs-icon.png",
    "licence": "AGPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org labels it \"Obsolete\". Last push 2018-10-19 (GitHub API); not cloned or MSC-scanned.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 117,
    "first_commit": "2017-08-13T14:01:06+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0072,
     "Gradle": 0.0108,
     "Java": 0.9664,
     "Shell": 0.0156
    },
    "last_commit": "2018-10-19T21:44:02+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 61,
     "Gradle": 92,
     "Java": 8215,
     "Shell": 133
    },
    "loc_total": 8501,
    "main_language": "Java",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "mxtoot",
   "name": "mxtoot",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Java bridge between Matrix and Mastodon.",
   "repos": [
    {
     "url": "https://github.com/ma1uta/mxtoot",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (mxtoot)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Mastodon",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ma1uta/mxtoot/blob/1576e8ea896809e25fdb5dea30d244f6185e12c8/pom.xml",
     "note": "own (Java)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 1576e8ea8968; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2018-09-20. Other ActivityPub bridge: Kazarma.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 34,
    "first_commit": "2018-06-01T18:29:31+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Java": 0.9933,
     "Systemd": 0.0067
    },
    "last_commit": "2018-09-20T20:10:55+00:00",
    "last_tag": "0.5.0",
    "last_tag_date": "2018-09-20T23:10:55+03:00",
    "last_tag_repo": "https://github.com/ma1uta/mxtoot",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Java": 2212,
     "Systemd": 15
    },
    "loc_total": 2227,
    "main_language": "Java",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "neo",
   "name": "Neo",
   "category": "client",
   "kind": "web",
   "homepage": "https://neo.pixie.town",
   "summary": "Lightweight Matrix web client; the GitHub copy is archived and points to neo.pixie.town, where development was said to continue.",
   "repos": [
    {
     "url": "https://github.com/f0x52/neo",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/f0x52/neo/blob/d3265745dcee347538cea8bada23c351b73c6654/readme.md"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/f0x52/neo/blob/d3265745dcee347538cea8bada23c351b73c6654/src/js/components/messageView.js#L83",
     "note": "pattern match [m.in_reply_to]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/f0x52/neo/blob/d3265745dcee347538cea8bada23c351b73c6654/src/js/components/messageView.js#L88",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/f0x52/neo/blob/d3265745dcee347538cea8bada23c351b73c6654/src/js/lib/Events.js#L34",
     "note": "pattern match [m.location]"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/f0x52/neo/blob/d3265745dcee347538cea8bada23c351b73c6654/src/js/components/messageView.js#L448",
     "note": "pattern match [preview_url]"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2019-10-03, so no commits in the last 365 days (HEAD d3265745dc)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "neo.webp",
    "source": "https://github.com/f0x52/neo/blob/d3265745dcee347538cea8bada23c351b73c6654/src/assets/neo_full.png",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "README: \"THIS GITHUB PAGE HAS BEEN ARCHIVED / NEO DEVELOPMENT CONTINUES / https://neo.pixie.town\". The newer source location was not checked.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 183,
    "first_commit": "2018-03-29T18:44:30+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "HTML": 0.0028,
     "JavaScript": 0.7727,
     "Sass": 0.2245
    },
    "last_commit": "2019-10-03T13:57:36+00:00",
    "last_tag": "0.06",
    "last_tag_date": "2018-06-01T14:41:55+02:00",
    "last_tag_repo": "https://github.com/f0x52/neo",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "HTML": 11,
     "JavaScript": 3035,
     "Sass": 882
    },
    "loc_total": 3928,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "matrix-neoboard",
   "name": "NeoBoard",
   "category": "tool",
   "kind": "widget",
   "homepage": "https://github.com/nordeck/matrix-neoboard",
   "summary": "A collaborative whiteboard widget for Element that stores its boards as room events, so they can be end-to-end encrypted.",
   "repos": [
    {
     "url": "https://github.com/nordeck/matrix-neoboard",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "helm"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "widget (collaborative whiteboard)",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-neoboard/blob/710d7d4db2c2a7b1916b64b0ed71fa18b65b8fd3/README.md"
    },
    "framework": {
     "value": "matrix-widget-api via Nordeck's matrix-widget-toolkit",
     "how": "code",
     "source": "https://github.com/nordeck/matrix-neoboard/blob/710d7d4db2c2a7b1916b64b0ed71fa18b65b8fd3/matrix-neoboard-widget/package.json"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-neoboard/blob/710d7d4db2c2a7b1916b64b0ed71fa18b65b8fd3/README.md",
     "note": "\"keep it secure with end-to-end encryption\" (board data lives in the room)"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-neoboard/blob/710d7d4db2c2a7b1916b64b0ed71fa18b65b8fd3/README.md",
     "note": "static widget served from a container or Helm chart; needs Element Web 1.11.46+"
    },
    "config": {
     "value": "environment variables at deploy time; added to rooms as a widget",
     "how": "claimed",
     "source": "https://github.com/nordeck/matrix-neoboard/blob/710d7d4db2c2a7b1916b64b0ed71fa18b65b8fd3/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/nordeck/matrix-neoboard/blob/710d7d4db2c2a7b1916b64b0ed71fa18b65b8fd3/matrix-neoboard-widget/package.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 45 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 710d7d4db2c2"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Element Web is the only client known to the project to support widgets.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 45,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 7,
    "authors_90d": 4,
    "authors_all": 18,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 5,
     "2023-Q3": 2,
     "2023-Q4": 5,
     "2024-Q1": 4,
     "2024-Q2": 4,
     "2024-Q3": 8,
     "2024-Q4": 6,
     "2025-Q1": 8,
     "2025-Q2": 5,
     "2025-Q3": 4,
     "2025-Q4": 2,
     "2026-Q1": 3,
     "2026-Q2": 6,
     "2026-Q3": 4,
     "2026-Q4": 2
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 4,
    "commits_365d": 45,
    "commits_90d": 13,
    "commits_all": 408,
    "first_commit": "2023-05-16T14:00:57+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 0.0015,
     "TypeScript": 0.9968
    },
    "last_commit": "2026-10-19T14:12:40+00:00",
    "last_tag": "@nordeck/matrix-neoboard-react-sdk@2.1.0",
    "last_tag_date": "2026-11-03T10:21:40+00:00",
    "last_tag_repo": "https://github.com/nordeck/matrix-neoboard",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 12,
     "HTML": 32,
     "JSON5": 5,
     "JavaScript": 116,
     "Smarty Template": 58,
     "TypeScript": 76949,
     "TypeScript Typings": 26
    },
    "loc_total": 77198,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/nordeck/matrix-neoboard/blob/710d7d4db2c2a7b1916b64b0ed71fa18b65b8fd3/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 12,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     2,
     2,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     1,
     0,
     1,
     2,
     0,
     3,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     4,
     0,
     5,
     5,
     3,
     0,
     1,
     0,
     0,
     2,
     0,
     0,
     1,
     0,
     2,
     3,
     1,
     0,
     1,
     3,
     0,
     0
    ]
   }
  },
  {
   "slug": "neochat",
   "name": "NeoChat",
   "category": "client",
   "kind": "desktop, mobile",
   "homepage": "https://apps.kde.org/neochat",
   "summary": "KDE's Matrix client, built with Qt, Kirigami and libQuotient, for Linux desktops, Plasma Mobile, Windows and Android.",
   "repos": [
    {
     "url": "https://invent.kde.org/network/neochat",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/neochat/",
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "linux",
    "windows",
    "macos",
    "android"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "qt",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/org.kde.neochat"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/neochat.md"
    },
    {
     "os": "windows",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "microsoft-store",
       "url": "https://www.microsoft.com/store/apps/9PNXWVNRC29H"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/neochat.md"
    },
    {
     "os": "android",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/android/build.gradle",
     "note": "Android build exists (KDE F-Droid repo, per a commented-out line in the matrix.org listing)"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": "spectral",
   "distribution": [
    "flathub",
    "microsoft-store"
   ],
   "funding": [
    "https://nlnet.nl/project/NeoChat/"
   ],
   "features": {
    "sdk": {
     "value": "libQuotient",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/CMakeLists.txt",
     "note": "libQuotient (Qt), with Quotient's Rust crypto"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/settings/ExportKeysDialog.qml#L47",
     "note": "pattern match [Megolm]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/app/qml/ManageKeyStorageDialog.qml#L112",
     "note": "pattern match [Cross-Signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/app/qml/ManageKeyStorageDialog.qml#L33",
     "note": "pattern match [KeyBackup]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/libneochat/jobs/neochatauthmetadatajob.cpp#L9",
     "note": "pattern match [auth_metadata]"
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/neochat.md"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/messagecontent/contentprovider.cpp#L79",
     "note": "pattern match [threadRoot]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/app/roommanager.cpp#L606",
     "note": "pattern match [SpaceHierarchy]"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/app/qml/GlobalMenu.qml#L79",
     "note": "pattern match [element call]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/settings/models/permissionsmodel.cpp#L39",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/chatbar/actionsmodel.cpp#L527",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/libneochat/neochatroom.cpp#L1706",
     "note": "pattern match [m.in_reply_to]"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/app/notificationsmanager.cpp#L143",
     "note": "pattern match [org.matrix.msc3381]"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/chatbar/EmojiPicker.qml#L124",
     "note": "pattern match [emoticon]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/libneochat/events/imagepackevent.h#L42",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/messagecontent/LocationComponent.qml#L83",
     "note": "pattern match [geo:]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/chatbar/VoiceMessageDialog.qml#L19",
     "note": "pattern match [VoiceMessage]"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/messagecontent/LinkPreviewComponent.qml#L14",
     "note": "pattern match [link preview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/snapcraft.yaml#L141",
     "note": "pattern match [unifiedpush]"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/autotests/server.cpp#L388",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/settings/RoomAdvancedPage.qml#L61",
     "note": "pattern match [roomUpgrade]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/timeline/DelegateContextMenu.qml#L419",
     "note": "pattern match [reportEvent]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/src/chatbar/NewPollDialog.qml#L119",
     "note": "pattern match [Accessible.name]"
    },
    "translations": {
     "value": "yes",
     "how": "claimed",
     "note": "KDE l10n (Scripty) infrastructure"
    },
    "telemetry": {
     "value": "not-found",
     "how": "code",
     "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/android/build.gradle#L30",
     "note": "io.sentry:sentry-android-core is a dependency of the Android build; whether and how it reports was not checked"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "note": "GPL-3.0; CMake/Qt6/KF6 build with libQuotient; about 740 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at 2bcdbc0f7b",
      "no AI-attributed commits in 1,147 non-bot commits of the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    },
    "funder_policy": [
     {
      "funder": "NLnet Foundation (NGI Assure fund)",
      "grant": "https://nlnet.nl/project/NeoChat/",
      "policy": "https://nlnet.nl/foundation/policies/generativeAI/archive/",
      "value": "none-found",
      "grant_start": "2021-06",
      "grant_end": "2024-08",
      "grant_source": "https://nlnet.nl/project/NeoChat/",
      "policy_version": "none; NLnet's first GenAI policy (1.0) came into force on 2025-12-08",
      "quote": null,
      "scope": "work delivered within the grant (end-to-end encryption, mostly in libQuotient)",
      "transition": "The grant ended (2024-08) before NLnet had a GenAI policy, so no version binds it.",
      "transparency": "not applicable",
      "checked": "2026-11-05"
     }
    ]
   },
   "icon": {
    "file": "neochat.webp",
    "source": "https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/android/res/drawable/neochat.png",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "A KDE-wide policy on AI contributions, if any, was not checked; nothing in the repo itself. NeoChat is a fork of Spectral (README.md line 86 at 2bcdbc0f: https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/README.md).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1147,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 35,
    "authors_90d": 16,
    "authors_all": 146,
    "authors_by_quarter": {
     "2023-Q1": 20,
     "2023-Q2": 20,
     "2023-Q3": 19,
     "2023-Q4": 16,
     "2024-Q1": 15,
     "2024-Q2": 17,
     "2024-Q3": 19,
     "2024-Q4": 19,
     "2025-Q1": 16,
     "2025-Q2": 18,
     "2025-Q3": 16,
     "2025-Q4": 19,
     "2026-Q1": 19,
     "2026-Q2": 13,
     "2026-Q3": 15,
     "2026-Q4": 7
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 29,
    "commits_365d": 1147,
    "commits_90d": 235,
    "commits_all": 7151,
    "first_commit": "2018-02-23T14:39:14+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.1752,
     "C++": 0.4569,
     "CMake": 0.0216,
     "Python": 0.0042,
     "QML": 0.3421
    },
    "last_commit": "2026-11-05T00:55:45+00:00",
    "last_tag": "v26.08.2",
    "last_tag_date": "2026-10-08T12:21:18+02:00",
    "last_tag_repo": "https://invent.kde.org/network/neochat",
    "licence_detected": null,
    "loc": {
     "C Header": 11002,
     "C++": 28683,
     "CMake": 1358,
     "Python": 262,
     "QML": 21476,
     "Shell": 1
    },
    "loc_total": 62782,
    "main_language": "C++",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 18,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": false,
    "weekly_commits": [
     16,
     12,
     9,
     11,
     11,
     8,
     12,
     13,
     17,
     27,
     48,
     37,
     10,
     41,
     92,
     48,
     46,
     44,
     13,
     13,
     46,
     20,
     13,
     14,
     20,
     25,
     34,
     27,
     18,
     13,
     2,
     7,
     30,
     6,
     22,
     32,
     17,
     24,
     12,
     8,
     9,
     15,
     13,
     51,
     51,
     38,
     15,
     6,
     5,
     10,
     8,
     6
    ]
   }
  },
  {
   "slug": "neoment",
   "name": "Neoment",
   "category": "client",
   "kind": "terminal (Neovim plugin)",
   "homepage": null,
   "summary": "Matrix client as a Neovim plugin in Lua; no E2EE.",
   "repos": [
    {
     "url": "https://github.com/Massolari/neoment",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/neoment/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "terminal"
   ],
   "apps": [
    {
     "os": "terminal",
     "tech": "tui",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/README.md"
    }
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own",
     "how": "code",
     "note": "talks to the client-server API directly from Lua"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/README.md",
     "note": "\"Neoment does not currently support End-to-End Encryption (E2EE).\""
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/lua/neoment/room.lua#L294",
     "note": "pattern match [thread_root]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/lua/neoment/space.lua#L21",
     "note": "pattern match [SpaceHierarchy]"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/lua/neoment/matrix/init.lua#L799",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/lua/neoment/matrix/init.lua#L520",
     "note": "pattern match [m.new_content]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/lua/neoment/matrix/init.lua#L492",
     "note": "pattern match [m.in_reply_to]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/lua/neoment/markdown.lua#L297",
     "note": "pattern match [emoticon]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/lua/neoment/matrix/event.lua#L15",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/lua/neoment/matrix/event.lua#L13",
     "note": "pattern match [m.location]"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/lua/neoment/rooms.lua#L1043",
     "note": "pattern match [read_private]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/lua/neoment/sync.lua#L72",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Massolari/neoment/blob/b128ae5e4d6adf04f7f1b9a4e2dd11a93740b3f0/lua/neoment/storage.lua#L100",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "MIT; about 40 Lua files, no build step"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "AGENTS.md (agent guidelines: build/test commands, code style) at b128ae5e4d",
      "6 of 167 commits in the last 365 days (3.6 %) carry Copilot co-author trailers"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 6,
     "commits_365d": 155,
     "share_365d": 0.0387,
     "suggested_dev_usage": "occasional",
     "tools": {
      "copilot": 6
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 1,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 2,
     "2025-Q3": 1,
     "2025-Q4": 2,
     "2026-Q1": 2,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 155,
    "commits_90d": 1,
    "commits_all": 273,
    "first_commit": "2025-04-28T08:52:46+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Lua": 1
    },
    "last_commit": "2026-08-11T16:08:13+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "MIT",
    "loc": {
     "Lua": 13066
    },
    "loc_total": 13066,
    "main_language": "Lua",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     6,
     1,
     24,
     23,
     11,
     5,
     0,
     10,
     13,
     1,
     2,
     1,
     6,
     2,
     1,
     3,
     0,
     3,
     4,
     6,
     8,
     6,
     0,
     1,
     0,
     3,
     2,
     0,
     8,
     3,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "net-async-matrix",
   "name": "Net::Async::Matrix",
   "category": "sdk",
   "kind": "Perl",
   "homepage": "https://metacpan.org/release/Net-Async-Matrix",
   "summary": "A Perl client library for Matrix on IO::Async, by LeoNerd, distributed on CPAN.",
   "repos": [],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "GPL-1.0-or-later",
   "fork_of": null,
   "distribution": [
    "cpan"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no repository to scan"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "not checked",
     "source": null
    }
   },
   "notes": "matrix.org links the CPAN release page, not a source repository; activity not measured.",
   "checked": "2026-11-05",
   "status": "no-repo",
   "metrics": null
  },
  {
   "slug": "newlisp-matrix-client",
   "name": "newlisp-matrix-client",
   "category": "sdk",
   "kind": "newLISP",
   "homepage": "https://github.com/IngoHohmann/newlisp-matrix-client",
   "summary": "A Matrix client library for newLISP.",
   "repos": [
    {
     "url": "https://github.com/IngoHohmann/newlisp-matrix-client",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 56f05654982c"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"newlisp-matrix-client\" (Obsolete, Lisp, maintainer: Ingo Hohmann). Last non-bot commit 2015-05-15, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 56f05654982c (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "nheko",
   "name": "Nheko",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://nheko-reborn.github.io",
   "summary": "Native desktop Matrix client in C++ and Qt/QML, built on mtxclient.",
   "repos": [
    {
     "url": "https://github.com/Nheko-Reborn/nheko",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/nheko/",
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "linux",
    "windows",
    "macos"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/details/im.nheko.Nheko"
      },
      {
       "name": "aur",
       "url": "https://aur.archlinux.org/packages/nheko-git"
      }
     ],
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/README.md#L15"
    },
    {
     "os": "windows",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/README.md#L58",
     "note": "msix / appinstaller"
    },
    {
     "os": "macos",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "dmg",
       "url": "https://github.com/Nheko-Reborn/nheko/releases"
      }
     ],
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/README.md#L58"
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "flathub",
    "aur",
    "debian",
    "fedora"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "mtxclient",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/CMakeLists.txt",
     "note": "mtxclient (C++), same maintainers"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/CMakeLists.txt#L54",
     "note": "pattern match [libolm]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/src/Cache.cpp#L1837",
     "note": "pattern match [cross_signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/src/Cache.cpp#L638",
     "note": "pattern match [SecretStorage]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/README.md#L54",
     "note": "separate profiles from the command line (-p name)"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/resources/qml/TimelineMetadata.qml#L62",
     "note": "pattern match [m.thread]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/src/Cache.cpp#L79",
     "note": "pattern match [space_child]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/CMakeLists.txt#L641",
     "note": "pattern match [webrtc]"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/src/PowerlevelsEditModels.cpp#L180",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/README.md"
    },
    "replies": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/README.md#L44"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/CMakeLists.txt#L478",
     "note": "pattern match [ImagePack]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/src/PowerlevelsEditModels.cpp#L216",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/src/Cache.cpp#L2594",
     "note": "pattern match [ReadPrivate]"
    },
    "presence": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/README.md#L50"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/src/Cache_p.h#L89",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/CMakeLists.txt#L811",
     "note": "pattern match [/Report]"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/README.md#L25",
     "note": "Weblate (weblate.nheko.im)"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "note": "GPL-3.0; CMake/Qt6 with mtxclient, olm and optional GStreamer for VoIP; about 500 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at b15dcd137e",
      "no AI-attributed commits in 67 commits of the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "nheko.svg",
    "source": "https://github.com/Nheko-Reborn/nheko/blob/b15dcd137e5384e0aabfd35583b5a6eba5f71ed9/resources/nheko.svg",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "README: \"The current implementation [of E2EE] is mostly stable, but it was never audited.\"",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 52,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 12,
    "authors_90d": 1,
    "authors_all": 175,
    "authors_by_quarter": {
     "2023-Q1": 23,
     "2023-Q2": 7,
     "2023-Q3": 7,
     "2023-Q4": 15,
     "2024-Q1": 8,
     "2024-Q2": 12,
     "2024-Q3": 6,
     "2024-Q4": 4,
     "2025-Q1": 4,
     "2025-Q2": 3,
     "2025-Q3": 7,
     "2025-Q4": 2,
     "2026-Q1": 8,
     "2026-Q2": 4,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 52,
    "commits_90d": 1,
    "commits_all": 4831,
    "first_commit": "2017-04-05T23:06:42+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0409,
     "C++": 0.1793,
     "CMake": 0.0054,
     "Python": 0.0045,
     "QML": 0.0564,
     "Shell": 0.0013,
     "TypeScript": 0.7107
    },
    "last_commit": "2026-08-24T19:58:58+00:00",
    "last_tag": "v0.12.1-1",
    "last_tag_date": "2025-08-11T09:30:52+02:00",
    "last_tag_repo": "https://github.com/Nheko-Reborn/nheko",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Batch": 45,
     "C Header": 11485,
     "C++": 50366,
     "C++ Header": 15,
     "CMake": 1510,
     "Makefile": 62,
     "Objective C++": 185,
     "Powershell": 19,
     "Python": 1273,
     "Q#": 77,
     "QML": 15829,
     "Shell": 377,
     "TypeScript": 199593
    },
    "loc_total": 280836,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     2,
     1,
     5,
     2,
     14,
     12,
     4,
     0,
     0,
     1,
     5,
     0,
     0,
     0,
     1,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "nio",
   "name": "Nio",
   "category": "client",
   "kind": "mobile",
   "homepage": "https://nio.chat",
   "summary": "SwiftUI Matrix client for iOS and macOS; the community room says it is not actively maintained.",
   "repos": [
    {
     "url": "https://github.com/niochat/nio",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)",
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "ios",
    "macos"
   ],
   "apps": [
    {
     "os": "ios",
     "tech": "native",
     "min_os": "13.4",
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/niochat/nio/blob/bccc7792f92a605009a3f6069e179300e5176c04/README.md"
    },
    {
     "os": "macos",
     "tech": "native",
     "min_os": "11.0",
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/niochat/nio/blob/bccc7792f92a605009a3f6069e179300e5176c04/README.md"
    }
   ],
   "licence": "MPL-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-ios-sdk",
     "how": "claimed",
     "note": "MatrixSDK (iOS)"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/niochat/nio/blob/bccc7792f92a605009a3f6069e179300e5176c04/NioKit/Models/NIORoom.swift#L49",
     "note": "pattern match [m.new_content]"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/niochat/nio/blob/bccc7792f92a605009a3f6069e179300e5176c04/NioTests/TypedEventsTests.swift#L54",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/niochat/nio/blob/bccc7792f92a605009a3f6069e179300e5176c04/Nio/Conversations/RoomListItemView.swift#L24",
     "note": "pattern match [accessibilityLabel]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI trailers; 1 commit in the last 365 days (HEAD bccc7792f9)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "nio.webp",
    "source": "https://github.com/niochat/nio/blob/bccc7792f92a605009a3f6069e179300e5176c04/Resources/AppIcon/Default/Icon.png",
    "licence": "MPL-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "One commit in the last 365 days (2026-02-16). Community room topic: \"*Not actively maintained*\".",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 14,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 1,
    "commits_90d": 0,
    "commits_all": 589,
    "first_commit": "2019-11-19T14:24:13+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 0.0012,
     "Swift": 0.9975,
     "Xcode Config": 0.0014
    },
    "last_commit": "2026-02-16T12:08:40+00:00",
    "last_tag": "builds/beta/34",
    "last_tag_date": "2021-06-10T23:16:01+02:00",
    "last_tag_repo": "https://github.com/niochat/nio",
    "licence_detected": "MPL-2.0",
    "loc": {
     "JavaScript": 7,
     "Swift": 5900,
     "Xcode Config": 8
    },
    "loc_total": 5915,
    "main_language": "Swift",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "nio-template",
   "name": "nio-template",
   "category": "bot",
   "kind": "template",
   "homepage": "https://github.com/anoadragon453/nio-template",
   "summary": "A starter template for writing Python bots on matrix-nio, with commands, a config file, a SQLite store and E2EE.",
   "repos": [
    {
     "url": "https://github.com/anoadragon453/nio-template",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "bot template (starting point for other bots)",
     "how": "claimed",
     "source": "https://github.com/anoadragon453/nio-template/blob/98bd60aa6c1276bea36600a02714b7e6ed92d79f/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/anoadragon453/nio-template/blob/98bd60aa6c1276bea36600a02714b7e6ed92d79f/setup.py",
     "note": "matrix-nio[e2e]"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/anoadragon453/nio-template/blob/98bd60aa6c1276bea36600a02714b7e6ed92d79f/README.md",
     "note": "\"Participation in end-to-end encrypted rooms\""
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/anoadragon453/nio-template/blob/98bd60aa6c1276bea36600a02714b7e6ed92d79f/README.md"
    },
    "config": {
     "value": "config.yaml and chat commands",
     "how": "claimed",
     "source": "https://github.com/anoadragon453/nio-template/blob/98bd60aa6c1276bea36600a02714b7e6ed92d79f/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/anoadragon453/nio-template/blob/98bd60aa6c1276bea36600a02714b7e6ed92d79f/setup.py"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2024-12-03), counted at 98bd60aa6c12"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "README: \"It is no longer maintained.\" Archived on GitHub. matrix-eno-bot and others are built on it.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 10,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 1,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 93,
    "first_commit": "2019-09-25T12:26:29+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0394,
     "Python": 0.8491,
     "Shell": 0.0957,
     "Systemd": 0.0158
    },
    "last_commit": "2024-12-03T11:35:41+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 35,
     "Python": 754,
     "Shell": 85,
     "Systemd": 14
    },
    "loc_total": 888,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "ollamarama-matrix",
   "name": "ollamarama-matrix",
   "category": "bot",
   "kind": "ai-assistant",
   "homepage": "https://github.com/h1ddenpr0cess20/ollamarama-matrix",
   "summary": "An Ollama-powered chat bot with switchable personalities, tool calling and MCP support, aimed at locally run models.",
   "repos": [
    {
     "url": "https://github.com/h1ddenpr0cess20/ollamarama-matrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, topic matrix-bot, 2026-11-05"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "pypi",
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "AI assistant (role-play personas, tool calling, MCP)",
     "how": "claimed",
     "source": "https://github.com/h1ddenpr0cess20/ollamarama-matrix/blob/23310be63227810d3dd9a4e4c7112996e24f1c75/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/h1ddenpr0cess20/ollamarama-matrix/blob/23310be63227810d3dd9a4e4c7112996e24f1c75/pyproject.toml",
     "note": "matrix-nio[e2e]"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/h1ddenpr0cess20/ollamarama-matrix/blob/23310be63227810d3dd9a4e4c7112996e24f1c75/README.md",
     "note": "\"Works in encrypted Matrix rooms using matrix-nio[e2e]\""
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/h1ddenpr0cess20/ollamarama-matrix/blob/23310be63227810d3dd9a4e4c7112996e24f1c75/README.md",
     "note": "pip or Docker, next to an Ollama server"
    },
    "config": {
     "value": "config.json and chat commands",
     "how": "claimed",
     "source": "https://github.com/h1ddenpr0cess20/ollamarama-matrix/blob/23310be63227810d3dd9a4e4c7112996e24f1c75/README.md"
    },
    "ai_backend": {
     "value": "Ollama (local or remote Ollama chat API)",
     "how": "claimed",
     "source": "https://github.com/h1ddenpr0cess20/ollamarama-matrix/blob/23310be63227810d3dd9a4e4c7112996e24f1c75/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "29 of 62 non-bot commits in the last 365 days carry an AI attribution (46.8%), counted at 23310be63227",
      "tools named in attributions: claude",
      "example: 173aab1426d1 (Co-Authored-By: Claude)",
      "example: bd5920f2a7b6 (Co-Authored-By: Claude)",
      "12 merged pull request(s) since 2025-11-05 whose description explicitly discloses AI help (squash merges can drop this from git history): https://github.com/h1ddenpr0cess20/ollamarama-matrix/pull/83 (Generated with [Claude); https://github.com/h1ddenpr0cess20/ollamarama-matrix/pull/81 (Claude Code); https://github.com/h1ddenpr0cess20/ollamarama-matrix/pull/78 (Generated with [Claude); https://github.com/h1ddenpr0cess20/ollamarama-matrix/pull/79 (Generated with [Claude)",
      "one attributed commit is authored by an account named Claude; the others are Co-Authored-By Claude trailers"
     ]
    },
    "in_product": {
     "value": "core",
     "note": "The product is a chat front-end for models served by Ollama.",
     "source": "https://github.com/h1ddenpr0cess20/ollamarama-matrix/blob/23310be63227810d3dd9a4e4c7112996e24f1c75/README.md"
    }
   },
   "notes": "Archived on GitHub (search API, 2026-11-05) after a last commit on 2026-09-19; the README does not name a successor. The same author has IRC and CLI variants and agent-smithers. CONTRIBUTING.md has no statement on AI-made contributions.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 16,
     "attributed_commits_365d": 30,
     "commits_365d": 42,
     "share_365d": 0.7143,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 30
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 1,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 2,
     "2025-Q4": 2,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 42,
    "commits_90d": 2,
    "commits_all": 150,
    "first_commit": "2023-12-15T05:55:33+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0046,
     "Python": 0.9954
    },
    "last_commit": "2026-09-19T16:41:31+00:00",
    "last_tag": "v1.6.0",
    "last_tag_date": "2026-06-29T22:11:48-04:00",
    "last_tag_repo": "https://github.com/h1ddenpr0cess20/ollamarama-matrix",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 22,
     "Python": 4774
    },
    "loc_total": 4796,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/h1ddenpr0cess20/ollamarama-matrix/blob/23310be63227810d3dd9a4e4c7112996e24f1c75/SECURITY.md",
    "stars": null,
    "status": "slowing",
    "tags_365d": 6,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     5,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     5,
     1,
     0,
     0,
     0,
     0,
     0,
     5,
     0,
     0,
     0,
     1,
     2,
     0,
     13,
     1,
     4,
     1,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "opsdroid",
   "name": "opsdroid",
   "category": "bot",
   "kind": "framework",
   "homepage": "https://opsdroid.dev",
   "summary": "A Python chat-ops bot framework with connectors for many chat networks, Matrix among them, and pluggable skills.",
   "repos": [
    {
     "url": "https://github.com/opsdroid/opsdroid",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "pypi",
    "docker"
   ],
   "funding": [
    "https://opencollective.com/opsdroid"
   ],
   "features": {
    "purpose": {
     "value": "chat-ops bot framework (multi-network; Matrix is one connector)",
     "how": "claimed",
     "source": "https://github.com/opsdroid/opsdroid/blob/4f1ef7c45a2ed26a95fb88b8fdb7e4deb33bde4a/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/opsdroid/opsdroid/blob/4f1ef7c45a2ed26a95fb88b8fdb7e4deb33bde4a/setup.cfg",
     "note": "matrix-nio[e2e] and python-olm as an optional extra"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/opsdroid/opsdroid/blob/4f1ef7c45a2ed26a95fb88b8fdb7e4deb33bde4a/setup.cfg",
     "note": "the Matrix connector installs matrix-nio[e2e] and python-olm (connector_matrix_e2e extra)"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/opsdroid/opsdroid/blob/4f1ef7c45a2ed26a95fb88b8fdb7e4deb33bde4a/README.md",
     "note": "pip or Docker"
    },
    "config": {
     "value": "configuration.yaml with skills and connectors",
     "how": "claimed",
     "source": "https://docs.opsdroid.dev/"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/opsdroid/opsdroid/blob/4f1ef7c45a2ed26a95fb88b8fdb7e4deb33bde4a/setup.cfg",
     "note": "NLU matchers for Dialogflow, LUIS, Rasa NLU, Watson, wit.ai and SAP CAI (intent parsing, not generative models)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 1 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 4f1ef7c45a2e"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "No generative-AI feature found; the framework can route messages through hosted NLU intent parsers (Dialogflow, LUIS, Watson, wit.ai) or Rasa.",
     "source": "https://github.com/opsdroid/opsdroid/blob/4f1ef7c45a2ed26a95fb88b8fdb7e4deb33bde4a/opsdroid/parsers/__init__.py"
    }
   },
   "icon": {
    "file": "opsdroid.webp",
    "source": "https://opsdroid.dev/favicons/apple-touch-icon.png",
    "licence": null,
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "One non-bot commit in the last 365 days (last 2025-11-24); not archived. matrix.org lists it as \"a connector for opsdroid\", i.e. its Matrix connector.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 184,
    "authors_by_quarter": {
     "2023-Q1": 4,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 14,
     "2024-Q3": 2,
     "2024-Q4": 0,
     "2025-Q1": 3,
     "2025-Q2": 3,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 1,
    "commits_90d": 0,
    "commits_all": 798,
    "first_commit": "2016-07-23T20:18:57+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.002,
     "Jinja": 0.0032,
     "Jupyter": 0.0017,
     "Python": 0.9928
    },
    "last_commit": "2025-11-24T17:46:58+00:00",
    "last_tag": "v0.31.0",
    "last_tag_date": "2025-04-30T17:39:26+01:00",
    "last_tag_repo": "https://github.com/opsdroid/opsdroid",
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 8,
     "Dockerfile": 55,
     "Jinja": 85,
     "Jupyter": 45,
     "Python": 26788
    },
    "loc_total": 26981,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "out-of-your-element",
   "name": "Out Of Your Element",
   "category": "bridge",
   "kind": "bot-based bridge",
   "homepage": null,
   "summary": "Matrix-Discord appservice bridge using a Discord bot and webhooks, with threads, stickers, custom emoji and PluralKit support.",
   "repos": [
    {
     "url": "https://gitdab.com/cadence/out-of-your-element",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/discord/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Discord",
    "framework": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitdab.com/cadence/out-of-your-element/src/commit/dd6a5ca8a7908114fcb438174f7f54e69e9388b3/readme.md",
     "note": "own (JavaScript, no build step)"
    },
    "puppeting": {
     "value": "partial",
     "how": "claimed",
     "source": "https://gitdab.com/cadence/out-of-your-element/src/commit/dd6a5ca8a7908114fcb438174f7f54e69e9388b3/readme.md",
     "note": "Discord users as Matrix ghosts; Matrix users via webhooks (no Discord user login)"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://gitdab.com/cadence/out-of-your-element/src/commit/dd6a5ca8a7908114fcb438174f7f54e69e9388b3/readme.md#L45",
     "note": "\"Encrypted messages are not supported\""
    },
    "backfill": {
     "value": "partial",
     "how": "claimed",
     "source": "https://gitdab.com/cadence/out-of-your-element/src/commit/dd6a5ca8a7908114fcb438174f7f54e69e9388b3/readme.md",
     "note": "messages sent during bridge downtime are bridged after restart"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitdab.com/cadence/out-of-your-element/src/commit/dd6a5ca8a7908114fcb438174f7f54e69e9388b3/readme.md",
     "note": "attachments, stickers; large files linked instead of reuploaded"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitdab.com/cadence/out-of-your-element/src/commit/dd6a5ca8a7908114fcb438174f7f54e69e9388b3/readme.md"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitdab.com/cadence/out-of-your-element/src/commit/dd6a5ca8a7908114fcb438174f7f54e69e9388b3/readme.md",
     "note": "guild channels, threads, spaces"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitdab.com/cadence/out-of-your-element/src/commit/dd6a5ca8a7908114fcb438174f7f54e69e9388b3/readme.md",
     "note": "Discord bot token set by the bridge admin"
    },
    "network_tos_risk": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "banned",
     "quote": "Out Of Your Element is 100% organically cultivated ethical hand-fed code. Let's work together to conserve that!",
     "source": "https://gitdab.com/cadence/out-of-your-element/src/commit/dd6a5ca8a7908114fcb438174f7f54e69e9388b3/readme.md#L11-L13"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD dd6a5ca8a790; no AI-attributed commits among 340 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "icon": {
    "file": "out-of-your-element.webp",
    "source": "https://gitdab.com/cadence/out-of-your-element/src/commit/dd6a5ca8a7908114fcb438174f7f54e69e9388b3/docs/img/icon.png",
    "licence": "AGPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "The README's \"AI policy\" section is read here as a request that contributions not be AI-generated (our reading of the wording). Differs from mautrix-discord: no user login, bot plus webhooks, so nothing runs as the user's Discord account.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 336,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 12,
    "authors_90d": 5,
    "authors_all": 15,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 2,
     "2023-Q4": 1,
     "2024-Q1": 3,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 2,
     "2026-Q1": 7,
     "2026-Q2": 2,
     "2026-Q3": 2,
     "2026-Q4": 5
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 53,
    "commits_365d": 336,
    "commits_90d": 85,
    "commits_all": 1068,
    "first_commit": "2022-12-07T00:10:31+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 0.9584,
     "SQL": 0.0242,
     "TypeScript Typings": 0.0173
    },
    "last_commit": "2026-11-04T22:26:36+00:00",
    "last_tag": "v3.8.2",
    "last_tag_date": "2026-11-04T10:23:31+00:00",
    "last_tag_repo": "https://gitdab.com/cadence/out-of-your-element",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "JavaScript": 36454,
     "SQL": 920,
     "Shell": 2,
     "TypeScript Typings": 659
    },
    "loc_total": 38035,
    "main_language": "JavaScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 10,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     9,
     7,
     2,
     10,
     3,
     7,
     3,
     0,
     3,
     17,
     11,
     9,
     22,
     18,
     15,
     3,
     4,
     9,
     15,
     18,
     7,
     0,
     0,
     0,
     1,
     0,
     4,
     1,
     11,
     9,
     2,
     3,
     2,
     0,
     2,
     8,
     4,
     5,
     7,
     2,
     10,
     1,
     0,
     4,
     10,
     1,
     1,
     6,
     8,
     11,
     17,
     14
    ]
   }
  },
  {
   "slug": "pallium",
   "name": "Pallium",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A Go implementation of a Matrix homeserver.",
   "repos": [
    {
     "url": "https://github.com/KoFish/pallium",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Go",
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "no commits since 2015-01-15; not cloned"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "matrix.org labels it \"Obsolete\". Last push 2015-01-15 (GitHub API); not cloned or MSC-scanned.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 58,
    "first_commit": "2014-11-03T23:20:22+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.9267,
     "SQL": 0.0693,
     "Shell": 0.004
    },
    "last_commit": "2015-01-15T20:04:43+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "Go": 2315,
     "SQL": 173,
     "Shell": 10
    },
    "loc_total": 2498,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "palpo",
   "name": "Palpo",
   "category": "server",
   "kind": "homeserver",
   "homepage": "https://palpo.im",
   "summary": "A Matrix homeserver in Rust built on the Salvo web framework and PostgreSQL.",
   "repos": [
    {
     "url": "https://github.com/palpo-im/palpo",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search \"matrix homeserver\""
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "language": "Rust",
    "database": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/README.md#L50",
     "note": "PostgreSQL"
    },
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L254",
     "versions": [
      "r0.5.0",
      "r0.6.0",
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.6",
      "v1.7",
      "v1.8",
      "v1.9",
      "v1.10",
      "v1.11",
      "v1.12"
     ]
    },
    "appservices": {
     "value": "yes",
     "how": "claimed"
    },
    "admin_api": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/CONTRIBUTING.md#L72"
    },
    "oidc_delegation": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/discovery/auth_metadata.rs#L48",
     "note": "MSC3861: stable"
    },
    "native_sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L83",
     "note": "MSC4186: unstable"
    },
    "workers_scaling": {
     "value": "not-found"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L277",
     "note": "MSC3916: stable"
    },
    "msc": [
     {
      "msc": 1659,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/state/room_version.rs#L14",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 1763,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L239",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 1767,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L31",
      "note": "unstable prefix in code"
     },
     {
      "msc": 1884,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/state/room_version.rs#L16",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2241,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/events/key/verification.rs#L6",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2246,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/media.rs#L39",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2285,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L265",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2409,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/appservice/event.rs#L100",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2432,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/room/alias.rs#L18",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2444,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/federation/peek.rs#L7",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2448,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L33",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2545,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/events/image_pack.rs#L1",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2654,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L34",
      "note": "unstable prefix in code"
     },
     {
      "msc": 2659,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/appservice/ping.rs#L23",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2666,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L266",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2702,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/utils/content_disposition.rs#L5",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2747,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L36",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2753,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/sync_events/v3.rs#L191",
      "note": "unstable prefix in code"
     },
     {
      "msc": 2828,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/identifiers-validation/src/user_id.rs#L19",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2836,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L271",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2858,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client/session.rs#L1423",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2867,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L37",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2870,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L38",
      "note": "unstable prefix in code"
     },
     {
      "msc": 2918,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/session.rs#L44",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2946,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L272",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2965,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L39",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2967,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L40",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3026,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L273",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3030,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/room.rs#L270",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3061,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L42",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3202,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L43",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3230,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L44",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3231,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/register.rs#L188",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3245,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L45",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3246,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L25",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3266,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L51",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3381,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L52",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3391,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/data/src/user/data.rs#L298",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3401,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L53",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3417,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L54",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3488,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L26",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3489,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L56",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3551,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L57",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3552,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L58",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3553,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L27",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3554,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L60",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3575,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L276",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3618,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L61",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3672,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/events/beacon.rs#L16",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3723,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L62",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3787,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/state/event_auth/room_member.rs#L278",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3814,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L63",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3827,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L274",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3843,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L64",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3856,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/room/thread.rs#L21",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3861,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/discovery/auth_metadata.rs#L48",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3882,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/session.rs#L768",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3884,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/sync_events/v5.rs#L845",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3885,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/sync_events/v5.rs#L788",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3916,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L277",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3927,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L50",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3930,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L66",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3931,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L67",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3932,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L68",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3952,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L275",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3954,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L28",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3955,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L29",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3956,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L57",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3960,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/sync_events/v5.rs#L967",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3983,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L72",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4075,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L73",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4095,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L74",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4108,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L75",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4121,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L76",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4125,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L77",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4133,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L279",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4140,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L214",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4143,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L79",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4155,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/error/kind_serde.rs#L480",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4166,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client/voip.rs#L31",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4171,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L80",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4175,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L281",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4180,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L278",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4186,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L83",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4190,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/appservice.rs#L108",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4191,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L81",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4195,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L82",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4203,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L84",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4230,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L85",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4259,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/sync_v5/profiles.rs#L133",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4262,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L313",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4267,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/config/server.rs#L360",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4268,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L88",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4274,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L89",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4278,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L90",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4284,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/federation/knock.rs#L152",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4293,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L91",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4306,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L93",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4308,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L94",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4310,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L95",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4311,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/federation/membership.rs#L189",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4319,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L96",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4323,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L283",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4334,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L97",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4354,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L284",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4359,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L99",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4362,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core-macros/src/events/event_enum.rs#L52",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4363,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L100",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4380,
      "state": "stable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L285",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4383,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L286",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4388,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/discovery/rendezvous.rs#L1",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4406,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/error/kind.rs#L253",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4439,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/src/client/discovery/support.rs#L81",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4466,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L104",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4484,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L298",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4494,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L290",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4495,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L304",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4532,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L306",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4540,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/core/Cargo.toml#L109",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4559,
      "state": "unstable",
      "source": "https://github.com/palpo-im/palpo/blob/d086e4502bb7f163d0a1bc277ec237aa93a85ccb/crates/server/src/routing/client.rs#L308",
      "note": "advertised in unstable_features"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "128 of 574 non-bot commits in the last 365 days (22.3 %) carry an AI co-author trailer or similar",
      "https://github.com/palpo-im/palpo/commit/7380829f65a59faa8fd5ca7f15545bbc8932c689",
      "https://github.com/palpo-im/palpo/commit/1032153ebd80c664b25135b7716fa72fcc92fe0f",
      "https://github.com/palpo-im/palpo/commit/382114a66d6b25697d5b6b5fa0ff62714b969358"
     ],
     "checked_at": "d086e4502bb7f163d0a1bc277ec237aa93a85ccb"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "palpo.webp",
    "source": "https://palpo.im/palpo.png",
    "licence": null,
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Maturity is our reading (not on matrix.org). An older copy lives at github.com/palpo-matrix-server/palpo.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 128,
     "commits_365d": 513,
     "share_365d": 0.2495,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 127,
      "copilot": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 12,
    "authors_90d": 7,
    "authors_all": 13,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 2,
     "2024-Q4": 2,
     "2025-Q1": 2,
     "2025-Q2": 1,
     "2025-Q3": 2,
     "2025-Q4": 3,
     "2026-Q1": 3,
     "2026-Q2": 4,
     "2026-Q3": 7,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 86,
    "commits_365d": 513,
    "commits_90d": 219,
    "commits_all": 909,
    "first_commit": "2024-08-08T04:46:51+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 0.0039,
     "Python": 0.0061,
     "Rust": 0.9779,
     "SQL": 0.0099,
     "Shell": 0.0022
    },
    "last_commit": "2026-11-04T13:06:21+00:00",
    "last_tag": "v0.5.0",
    "last_tag_date": "2026-11-04T07:05:37+08:00",
    "last_tag_repo": "https://github.com/palpo-im/palpo",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Go": 629,
     "Python": 982,
     "Rust": 158329,
     "SQL": 1608,
     "Shell": 363
    },
    "loc_total": 161911,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 6,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     10,
     1,
     9,
     18,
     5,
     2,
     6,
     3,
     4,
     2,
     1,
     5,
     7,
     20,
     0,
     5,
     2,
     8,
     2,
     0,
     25,
     21,
     3,
     10,
     35,
     4,
     3,
     6,
     1,
     9,
     6,
     7,
     11,
     0,
     6,
     20,
     0,
     9,
     6,
     7,
     0,
     1,
     6,
     4,
     0,
     7,
     23,
     103,
     5,
     0,
     10,
     55
    ]
   }
  },
  {
   "slug": "pantalaimon",
   "name": "Pantalaimon",
   "category": "tool",
   "kind": "e2ee-proxy",
   "homepage": "https://github.com/matrix-org/pantalaimon",
   "summary": "An E2EE-aware reverse proxy that encrypts and decrypts on behalf of clients and bots without encryption support; archived.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/pantalaimon",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "E2EE proxy for clients and bots without encryption",
     "how": "claimed",
     "source": "https://github.com/matrix-org/pantalaimon/blob/e4a14b0a9b876abb1913b953457de15a9fc06d32/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/matrix-org/pantalaimon/blob/e4a14b0a9b876abb1913b953457de15a9fc06d32/setup.py",
     "note": "matrix-nio[e2e], libolm"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/pantalaimon/blob/e4a14b0a9b876abb1913b953457de15a9fc06d32/README.md",
     "note": "its whole purpose; uses libolm"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/matrix-org/pantalaimon/blob/e4a14b0a9b876abb1913b953457de15a9fc06d32/README.md",
     "note": "pip, with an optional D-Bus UI"
    },
    "config": {
     "value": "config file (pantalaimon.conf)",
     "how": "claimed",
     "source": "https://github.com/matrix-org/pantalaimon/blob/e4a14b0a9b876abb1913b953457de15a9fc06d32/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/matrix-org/pantalaimon/blob/e4a14b0a9b876abb1913b953457de15a9fc06d32/setup.py"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2025-06-03), counted at e4a14b0a9b87"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Archived on GitHub; last commit 2025-06-03.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 27,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 3,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 3,
     "2025-Q1": 0,
     "2025-Q2": 2,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 496,
    "first_commit": "2019-03-21T10:05:12+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0032,
     "Makefile": 0.0025,
     "Python": 0.9933,
     "Systemd": 0.0011
    },
    "last_commit": "2025-06-04T01:01:37+00:00",
    "last_tag": "0.10.6",
    "last_tag_date": "2025-04-07T13:50:52-07:00",
    "last_tag_repo": "https://github.com/matrix-org/pantalaimon",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 18,
     "Makefile": 14,
     "Python": 5621,
     "Systemd": 6
    },
    "loc_total": 5659,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "parula",
   "name": "Parula",
   "category": "client",
   "kind": "desktop, mobile",
   "homepage": "https://parula.app",
   "summary": "Local-first suite (mail, chat, video calls, calendar, contacts, files) in TypeScript on Electron and Capacitor, with Matrix chat among its protocols.",
   "repos": [
    {
     "url": "https://github.com/parula-app/parula",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "linux",
    "windows",
    "macos",
    "android",
    "ios"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "electron",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/README.md"
    },
    {
     "os": "windows",
     "tech": "electron",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/README.md"
    },
    {
     "os": "macos",
     "tech": "electron",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/README.md"
    },
    {
     "os": "android",
     "tech": "webview",
     "min_os": "6.0",
     "status": "beta",
     "stores": [],
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/README.md"
    },
    {
     "os": "ios",
     "tech": "webview",
     "min_os": "14.0",
     "status": "beta",
     "stores": [],
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/README.md"
    }
   ],
   "licence": "EUPL-1.2",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/package.json"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/vite.config.ts#L47",
     "note": "pattern match [matrix-sdk-crypto]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/frontend/Setup/Chat/MatrixVerify.svelte#L66",
     "note": "pattern match [CrossSigning]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/logic/Chat/Signal/Encryption/MessageBackupCipher.ts#L40",
     "note": "pattern match [Key(backup]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/logic/Auth/OAuth2.ts#L3",
     "note": "pattern match [OAuth2Server]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/logic/Meet/Participant.ts#L22",
     "note": "pattern match [RTCPeerConnection]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/package.json#L53",
     "note": "pattern match [livekit]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/logic/Chat/Signal/Connection/MessageBackupImport.ts#L340",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/logic/Chat/Matrix/MatrixChatMessage.ts#L79",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/frontend/Mail/Thread/ThreadNode.ts#L36",
     "note": "pattern match [inReplyTo]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/logic/Chat/Signal/Connection/MessageBackupImport.ts#L344",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/logic/Calendar/JMAP/TJSCalendar.ts#L208",
     "note": "pattern match [geo:]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/logic/Chat/Signal/Proto/signalService.ts#L33",
     "note": "pattern match [VoiceMessage]"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/logic/Chat/Signal/Proto/groups.ts#L101",
     "note": "pattern match [link preview]"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/logic/Mail/Encryption/PGP/PGPPrivateKey.ts#L44",
     "note": "pattern match [readPrivate]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/logic/Meet/Signal/signalingProto.ts#L237",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/frontend/Chat/Emoji/emojis.json#L1389",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/lib/asn1/api.ts#L2",
     "note": "pattern match [/report]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/svelte.config.js#L15",
     "note": "pattern match [a11y]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/package.json#L30",
     "note": "@sentry/svelte dependency; whether it is opt-in was not checked"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found",
     "note": "EUPL-1.2 only, unless a subdirectory or file says otherwise (LICENSE at https://github.com/parula-app/parula/blob/76dbee21056a4b714ebad12728e19591757d48e1/LICENSE)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (1846 non-bot commits in the last 365 days) at 5fb283b67f"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "parula.webp",
    "source": "https://github.com/parula-app/parula/blob/5fb283b67f8a079f91b0fa3b2bd39184d0580267/app/frontend/asset/icon/general/logo-parula.svg",
    "licence": "EUPL-1.2",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Not a Matrix-first client; Matrix is one item in its feature list (README line 181). Licence: EUPL 1.2 only, from the LICENSE file's prose header (checked 2026-11-05).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1846,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 4,
    "authors_90d": 4,
    "authors_all": 13,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 3,
     "2024-Q1": 3,
     "2024-Q2": 4,
     "2024-Q3": 11,
     "2024-Q4": 3,
     "2025-Q1": 4,
     "2025-Q2": 3,
     "2025-Q3": 3,
     "2025-Q4": 3,
     "2026-Q1": 3,
     "2026-Q2": 3,
     "2026-Q3": 3,
     "2026-Q4": 3
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 160,
    "commits_365d": 1846,
    "commits_90d": 660,
    "commits_all": 5417,
    "first_commit": "2021-01-19T22:42:43+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0047,
     "JavaScript": 0.0156,
     "Svelte": 0.403,
     "TypeScript": 0.5734
    },
    "last_commit": "2026-11-04T19:10:53+00:00",
    "last_tag": "v0.9.41",
    "last_tag_date": "2026-10-24T07:23:09+02:00",
    "last_tag_repo": "https://github.com/parula-app/parula",
    "licence_detected": "EUPL-1.2",
    "loc": {
     "Batch": 73,
     "CSS": 966,
     "CloudFormation (YAML)": 92,
     "Gradle": 185,
     "HTML": 36,
     "Java": 24,
     "JavaScript": 3191,
     "Kotlin": 3,
     "Prolog": 18,
     "Shell": 168,
     "Svelte": 82579,
     "Swift": 88,
     "TypeScript": 117497,
     "TypeScript Typings": 7
    },
    "loc_total": 204927,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 35,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     29,
     22,
     21,
     10,
     29,
     27,
     13,
     1,
     13,
     14,
     28,
     44,
     5,
     45,
     15,
     28,
     40,
     5,
     58,
     33,
     24,
     17,
     32,
     32,
     23,
     5,
     9,
     36,
     9,
     53,
     36,
     82,
     42,
     55,
     19,
     53,
     122,
     1,
     48,
     14,
     63,
     106,
     160,
     128,
     24,
     1,
     8,
     0,
     22,
     76,
     46,
     16
    ]
   }
  },
  {
   "slug": "pickle",
   "name": "Pickle",
   "category": "sdk",
   "kind": "TypeScript (Go / WebAssembly core)",
   "homepage": "https://github.com/beeper/pickle",
   "summary": "Beeper's TypeScript Matrix SDK built on mautrix-go and goolm compiled to WebAssembly, with a bridge package and adapters.",
   "repos": [
    {
     "url": "https://github.com/beeper/pickle",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "Lane 6 notes"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "web",
    "server"
   ],
   "licence": "MPL-2.0",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/beeper/pickle/blob/b662c4ad6eb86987bb65084615d1d0d0728e56fd/README.md",
     "note": "\"E2EE works out of the box\", goolm (mautrix-go's own Olm) in WebAssembly"
    },
    "crypto": "goolm (via mautrix-go)",
    "sliding_sync": {
     "value": "not-found",
     "how": "code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code"
    },
    "threads": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/beeper/pickle/blob/b662c4ad6eb86987bb65084615d1d0d0728e56fd/README.md"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/pickle/blob/b662c4ad6eb86987bb65084615d1d0d0728e56fd/packages/pi/src/spaces.ts"
    },
    "appservice": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/pickle/blob/b662c4ad6eb86987bb65084615d1d0d0728e56fd/packages/bridge/README.md"
    },
    "purpose": {
     "value": "client, bot, bridge",
     "how": "claimed",
     "source": "https://github.com/beeper/pickle"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "1 of 109 non-bot commits in the last 365 days carry an AI attribution (0.9 %), counted at b662c4ad6eb8",
      "https://github.com/beeper/pickle/commit/1de46b6d5e (claude)"
     ]
    },
    "in_product": {
     "value": "optional",
     "note": "Not an AI feature of its own, but it supports streaming AI responses (\"Streaming AI responses (debounced edits everywhere; native on Beeper)\") and ships an AI SDK adapter.",
     "source": "https://github.com/beeper/pickle/blob/b662c4ad6eb86987bb65084615d1d0d0728e56fd/README.md#L81"
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-05-24, 109 non-bot commits in the last year and 0 authors in the last 90 days by our count at b662c4ad6eb8 (the collector recounts). Licence per package: pickle MPL-2.0, packages/chat-adapter MIT.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "pipe2matrix",
   "name": "pipe2matrix",
   "category": "tool",
   "kind": "cli",
   "homepage": "https://gitlab.com/anton.molyboha/pipe2matrix",
   "summary": "A netcat-like tool that connects a program's standard input and output to a Matrix room.",
   "repos": [
    {
     "url": "https://gitlab.com/anton.molyboha/pipe2matrix",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "pipe a program's stdin/stdout into a room",
     "how": "claimed",
     "source": "https://gitlab.com/anton.molyboha/pipe2matrix/-/blob/80fa6d9a6ee04119dd4163f047876fbbfd809a4f/README.md"
    },
    "framework": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://gitlab.com/anton.molyboha/pipe2matrix/-/blob/80fa6d9a6ee04119dd4163f047876fbbfd809a4f/pyproject.toml"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://gitlab.com/anton.molyboha/pipe2matrix/-/blob/80fa6d9a6ee04119dd4163f047876fbbfd809a4f/README.md",
     "note": "\"End-to-end encryption is currently unsupported.\""
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://gitlab.com/anton.molyboha/pipe2matrix/-/blob/80fa6d9a6ee04119dd4163f047876fbbfd809a4f/README.md",
     "note": "CLI"
    },
    "config": {
     "value": "command-line arguments",
     "how": "claimed",
     "source": "https://gitlab.com/anton.molyboha/pipe2matrix/-/blob/80fa6d9a6ee04119dd4163f047876fbbfd809a4f/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://gitlab.com/anton.molyboha/pipe2matrix/-/blob/80fa6d9a6ee04119dd4163f047876fbbfd809a4f/pyproject.toml"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no non-bot commits in the last 365 days (last commit 2024-03-17), counted at 80fa6d9a6ee0"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Last commit 2024-03-17; maturity is our reading. Whether it is on PyPI was not checked.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 64,
    "first_commit": "2020-12-31T18:15:38+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Python": 1
    },
    "last_commit": "2024-03-17T13:19:08+00:00",
    "last_tag": "0.0.3",
    "last_tag_date": "2024-03-16T23:56:36+01:00",
    "last_tag_repo": "https://gitlab.com/anton.molyboha/pipe2matrix",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Python": 973
    },
    "loc_total": 973,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "plasma",
   "name": "plasma",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A Matrix homeserver built on Elixir and the Erlang VM.",
   "repos": [
    {
     "url": "https://gitlab.com/plasmahs/plasma",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Servers/Hosting)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": null,
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Elixir",
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "not checked: no clone"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Found in the community space (Servers/Hosting). GitLab API last_activity_at 2022-04-24; not cloned.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 46,
    "first_commit": "2022-01-08T17:32:03+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Elixir": 1
    },
    "last_commit": "2022-04-24T13:44:10+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "Elixir": 2443
    },
    "loc_total": 2443,
    "main_language": "Elixir",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "policyserv",
   "name": "policyserv",
   "category": "server",
   "kind": "policy server (MSC4284)",
   "homepage": null,
   "summary": "A policy server implementation (MSC4284) that checks events for spam before they reach a room, by the Matrix.org Foundation.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/policyserv",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (top level)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "language": "Go",
    "database": "PostgreSQL",
    "msc": [
     {
      "msc": 4284,
      "state": "stable",
      "source": "https://github.com/matrix-org/policyserv/blob/6adfeb9838351de962e83f1bc484709c06a8bb87/dev/demo/sanity_check.sh#L40",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4387,
      "state": "unstable",
      "source": "https://github.com/matrix-org/policyserv/blob/6adfeb9838351de962e83f1bc484709c06a8bb87/api/errors.go#L31",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4456,
      "state": "unstable",
      "source": "https://github.com/matrix-org/policyserv/blob/6adfeb9838351de962e83f1bc484709c06a8bb87/harms/ids_msc4456.go#L9",
      "note": "unstable prefix in code"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "1 of 298 non-bot commits in the last 365 days (0.3 %) carry an AI co-author trailer or similar",
      "https://github.com/matrix-org/policyserv/commit/de7a1c554c20492a59d4af9e55aae977f0c5edb4"
     ],
     "note": "attributed share is below the 1 % threshold; marked occasional because attributed commits exist",
     "checked_at": "6adfeb9838351de962e83f1bc484709c06a8bb87"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Maturity is our reading. A matrix-org repo: whether Element counts as its core contributor, which would bring it under Element's AI policy in element-meta CONTRIBUTING.md, was not established.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 1,
     "commits_365d": 162,
     "share_365d": 0.0062,
     "suggested_dev_usage": "occasional",
     "tools": {
      "junie": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 4,
    "authors_90d": 1,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 3,
     "2026-Q2": 2,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 6,
    "commits_365d": 162,
    "commits_90d": 8,
    "commits_all": 162,
    "first_commit": "2025-12-10T17:25:33+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0028,
     "Go": 0.98,
     "Makefile": 0.0018,
     "SQL": 0.0102,
     "Shell": 0.0052
    },
    "last_commit": "2026-10-15T18:12:24+00:00",
    "last_tag": "v1.8.0",
    "last_tag_date": "2026-10-15T12:26:56-06:00",
    "last_tag_repo": "https://github.com/matrix-org/policyserv",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 47,
     "Go": 16430,
     "Makefile": 30,
     "SQL": 171,
     "Shell": 87
    },
    "loc_total": 16765,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 10,
    "telemetry_sdks": [
     "Segment"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     3,
     6,
     17,
     3,
     12,
     0,
     0,
     1,
     1,
     18,
     6,
     0,
     4,
     13,
     4,
     10,
     8,
     0,
     1,
     3,
     0,
     0,
     0,
     6,
     7,
     5,
     4,
     6,
     13,
     1,
     0,
     1,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     1,
     0,
     0,
     2,
     4,
     0,
     0
    ]
   }
  },
  {
   "slug": "polycule",
   "name": "polycule",
   "category": "client",
   "kind": "mobile, desktop, web",
   "homepage": "https://polycule.im",
   "summary": "Keyboard-optimised Flutter Matrix client for Android, Linux and web.",
   "repos": [
    {
     "url": "https://gitlab.com/polycule_client/polycule",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/polycule/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "android",
    "linux",
    "web"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "flutter",
     "min_os": "6.0",
     "status": "beta",
     "stores": [
      {
       "name": "f-droid",
       "url": "https://f-droid.org/packages/business.braid.polycule"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/polycule.md",
     "note": "minSdk 23"
    },
    {
     "os": "linux",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/polycule.md"
    },
    {
     "os": "web",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/polycule.md",
     "note": "polycule.im/web"
    }
   ],
   "licence": "EUPL-1.2",
   "fork_of": null,
   "distribution": [
    "f-droid"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-dart-sdk",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/pubspec.yaml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/.gitlab-ci.yml#L523",
     "note": "pattern match [vodozemac]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/lib/src/pages/account_settings/components/ssss_available_tile.dart#L45",
     "note": "pattern match [crossSigning]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/integration_test/flows/login.dart#L98",
     "note": "pattern match [keyBackup]"
    },
    "sliding_sync": {
     "value": "no",
     "how": "claimed",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/README.md#L94"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/README.md#L85",
     "note": "native OIDC"
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/polycule.md"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/lib/src/router/extensions/room_available_shell_route.dart#L61",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/linux/business.braid.polycule.metainfo.xml#L93",
     "note": "pattern match [element.call]"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/lib/src/pages/room/components/compose/compose_scope.dart#L116",
     "note": "pattern match [inReplyTo]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/lib/src/utils/matrix/client_util.dart#L40",
     "note": "pattern match [im.ponies]"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/pubspec.yaml#L75",
     "note": "pattern match [unifiedpush]"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/lib/src/utils/matrix/polycule_command_extension.dart#L9",
     "note": "pattern match [upgraderoom]"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/lib/src/pages/room/room_view.dart#L68",
     "note": "pattern match [Semantics(]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "not-found",
     "how": "code",
     "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/pubspec.yaml#L70",
     "note": "sentry Dart package is a dependency; whether reporting is opt-in was not checked"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "EUPL-1.2; Flutter, about 830 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (13 non-bot commits in the last 365 days) at 4b294296e4"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "polycule.webp",
    "source": "https://gitlab.com/polycule_client/polycule/-/blob/4b294296e4d62215f52da8831a3402f51fb1b9a7/fastlane/metadata/android/en-US/images/icon.png",
    "licence": "EUPL-1.2",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 2,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 0,
    "authors_all": 6,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 4,
     "2025-Q2": 2,
     "2025-Q3": 3,
     "2025-Q4": 3,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 2,
    "commits_90d": 0,
    "commits_all": 491,
    "first_commit": "2024-01-16T19:42:50+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0046,
     "C++": 0.0234,
     "CMake": 0.0168,
     "CSS": 0.0023,
     "Dart": 0.9171,
     "Dockerfile": 0.0012,
     "HTML": 0.0012,
     "Kotlin": 0.005,
     "Nix": 0.0024,
     "Shell": 0.0049,
     "Swift": 0.0169,
     "Windows Resource-Definition Script": 0.0031,
     "Xcode Config": 0.0012
    },
    "last_commit": "2025-11-14T18:42:07+00:00",
    "last_tag": "v0.3.4",
    "last_tag_date": "2025-08-14T15:15:14+02:00",
    "last_tag_repo": "https://gitlab.com/polycule_client/polycule",
    "licence_detected": "EUPL-1.2",
    "loc": {
     "C Header": 103,
     "C++": 528,
     "CMake": 380,
     "CSS": 51,
     "Dart": 20731,
     "Dockerfile": 28,
     "HTML": 26,
     "Kotlin": 113,
     "Nix": 55,
     "Shell": 110,
     "Swift": 381,
     "Systemd": 3,
     "Windows Resource-Definition Script": 69,
     "Xcode Config": 28
    },
    "loc_total": 22606,
    "main_language": "Dart",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "polyjuice-client",
   "name": "Polyjuice Client",
   "category": "sdk",
   "kind": "Elixir",
   "homepage": "https://gitlab.com/polyjuice/polyjuice_client",
   "summary": "A Matrix client library for Elixir, on Hex.pm.",
   "repos": [
    {
     "url": "https://gitlab.com/polyjuice/polyjuice_client",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "hex"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://gitlab.com/polyjuice/polyjuice_client"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 4 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 59f3c6aa5b18"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "icon": {
    "file": "polyjuice-client.webp",
    "source": "https://gitlab.com/uploads/-/system/group/avatar/12703366/polyjuice.png?v=1639769021",
    "licence": null,
    "note": "the polyjuice group's avatar on gitlab.com",
    "checked": "2026-11-05"
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-10-29, 4 non-bot commits in the last year and 1 authors in the last 90 days by our count at 59f3c6aa5b18 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "pony-house",
   "name": "Pony House",
   "category": "client",
   "kind": "web, desktop",
   "homepage": null,
   "summary": "A customisable Matrix \"superapp\" client, a fork of Cinny, with web and desktop builds.",
   "repos": [
    {
     "url": "https://github.com/Pony-House/Client",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "notes/02.md (GitHub search)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "web",
    "linux"
   ],
   "licence": "AGPL-3.0",
   "fork_of": "cinny",
   "distribution": [
    "aur"
   ],
   "funding": [],
   "features": {},
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no commits since 2025-11-05 on the default branch (dev, last commit 2025-03-22); no agent files"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "pony-house.webp",
    "source": "https://github.com/Pony-House/Client/blob/bcb43f6e0a18f03e40dc058331a2b014ec367b0a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
    "licence": "AGPL-3.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Added in the integration pass from lane 2's notes; README only. Fork of Cinny: \"Pony House started on a Cinny fork from the commit below\" (README.md#L202-L206 at bcb43f6e, Cinny 3969c950). Last commit on the default branch (dev) 2025-03-22.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 2,
     "2024-Q3": 2,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 3625,
    "first_commit": "2023-06-16T01:43:57+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.001,
     "Gradle": 0.0019,
     "HTML": 0.0019,
     "JSON5": 0.0012,
     "JSX": 0.5018,
     "JavaScript": 0.3539,
     "Sass": 0.1257,
     "Shell": 0.0015,
     "TypeScript": 0.0101
    },
    "last_commit": "2025-03-15T22:46:09+00:00",
    "last_tag": "1.5.0",
    "last_tag_date": "2024-09-12T13:54:49-03:00",
    "last_tag_repo": "https://github.com/Pony-House/Client",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 71,
     "Dockerfile": 11,
     "Gradle": 134,
     "HTML": 133,
     "JSON5": 81,
     "JSX": 34523,
     "Java": 27,
     "JavaScript": 24349,
     "Prolog": 18,
     "Sass": 8647,
     "Shell": 104,
     "TypeScript": 695,
     "TypeScript Typings": 11
    },
    "loc_total": 68804,
    "main_language": "JSX",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/Pony-House/Client/blob/bcb43f6e0a18f03e40dc058331a2b014ec367b0a/.github/SECURITY.md",
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "posix-shell-matrix-sdk",
   "name": "POSIX Shell Matrix SDK",
   "category": "sdk",
   "kind": "POSIX shell",
   "homepage": "https://gitlab.com/matrix-mellifluousness/sdk",
   "summary": "Wrappers around curl and jq for shell scripts that use the Matrix client-server API.",
   "repos": [
    {
     "url": "https://gitlab.com/matrix-mellifluousness/sdk",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "linux"
   ],
   "licence": "MIT-Modern-Variant",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at ec678e2a9a70"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"POSIX Shell Matrix SDK\" (Beta, POSIX Shell, maintainer: wj25czxj47bu6q). Last non-bot commit 2023-11-14, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at ec678e2a9a70 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "postmoogle",
   "name": "Postmoogle",
   "category": "bridge",
   "kind": "email bridge",
   "homepage": null,
   "summary": "Email bridge that is itself an SMTP server: one Matrix room is one mailbox, for receiving and sending email.",
   "repos": [
    {
     "url": "https://github.com/etkecc/postmoogle",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/bridges/email/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [
    "https://github.com/sponsors/etkecc"
   ],
   "features": {
    "network": "Email (SMTP)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/etkecc/postmoogle/blob/b80fce145115061f4f0181d0b574b6699ef8a04e/go.mod",
     "note": "own bot (Go), not an appservice"
    },
    "puppeting": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/etkecc/postmoogle/blob/b80fce145115061f4f0181d0b574b6699ef8a04e/README.md",
     "note": "a bot account per instance"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/postmoogle/blob/b80fce145115061f4f0181d0b574b6699ef8a04e/README.md#L87",
     "note": "works in encrypted rooms (crypto store)"
    },
    "backfill": {
     "value": "not-found"
    },
    "media": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/postmoogle/blob/b80fce145115061f4f0181d0b574b6699ef8a04e/README.md",
     "note": "attachments both ways"
    },
    "reactions_edits": {
     "value": "not-found"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/postmoogle/blob/b80fce145115061f4f0181d0b574b6699ef8a04e/README.md",
     "note": "mailbox per room"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/etkecc/postmoogle/blob/b80fce145115061f4f0181d0b574b6699ef8a04e/README.md",
     "note": "the bridge acts as the mail server; rooms claim mailboxes with !pm commands"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "it runs its own SMTP server, so no third-party account is involved"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD b80fce145115; no AI-attributed commits among 22 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "matrix.org gives the licence as GPL-3.0; the repo LICENSE.md is the GNU AGPL v3 (no -only/-or-later marker found). Agent files under vendor/ belong to vendored dependencies and are not counted.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 21,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 2,
    "authors_all": 7,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 2,
     "2023-Q3": 2,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 2,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 2,
     "2026-Q2": 1,
     "2026-Q3": 2,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 1,
    "commits_365d": 21,
    "commits_90d": 6,
    "commits_all": 401,
    "first_commit": "2022-08-21T15:41:35+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0011,
     "Go": 0.9911,
     "HTML": 0.0072
    },
    "last_commit": "2026-10-24T07:00:54+00:00",
    "last_tag": "v0.9.31",
    "last_tag_date": "2026-04-25T16:18:34+01:00",
    "last_tag_repo": "https://github.com/etkecc/postmoogle",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "BASH": 6,
     "Dockerfile": 10,
     "Go": 9403,
     "HTML": 68
    },
    "loc_total": 9487,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 4,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     1,
     0,
     2,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     2,
     0,
     0,
     1,
     1,
     0,
     0,
     1,
     1,
     2,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     1,
     1,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     1,
     0,
     0,
     3,
     0,
     0,
     0,
     1,
     0
    ]
   }
  },
  {
   "slug": "python-matrix-bot-api",
   "name": "python-matrix-bot-api",
   "category": "sdk",
   "kind": "Python",
   "homepage": "https://github.com/shawnanastasio/python-matrix-bot-api",
   "summary": "A small Python bot API on the old matrix-python-sdk.",
   "repos": [
    {
     "url": "https://github.com/shawnanastasio/python-matrix-bot-api",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "Lane 5 notes"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "bot",
     "how": "claimed",
     "source": "https://github.com/shawnanastasio/python-matrix-bot-api"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 1a2d2cd5bb87"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2020-11-13, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 1a2d2cd5bb87 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "quadrix",
   "name": "Quadrix",
   "category": "client",
   "kind": "web, desktop, mobile",
   "homepage": "https://quadrix.chat",
   "summary": "React Native / Electron Matrix client for all major platforms; matrix.org marks it obsolete.",
   "repos": [
    {
     "url": "https://github.com/alariej/quadrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/quadrix/",
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux",
    "android",
    "ios"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "react-native",
     "min_os": "6.0",
     "status": "discontinued",
     "stores": [
      {
       "name": "google-play",
       "url": "https://play.google.com/store/apps/details?id=chat.quadrix.android"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/quadrix.md"
    },
    {
     "os": "ios",
     "tech": "react-native",
     "min_os": "12.4",
     "status": "discontinued",
     "stores": [
      {
       "name": "app-store",
       "url": "https://apps.apple.com/app/id1576110553"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/quadrix.md"
    },
    {
     "os": "windows",
     "tech": "electron",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "microsoft-store",
       "url": "https://apps.microsoft.com/store/detail/quadrixchat/9NPZ93X49V00"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/quadrix.md"
    },
    {
     "os": "macos",
     "tech": "electron",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "app-store",
       "url": "https://apps.apple.com/us/app/quadrix-chat-desktop/id1577585119"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/quadrix.md"
    },
    {
     "os": "linux",
     "tech": "electron",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/chat.quadrix.Quadrix"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/quadrix.md"
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/src/models/MatrixApi.ts#L751",
     "note": "pattern match [CrossSigning]"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/src/modules/ElementCall/index.android.tsx#L21",
     "note": "pattern match [CallInvite]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/widgets.json#L2",
     "note": "pattern match [elementcall]"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/src/stores/DataStore.ts#L505",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/src/components/RoomChat.tsx#L625",
     "note": "pattern match [m.in_reply_to]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/src/components/TextMessage.tsx#L22",
     "note": "pattern match [LinkPreview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/package.json#L54",
     "note": "pattern match [firebase/messaging]"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/src/stores/DataStore.ts#L188",
     "note": "pattern match [setPresence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/src/models/MatrixApi.ts#L259",
     "note": "pattern match [m.room.tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/src/matrix/RestClient.tsx#L374",
     "note": "pattern match [/report]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/ios/quadrixTests/quadrixTests.m#L58",
     "note": "pattern match [accessibilityLabel]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2023-11-10, so no commits in the last 365 days (HEAD 702cdd19d2)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "quadrix.webp",
    "source": "https://github.com/alariej/quadrix/blob/702cdd19d22744f676d8c02e020897d47ff957c3/ios/quadrix/Images.xcassets/AppIcon.appiconset/icon-1024.png",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Licence from the matrix.org listing (no LICENSE file at the repo root). matrix.org lists E2EE as unsupported.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 1460,
    "first_commit": "2021-07-02T07:14:07+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0026,
     "Gradle": 0.0044,
     "HTML": 0.0011,
     "Java": 0.0129,
     "JavaScript": 0.0129,
     "Objective C": 0.0046,
     "Shell": 0.0037,
     "Swift": 0.0055,
     "TypeScript": 0.9506
    },
    "last_commit": "2023-11-10T14:29:59+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": null,
    "loc": {
     "Batch": 68,
     "Bazel": 17,
     "C Header": 10,
     "Gradle": 117,
     "HTML": 30,
     "Java": 344,
     "JavaScript": 343,
     "Objective C": 122,
     "Prolog": 17,
     "Shell": 98,
     "Swift": 146,
     "TypeScript": 25279,
     "TypeScript Typings": 2
    },
    "loc_total": 26593,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "quaternion",
   "name": "Quaternion",
   "category": "client",
   "kind": "desktop",
   "homepage": null,
   "summary": "Cross-platform Qt desktop client of the Quotient project, the reference client for libQuotient.",
   "repos": [
    {
     "url": "https://github.com/quotient-im/Quaternion",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/quaternion/",
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "linux",
    "windows",
    "macos"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/com.github.quaternion"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/quaternion.md"
    },
    {
     "os": "windows",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/quaternion.md"
    },
    {
     "os": "macos",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/quaternion.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "flathub"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "libQuotient",
     "how": "code",
     "source": "https://github.com/quotient-im/Quaternion/blob/5297ce9208c846732b194b71a9d2363777e7167b/CMakeLists.txt"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/quotient-im/Quaternion/blob/5297ce9208c846732b194b71a9d2363777e7167b/.lgtm.yml#L24",
     "note": "pattern match [Olm_]"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/quotient-im/Quaternion/blob/5297ce9208c846732b194b71a9d2363777e7167b/client/quaternionroom.h#L48",
     "note": "pattern match [sliding sync]"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/quaternion.md"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/quotient-im/Quaternion/blob/5297ce9208c846732b194b71a9d2363777e7167b/client/chatedit.cpp#L284",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/quotient-im/Quaternion/blob/5297ce9208c846732b194b71a9d2363777e7167b/client/htmlfilter.cpp#L74",
     "note": "pattern match [emoticon]"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/quotient-im/Quaternion/blob/5297ce9208c846732b194b71a9d2363777e7167b/client/chatroomwidget.cpp#L102",
     "note": "pattern match [rich_text_editor]"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/quotient-im/Quaternion/blob/5297ce9208c846732b194b71a9d2363777e7167b/client/models/messageeventmodel.cpp#L28",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "GPL-3.0; small CMake/Qt project (about 125 files) on libQuotient"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (26 non-bot commits in the last 365 days) at 5297ce9208"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "quaternion.webp",
    "source": "https://github.com/quotient-im/Quaternion/blob/5297ce9208c846732b194b71a9d2363777e7167b/icons/quaternion.ico",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists E2EE as unsupported; the code matches libQuotient's E2EE API names (see e2ee source) but this was not tested.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 21,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 0,
    "authors_all": 45,
    "authors_by_quarter": {
     "2023-Q1": 3,
     "2023-Q2": 4,
     "2023-Q3": 2,
     "2023-Q4": 1,
     "2024-Q1": 2,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 2,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 2,
     "2026-Q2": 2,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 21,
    "commits_90d": 0,
    "commits_all": 2245,
    "first_commit": "2015-06-27T15:21:16+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0478,
     "C++": 0.3211,
     "CMake": 0.0185,
     "QML": 0.0666,
     "TypeScript": 0.5451
    },
    "last_commit": "2026-06-15T08:37:46+00:00",
    "last_tag": "0.0.97.1",
    "last_tag_date": "2025-03-21T16:24:26+01:00",
    "last_tag_repo": "https://github.com/quotient-im/Quaternion",
    "licence_detected": "GPL-3.0",
    "loc": {
     "C Header": 1099,
     "C++": 7377,
     "CMake": 426,
     "QML": 1530,
     "SPDX": 13,
     "Shell": 5,
     "TypeScript": 12524,
     "Windows Resource-Definition Script": 1
    },
    "loc_total": 22975,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/quotient-im/Quaternion/blob/5297ce9208c846732b194b71a9d2363777e7167b/SECURITY.md",
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     6,
     2,
     8,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "racket-matrix-sdk",
   "name": "Racket Matrix SDK",
   "category": "sdk",
   "kind": "Racket",
   "homepage": "https://gitlab.com/aidalgol/racket-matrix-sdk",
   "summary": "A Matrix SDK for Racket.",
   "repos": [
    {
     "url": "https://gitlab.com/aidalgol/racket-matrix-sdk",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "LGPL-3.0-or-later",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 4e3df2d20205"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Racket Matrix SDK\" (Obsolete, Racket, maintainer: Aidan Gauland). Last non-bot commit 2019-01-04, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 4e3df2d20205 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "radicale-auth-matrix",
   "name": "radicale-auth-matrix",
   "category": "tool",
   "kind": "auth-plugin",
   "homepage": "https://github.com/etkecc/radicale-auth-matrix",
   "summary": "An authentication plugin that lets the Radicale CalDAV/CardDAV server log users in against a Matrix homeserver.",
   "repos": [
    {
     "url": "https://github.com/etkecc/radicale-auth-matrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "LGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "authentication (Matrix accounts for Radicale)",
     "how": "claimed",
     "source": "https://github.com/etkecc/radicale-auth-matrix/blob/0f07e8ba32cf595e744403f70dd4ff81db3886b6/README.md"
    },
    "framework": {
     "value": "own",
     "how": "claimed",
     "source": "https://github.com/etkecc/radicale-auth-matrix/blob/0f07e8ba32cf595e744403f70dd4ff81db3886b6/README.md",
     "note": "Python Radicale plugin calling the homeserver login API"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/etkecc/radicale-auth-matrix/blob/0f07e8ba32cf595e744403f70dd4ff81db3886b6/README.md",
     "note": "not applicable"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/etkecc/radicale-auth-matrix/blob/0f07e8ba32cf595e744403f70dd4ff81db3886b6/README.md",
     "note": "in Radicale; a dockerised Radicale with it exists (etkecc/radicale)"
    },
    "config": {
     "value": "Radicale config file",
     "how": "claimed",
     "source": "https://github.com/etkecc/radicale-auth-matrix/blob/0f07e8ba32cf595e744403f70dd4ff81db3886b6/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "claimed",
     "source": "https://github.com/etkecc/radicale-auth-matrix/blob/0f07e8ba32cf595e744403f70dd4ff81db3886b6/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 2 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 0f07e8ba32cf"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 2,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 1,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 1,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 2,
    "commits_90d": 0,
    "commits_all": 10,
    "first_commit": "2023-05-07T20:01:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Python": 1
    },
    "last_commit": "2026-07-26T23:18:06+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "LGPL-3.0",
    "loc": {
     "Python": 222
    },
    "loc_total": 222,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "beeper-reddit",
   "name": "Reddit Chat for Beeper",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Unofficial Reddit chat bridge for Beeper on mautrix-go bridgev2, self-hostable.",
   "repos": [
    {
     "url": "https://github.com/beeper/reddit",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:beeper"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": null,
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Reddit Chat",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/reddit/blob/9d7560faeee642603b315518c24718feb10e1ba5/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/reddit/blob/9d7560faeee642603b315518c24718feb10e1ba5/pkg/connector/backfill.go"
    },
    "media": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/beeper/reddit/blob/9d7560faeee642603b315518c24718feb10e1ba5/README.md"
    },
    "reactions_edits": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/beeper/reddit/blob/9d7560faeee642603b315518c24718feb10e1ba5/README.md"
    },
    "group_chats": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/beeper/reddit/blob/9d7560faeee642603b315518c24718feb10e1ba5/README.md"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/beeper/reddit/blob/9d7560faeee642603b315518c24718feb10e1ba5/README.md",
     "note": "username/password with 2FA"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "README: not an official integration; web changes may break it"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "10 of 38 non-bot commits in the last 365 days (26.3 %) carry an AI co-author trailer or 'Generated with' line, e.g. https://github.com/beeper/reddit/commit/737b2fad51bf64ec2818f358dcc8f0d84abcb1db, https://github.com/beeper/reddit/commit/ae6c81f4a249737aa33b9058c9c1d960cad276b6"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Found with GitHub search org:beeper.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 10,
     "commits_365d": 38,
     "share_365d": 0.2632,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 10
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 2,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 0,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 29,
    "commits_365d": 38,
    "commits_90d": 29,
    "commits_all": 38,
    "first_commit": "2026-06-10T11:16:42+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.003,
     "Go": 0.9912,
     "Shell": 0.0058
    },
    "last_commit": "2026-11-04T23:56:47+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": null,
    "loc": {
     "Dockerfile": 19,
     "Go": 6309,
     "Shell": 37
    },
    "loc_total": 6365,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     6,
     0,
     0,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     10,
     1,
     2,
     16
    ]
   }
  },
  {
   "slug": "relay",
   "name": "Relay",
   "category": "client",
   "kind": "desktop",
   "homepage": null,
   "summary": "Native macOS Matrix client in SwiftUI, built on the author's pure-Swift MatrixKit SDK.",
   "repos": [
    {
     "url": "https://github.com/subpop/Relay",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/relay/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "macos"
   ],
   "apps": [
    {
     "os": "macos",
     "tech": "native",
     "min_os": "15",
     "status": "beta",
     "stores": [
      {
       "name": "testflight",
       "url": "https://testflight.apple.com/join/ehFD9g5c"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/relay.md",
     "note": "Package.swift declares .macOS(.v15)"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own",
     "how": "claimed",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/README.md#L5",
     "note": "MatrixKit, a pure-Swift Matrix SDK by the same author"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/Relay/Models/KeyFetchCoordinator.swift#L31",
     "note": "pattern match [megolm]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/Relay/Models/KeyBackupPresentation.swift#L50",
     "note": "pattern match [cross-signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/RelayTests/KeyBackupSetupViewModelTests.swift#L21",
     "note": "pattern match [KeyBackup]"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/Relay/Views/Activity/ActivityView.swift#L42",
     "note": "pattern match [SlidingSync]"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/Relay/Models/RelayError.swift#L35",
     "note": "pattern match [OIDC]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/RelayTests/RoomPresentationTests.swift#L25",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/Relay/Views/Call/CallE2EE.swift#L42",
     "note": "pattern match [webrtc]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/Relay/Views/Call/LiveKitLogBridge.swift#L16",
     "note": "pattern match [LiveKit]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/RelayTests/RelayRoomTests.swift#L87",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/RelayTests/StickerReplyTests.swift#L30",
     "note": "pattern match [inReplyTo]"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/RelayTests/RelayRoomTests.swift#L54",
     "note": "pattern match [m.poll]"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/RelayTests/StickerPickerViewModelTests.swift#L27",
     "note": "pattern match [ImagePack]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/Relay/ViewModels/TimelineViewModel.swift#L736",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/RelayTests/LinkPreviewSkipListTests.swift#L20",
     "note": "pattern match [LinkPreview]"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/RelayTests/MarkAsReadTests.swift#L58",
     "note": "pattern match [m.read.private]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/Relay/Views/Call/CallViewModel.swift#L435",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/Relay/ViewModels/TimelineViewModel.swift#L167",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/Relay/Resources/Relay.help/Contents/Resources/en.lproj/toc.html#L82",
     "note": "pattern match [/report]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/Relay/Views/Inspector/InspectorTabBar.swift#L57",
     "note": "pattern match [accessibilityLabel]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "Apache-2.0; Xcode/SwiftPM project, about 320 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "AGENTS.md (guidelines \"to reduce common LLM coding mistakes\") at 3d3c2b022f",
      "79 of 797 commits in the last 365 days (10 %) carry Claude co-author trailers"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "relay.webp",
    "source": "https://github.com/subpop/Relay/blob/3d3c2b022ffc3f3b8c5e2db8b3a18677e175268c/docs/logo-256@2x.png",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 333,
     "commits_365d": 797,
     "share_365d": 0.4178,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 267,
      "codex": 1,
      "opencode": 65
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 5,
    "authors_90d": 4,
    "authors_all": 5,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 3,
     "2026-Q3": 5,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 120,
    "commits_365d": 797,
    "commits_90d": 217,
    "commits_all": 797,
    "first_commit": "2026-03-13T03:38:51+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0074,
     "HTML": 0.0317,
     "Shell": 0.0365,
     "Swift": 0.9242
    },
    "last_commit": "2026-11-03T04:46:12+00:00",
    "last_tag": "v0.6.12",
    "last_tag_date": "2026-11-02T23:46:12-05:00",
    "last_tag_repo": "https://github.com/subpop/Relay",
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 296,
     "HTML": 1260,
     "JavaScript": 10,
     "Shell": 1450,
     "Swift": 36764
    },
    "loc_total": 39780,
    "main_language": "Swift",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 38,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     38,
     24,
     48,
     82,
     51,
     26,
     47,
     16,
     9,
     3,
     46,
     42,
     43,
     14,
     34,
     29,
     0,
     0,
     23,
     2,
     0,
     9,
     11,
     3,
     5,
     3,
     3,
     18,
     26,
     22,
     21,
     13,
     66,
     20
    ]
   }
  },
  {
   "slug": "rivet",
   "name": "Rivet",
   "category": "client",
   "kind": "desktop",
   "homepage": null,
   "summary": "Early desktop Matrix client in Rust (gpui) on matrix-sdk; README says it is in heavy development.",
   "repos": [
    {
     "url": "https://github.com/Mjoyufull/Rivet",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "linux"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "native",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/Mjoyufull/Rivet/blob/fccc61b47153f7d58e9e07114473af7f46eeb736/README.md"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "source": "https://github.com/Mjoyufull/Rivet/blob/fccc61b47153f7d58e9e07114473af7f46eeb736/Cargo.toml"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Mjoyufull/Rivet/blob/fccc61b47153f7d58e9e07114473af7f46eeb736/crates/rivet-ui/src/security/recovery/recovery_page.rs#L9",
     "note": "pattern match [cross-signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Mjoyufull/Rivet/blob/fccc61b47153f7d58e9e07114473af7f46eeb736/crates/rivet-ui/src/settings/mod.rs#L52",
     "note": "pattern match [recovery key]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Mjoyufull/Rivet/blob/fccc61b47153f7d58e9e07114473af7f46eeb736/crates/rivet-ui/benches/room_hierarchy.rs#L16",
     "note": "pattern match [space_child]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Mjoyufull/Rivet/blob/fccc61b47153f7d58e9e07114473af7f46eeb736/crates/rivet-ui/src/timeline/common/model.rs#L530",
     "note": "pattern match [CallInvite]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Mjoyufull/Rivet/blob/fccc61b47153f7d58e9e07114473af7f46eeb736/Cargo.toml#L35",
     "note": "pattern match [livekit]"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Mjoyufull/Rivet/blob/fccc61b47153f7d58e9e07114473af7f46eeb736/crates/rivet-ui/src/timeline/common/model/formatting.rs#L425",
     "note": "pattern match [in_reply_to]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Mjoyufull/Rivet/blob/fccc61b47153f7d58e9e07114473af7f46eeb736/crates/rivet-ui/src/timeline/common/model.rs#L441",
     "note": "pattern match [Tombstone]"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (12 non-bot commits in the last 365 days) at fccc61b471"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "rivet.svg",
    "source": "https://github.com/Mjoyufull/Rivet/blob/fccc61b47153f7d58e9e07114473af7f46eeb736/assets/brand/icon.svg",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05",
    "backing": "dark"
   },
   "notes": "Platforms besides Linux not stated. Last commit 2026-03-18.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 12,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 12,
    "commits_90d": 0,
    "commits_all": 12,
    "first_commit": "2026-03-06T20:59:32+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Rust": 1
    },
    "last_commit": "2026-03-18T06:47:09+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Rust": 13516
    },
    "loc_total": 13516,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     11,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "roosterchat",
   "name": "Rooster",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://pondlabs.github.io/roosterchat/",
   "summary": "A Commet fork (Flutter) built around always-on voice rooms, screen sharing, a soundboard and a DJ booth, for Windows and Linux.",
   "repos": [
    {
     "url": "https://github.com/PondLabs/roosterchat",
     "forge": "github",
     "role": "main",
     "first_parent": true
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "PLAN.md (https://pondlabs.github.io/roosterchat/)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "windows",
    "linux",
    "macos"
   ],
   "apps": [
    {
     "os": "windows",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/README.md#L41"
    },
    {
     "os": "linux",
     "tech": "flutter",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/README.md#L42"
    },
    {
     "os": "macos",
     "tech": "flutter",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/README.md#L43",
     "note": "unsigned archive; README line 49 names Windows and Linux as supported"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": "commet",
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-dart-sdk",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/pubspec.yaml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/Cargo.toml#L4",
     "note": "pattern match [vodozemac]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/graphify-out/graph.html#L69",
     "note": "pattern match [Cross Signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/graphify-out/cache/ast/v0.9.72-s4/15a817a21802f2324552781b3fba4f7f53d28d9744e3072ef30214f91532dabd.json#L1",
     "note": "pattern match [recoverykey]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/graphify-out/graph.html#L69",
     "note": "pattern match [Oidc]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/graphify-out/cache/ast/v0.9.72-s4/bdedf27692fe349b74c21e507e37d4b3377ee5a074a4142f59d811b243cf7e68.json#L1",
     "note": "pattern match [threadRoot]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/graphify-out/manifest.json#L2180",
     "note": "pattern match [space_child]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/.github/workflows/desktop-build.yml#L9",
     "note": "pattern match [webrtc]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/.github/workflows/ci.yml#L122",
     "note": "pattern match [LiveKit]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/rooster/lib/ui/pages/developer/benchmarks/benchmark_utils.dart#L89",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/rooster/lib/client/matrix/matrix_room.dart#L694",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/rooster/lib/ui/organisms/chat/chat.dart#L317",
     "note": "pattern match [inReplyTo]"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/rooster/lib/client/matrix/components/polls/matrix_poll_component.dart#L21",
     "note": "pattern match [org.matrix.msc3381]"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/graphify-out/manifest.json#L548",
     "note": "pattern match [emoticon]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/rooster/lib/ui/pages/settings/categories/app/advanced_settings_page.dart#L31",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/rooster/lib/ui/pages/settings/categories/developer/developer_settings_page.dart#L47",
     "note": "pattern match [rich text editor]"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/.github/workflows/stability.yml#L87",
     "note": "pattern match [url_preview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/graphify-out/graph.html#L69",
     "note": "pattern match [Unifiedpush]"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/graphify-out/cache/semantic/pd5fd89c46bb5/3fa2dca4e26a25c8fc5e79cdc92f3bf77f567f325fef22c77009687b13a32679.json#L1",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/rooster/lib/client/matrix/components/soundboard/matrix_space_soundboard_component.dart#L5",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/graphify-out/cache/ast/v0.9.72-s4/68d1820f435356224cf55b8c8373cc74dab85008fbb5298fab643dd41ea73228.json#L1",
     "note": "pattern match [reportevent]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/website/index.html#L50",
     "note": "pattern match [aria-label]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "matrix.org",
     "how": "code",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/rooster/assets/config/global_config.json#L2"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "note": "AGPL-3.0; Flutter plus Rust and vendored third_party plugins (livekit, flutter-webrtc); about 5,600 files"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "If you use generative AI tools as an aid in developing code, ensure that you fully understand the proposed changes and can explain why they are the correct approach.",
     "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/CONTRIBUTING.md#L13"
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "CLAUDE.md at b815d6a60f; a graphify-out/ code-graph cache is committed",
      "73 of 324 first-parent commits in the last 365 days (23 %) carry Claude co-author trailers (Claude Opus 5.5, Claude Fable 5.1)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "roosterchat.webp",
    "source": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/fastlane/metadata/android/zh-CN/images/icon.jpg",
    "licence": "AGPL-3.0-only",
    "note": "ships Commet's logo (a fork of Commet)",
    "checked": "2026-11-05"
   },
   "notes": "CONTRIBUTING also says: \"Do not post output from Large Language Models or similar generative AI as comments on GitHub\". The repo name is roosterchat; the product name is Rooster.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 73,
     "commits_365d": 324,
     "share_365d": 0.2253,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 73
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 17,
    "authors_90d": 6,
    "authors_all": 25,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 2,
     "2023-Q4": 3,
     "2024-Q1": 2,
     "2024-Q2": 3,
     "2024-Q3": 1,
     "2024-Q4": 2,
     "2025-Q1": 3,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 11,
     "2026-Q2": 5,
     "2026-Q3": 7,
     "2026-Q4": 3
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 43,
    "commits_365d": 324,
    "commits_90d": 93,
    "commits_all": 823,
    "first_commit": "2023-02-07T09:20:30+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C": 0.0052,
     "C Header": 0.0191,
     "C++": 0.0572,
     "CMake": 0.0063,
     "CSS": 0.0068,
     "Dart": 0.6757,
     "Gradle": 0.0024,
     "HTML": 0.0119,
     "Java": 0.0321,
     "JavaScript": 0.0103,
     "Kotlin": 0.0045,
     "Objective C": 0.0261,
     "Python": 0.0341,
     "Rust": 0.0958,
     "Shell": 0.002,
     "Swift": 0.007
    },
    "last_commit": "2026-11-01T00:08:14+00:00",
    "last_tag": "v1.39.2",
    "last_tag_date": "2026-11-03T21:46:53-03:00",
    "last_tag_repo": "https://github.com/PondLabs/roosterchat",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 203,
     "C": 1533,
     "C Header": 5659,
     "C++": 16997,
     "C++ Header": 45,
     "CMake": 1885,
     "CSS": 2031,
     "Dart": 200677,
     "GLSL": 131,
     "Gradle": 722,
     "HTML": 3549,
     "Java": 9520,
     "JavaScript": 3059,
     "Kotlin": 1349,
     "Nix": 91,
     "Objective C": 7739,
     "Objective C++": 62,
     "Powershell": 246,
     "Prolog": 9,
     "Python": 10119,
     "Rust": 28456,
     "Shell": 606,
     "Swift": 2086,
     "Windows Resource-Definition Script": 165,
     "Xcode Config": 56
    },
    "loc_total": 296995,
    "main_language": "Dart",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/PondLabs/roosterchat/blob/b815d6a60f96d56dc1c9a246efbc57d0f41474ee/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 128,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     4,
     1,
     5,
     5,
     0,
     1,
     6,
     3,
     6,
     10,
     1,
     22,
     12,
     13,
     21,
     25,
     14,
     5,
     12,
     1,
     1,
     3,
     6,
     0,
     4,
     1,
     0,
     10,
     1,
     0,
     11,
     11,
     5,
     1,
     5,
     0,
     2,
     0,
     2,
     1,
     0,
     2,
     0,
     5,
     11,
     7,
     15,
     15,
     27,
     4,
     6,
     1
    ]
   }
  },
  {
   "slug": "libmatrix-rory",
   "name": "Rory&::LibMatrix",
   "category": "sdk",
   "kind": "C#",
   "homepage": "https://cgit.rory.gay/matrix/LibMatrix.git",
   "summary": "An extensible C# (.NET 10) library for Matrix, published on NuGet under RoryLibMatrix.",
   "repos": [
    {
     "url": "https://cgit.rory.gay/matrix/LibMatrix",
     "forge": "other",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "nuget"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot, bridge",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 32 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 7db5473252b5"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Rory&::LibMatrix\" (Beta, C#, maintainer: Rory& and other contributors). Last non-bot commit 2026-07-05, 32 non-bot commits in the last year and 0 authors in the last 90 days by our count at 7db5473252b5 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "ruby-matrix-sdk",
   "name": "Ruby Matrix SDK",
   "category": "sdk",
   "kind": "Ruby",
   "homepage": "https://ruby-sdk.ananace.dev",
   "summary": "A Ruby gem for clients and bots speaking the Matrix protocol.",
   "repos": [
    {
     "url": "https://github.com/ananace/ruby-matrix-sdk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "beta",
   "platforms": [],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "rubygems"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client, bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at e2b8271c71c9"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Ruby Matrix SDK\" (Beta, Ruby, maintainer: Ananace). Last non-bot commit 2025-08-18, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at e2b8271c71c9 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "ruma",
   "name": "Ruma",
   "category": "sdk",
   "kind": "Rust",
   "homepage": "https://ruma.dev",
   "summary": "A set of Rust crates with the Matrix API and event types (client-server, federation, appservice, identity, push); matrix-rust-sdk and several homeservers build on it.",
   "repos": [
    {
     "url": "https://github.com/ruma/ruma",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "crates.io"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/ruma/ruma/blob/67ed21477e29dc6eabf3224d3c9ebb4ec73d617b/crates/ruma-common/src/identifiers/crypto_algorithms.rs",
     "note": "types and endpoints for keys and backups only; no crypto implementation (that is matrix-sdk-crypto / vodozemac)"
    },
    "crypto": "none (types only)",
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ruma/ruma/blob/67ed21477e29dc6eabf3224d3c9ebb4ec73d617b/crates/ruma-client-api/src/sync/sync_events/v5.rs",
     "note": "MSC4186 request and response types (sync_events v5)"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ruma/ruma/blob/67ed21477e29dc6eabf3224d3c9ebb4ec73d617b/crates/ruma-client-api/src/discovery/get_authorization_server_metadata.rs",
     "note": "authorization server metadata endpoint types"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ruma/ruma/blob/67ed21477e29dc6eabf3224d3c9ebb4ec73d617b/crates/ruma-events/src/relation.rs",
     "note": "thread relation types and endpoints"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ruma/ruma/blob/67ed21477e29dc6eabf3224d3c9ebb4ec73d617b/crates/ruma-client-api/src/space/get_hierarchy.rs"
    },
    "appservice": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ruma/ruma/blob/67ed21477e29dc6eabf3224d3c9ebb4ec73d617b/crates/ruma-appservice-api/README.md"
    },
    "purpose": {
     "value": "client, bot, bridge, server",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "fest",
     "matrix-rust-sdk"
    ]
   },
   "ai": {
    "policy": {
     "value": "banned",
     "quote": "Contributions must not include content generated by large language models or other probabilistic tools like ChatGPT, Claude, and Copilot.",
     "source": "https://github.com/ruma/ruma/blob/67ed21477e29dc6eabf3224d3c9ebb4ec73d617b/CONTRIBUTING.md#L255",
     "note": "Reasons given: ethics of training data, electricity and water use, quality, copyright. Exception for translating issue text into English."
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 630 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 67ed21477e29"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "icon": {
    "file": "ruma.webp",
    "source": "https://avatars.githubusercontent.com/u/16043271?v=4&s=256",
    "licence": null,
    "note": "the Ruma organisation's avatar on GitHub",
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"Ruma\" (Stable, Rust, maintainer: Ruma team). Last non-bot commit 2026-11-02, 630 non-bot commits in the last year and 17 authors in the last 90 days by our count at 67ed21477e29 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "ruma-homeserver",
   "name": "Ruma homeserver",
   "category": "server",
   "kind": "homeserver",
   "homepage": "https://www.ruma.io/",
   "summary": "An early Rust homeserver by the Ruma project; archived (the Ruma libraries live on and power the Conduit family).",
   "repos": [
    {
     "url": "https://github.com/ruma/homeserver",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": null,
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Rust",
    "database": null,
    "federation": {
     "value": "not-found"
    },
    "oidc_delegation": {
     "value": "not-found",
     "note": "no reference to MSC3861/2964/2965/2967 found in the code"
    },
    "native_sliding_sync": {
     "value": "not-found",
     "note": "no reference to MSC4186 found in the code"
    },
    "workers_scaling": {
     "value": "not-found"
    },
    "media_auth": {
     "value": "not-found",
     "note": "no reference to MSC3916 found in the code"
    },
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "ce1399894ccb9aebd25bcfa9d1b4ab9f781e0121"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "ruma-homeserver.webp",
    "source": "https://avatars.githubusercontent.com/u/16043271?v=4&s=256",
    "licence": null,
    "note": "the Ruma project's logo (the ruma organisation's avatar on GitHub)",
    "checked": "2026-11-05"
   },
   "notes": "The default branch holds only a README.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 2,
    "first_commit": "2020-04-12T18:43:08+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Markdown": 1
    },
    "last_commit": "2021-09-02T08:25:52+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": null,
    "loc": {
     "Markdown": 103
    },
    "loc_total": 103,
    "main_language": "Markdown",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "rumatui",
   "name": "rumatui",
   "category": "client",
   "kind": "terminal",
   "homepage": null,
   "summary": "Click-able command-line (TUI) Matrix client in Rust on early matrix-rust-sdk.",
   "repos": [
    {
     "url": "https://github.com/DevinR528/rumatui",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "terminal"
   ],
   "apps": [
    {
     "os": "terminal",
     "tech": "tui",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/DevinR528/rumatui/blob/2a379dc83301d4284f2b2dd74fa7afa2845e5cad/README.md"
    }
   ],
   "licence": "MIT OR Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "source": "https://github.com/DevinR528/rumatui/blob/2a379dc83301d4284f2b2dd74fa7afa2845e5cad/Cargo.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/DevinR528/rumatui/blob/2a379dc83301d4284f2b2dd74fa7afa2845e5cad/src/error.rs#L123",
     "note": "pattern match [Megolm]"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/DevinR528/rumatui/blob/2a379dc83301d4284f2b2dd74fa7afa2845e5cad/src/client/ruma_ext/mod.rs#L22",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/DevinR528/rumatui/blob/2a379dc83301d4284f2b2dd74fa7afa2845e5cad/src/client/event_stream.rs#L465",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/DevinR528/rumatui/blob/2a379dc83301d4284f2b2dd74fa7afa2845e5cad/src/client/event_stream.rs#L8",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/DevinR528/rumatui/blob/2a379dc83301d4284f2b2dd74fa7afa2845e5cad/src/client/event_stream.rs#L23",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2021-08-19, so no commits in the last 365 days (HEAD 2a379dc833)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 131,
    "first_commit": "2020-03-25T00:28:12+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Rust": 1
    },
    "last_commit": "2021-08-20T01:23:03+00:00",
    "last_tag": "0.1.19",
    "last_tag_date": "2020-07-20T18:39:05-04:00",
    "last_tag_repo": "https://github.com/DevinR528/rumatui",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Rust": 17159
    },
    "loc_total": 17159,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "rustix",
   "name": "rustix",
   "category": "bot",
   "kind": "framework",
   "homepage": "https://gitlab.com/jpypi/rustix",
   "summary": "A Rust bot whose commands, filters and services are wired as a configurable processing graph; quotes, factoids, search and an optional OpenAI chat command.",
   "repos": [
    {
     "url": "https://gitlab.com/jpypi/rustix",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "general-purpose (quotes, factoids, web search, karma, optional LLM chat)",
     "how": "claimed",
     "source": "https://gitlab.com/jpypi/rustix/-/blob/453a9ca5352fbcb09ec1b82811188b0ac96208ca/README.md"
    },
    "framework": {
     "value": "own",
     "how": "code",
     "source": "https://gitlab.com/jpypi/rustix/-/blob/453a9ca5352fbcb09ec1b82811188b0ac96208ca/Cargo.toml",
     "note": "talks to the client-server API itself over reqwest; no Matrix SDK crate"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://gitlab.com/jpypi/rustix/-/blob/453a9ca5352fbcb09ec1b82811188b0ac96208ca/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://gitlab.com/jpypi/rustix/-/blob/453a9ca5352fbcb09ec1b82811188b0ac96208ca/README.md",
     "note": "Docker recommended"
    },
    "config": {
     "value": "config.toml and admin commands (node config)",
     "how": "claimed",
     "source": "https://gitlab.com/jpypi/rustix/-/blob/453a9ca5352fbcb09ec1b82811188b0ac96208ca/README.md"
    },
    "ai_backend": {
     "value": "OpenAI",
     "how": "claimed",
     "source": "https://gitlab.com/jpypi/rustix/-/blob/453a9ca5352fbcb09ec1b82811188b0ac96208ca/README.md",
     "note": "services.openai enables a chat command backed by OpenAI's GPT models; disabled in the default config"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 1 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 453a9ca5352f"
     ]
    },
    "in_product": {
     "value": "optional",
     "note": "An optional chat command sends recent channel history to OpenAI's GPT models; off unless an API key is configured.",
     "source": "https://gitlab.com/jpypi/rustix/-/blob/453a9ca5352fbcb09ec1b82811188b0ac96208ca/README.md"
    }
   },
   "notes": "Maturity is our reading (one commit in the last 365 days, 2026-01-25).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 1,
     "2023-Q3": 2,
     "2023-Q4": 1,
     "2024-Q1": 2,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 1,
    "commits_90d": 0,
    "commits_all": 394,
    "first_commit": "2017-10-02T20:14:45+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0077,
     "Makefile": 0.0077,
     "Rust": 0.9706,
     "SQL": 0.0141
    },
    "last_commit": "2026-01-25T21:29:50+00:00",
    "last_tag": "v0.0.8",
    "last_tag_date": "2025-01-21T15:42:20-06:00",
    "last_tag_repo": "https://gitlab.com/jpypi/rustix",
    "licence_detected": "MIT",
    "loc": {
     "Dockerfile": 31,
     "Makefile": 31,
     "Rust": 3927,
     "SQL": 57
    },
    "loc_total": 4046,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "sable",
   "name": "Sable",
   "category": "client",
   "kind": "web, desktop",
   "homepage": "https://sable.moe",
   "summary": "A Cinny fork focused on quality-of-life features; v1 (Sable Legacy) is in maintenance and development moved to the Sable v2 rewrite (\"Sable next\").",
   "repos": [
    {
     "url": "https://git.sable.moe/SableClient/Sable-next",
     "forge": "forgejo",
     "role": "main"
    },
    {
     "url": "https://github.com/SableClient/Sable-Legacy",
     "forge": "github",
     "role": "other",
     "first_parent": true
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/sable/",
    "other": [
     "sources/community-space.tsv (#community:matrix.org)",
     "PLAN.md (https://next.sable.moe)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://next.sable.moe"
    },
    {
     "os": "linux",
     "tech": "electron",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/moe.sable.client"
      }
     ],
     "source": "https://github.com/SableClient/Sable-Legacy/blob/3adfe1e6cddf9cc724574a6bf58fb7eac041d294/README.md#L17"
    },
    {
     "os": "windows",
     "tech": "electron",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/SableClient/Sable-Legacy/blob/3adfe1e6cddf9cc724574a6bf58fb7eac041d294/README.md#L17"
    },
    {
     "os": "macos",
     "tech": "electron",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "homebrew",
       "url": "https://github.com/SableClient/homebrew-sable"
      }
     ],
     "source": "https://github.com/SableClient/Sable-Legacy/blob/3adfe1e6cddf9cc724574a6bf58fb7eac041d294/README.md#L17"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": "cinny",
   "distribution": [
    "flathub",
    "homebrew"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/Cargo.toml",
     "note": "v2: own Rust core on matrix-sdk / matrix-sdk-ui (crates/sable-core), compiled to WASM; v1 used matrix-js-sdk like Cinny"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/transport/web.test.ts#L635",
     "note": "pattern match [megolm]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/packaging/flatpak/moe.sable.client.metainfo.xml#L42",
     "note": "pattern match [cross-signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/packaging/flatpak/moe.sable.client.metainfo.xml#L42",
     "note": "pattern match [key backup]"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/generated/protocol.ts#L1428",
     "note": "pattern match [sliding_sync]"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/generated/protocol.ts#L232",
     "note": "pattern match [auth_metadata]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/generated/protocol.ts#L492",
     "note": "pattern match [thread_root]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/generated/protocol.ts#L189",
     "note": "pattern match [SpaceChild]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/generated/protocol.ts#L1853",
     "note": "pattern match [call_invite]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/Cargo.toml#L44",
     "note": "pattern match [msc4143]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/lib/model/model.ts#L508",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/lib/features/room/timeline/state-event-icon.test.ts#L113",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/generated/protocol.ts#L733",
     "note": "pattern match [in_reply_to]"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/crates/sable-core/src/preview.rs#L178",
     "note": "pattern match [org.matrix.msc3381]"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/emoji-data.d.ts#L2",
     "note": "pattern match [emoticon]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/lib/features/widgets/capabilities.ts#L52",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/generated/protocol.ts#L1850",
     "note": "pattern match [geo:]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/lib/ui/VoiceMessagePlayer.svelte#L65",
     "note": "pattern match [voice-message]"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/generated/protocol.ts#L1950",
     "note": "pattern match [link_preview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/generated/protocol.ts#L1085",
     "note": "pattern match [UnifiedPush]"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/crates/sable-core/src/sdk_timeline_tests.rs#L3541",
     "note": "pattern match [m.read.private]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/i18next.config.ts#L26",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/generated/protocol.ts#L1249",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/lib/ui/MediaContent.svelte.test.ts#L237",
     "note": "pattern match [/report]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/package.json#L119",
     "note": "pattern match [a11y]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "opt-in",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/src/service-worker/telemetry.ts",
     "note": "Sentry; events are dropped unless the user consented (telemetryConsent)"
    },
    "default_homeserver": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SableClient/Sable-Legacy/blob/3adfe1e6cddf9cc724574a6bf58fb7eac041d294/config.json#L4",
     "note": "v1 config homeserverList starts with matrix.org"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/Cargo.toml",
     "note": "AGPL-3.0; v2 is a Rust workspace (about 10 crates) plus a TypeScript UI and Electron shell, built with pnpm and mise; about 3,400 files"
    }
   },
   "ai": {
    "policy": {
     "value": "banned",
     "quote": "Sable declines any contribution believed to include or derive from AI-generated content, including ChatGPT, Claude, Copilot, Llama and similar tools.",
     "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/4bfde17ab615f8cb69048e7f8dbbf65e629ed0da/CONTRIBUTING.md#L34"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "v2 (Sable-next): no agent files, no AI-attributed commits in the last 365 days (first-parent history, 3,981 commits) at 4bfde17ab615",
      "v1 (Sable-Legacy): CLAUDE.md, AGENTS.md, .cursorrules and .github/copilot-instructions.md hold the same short deterrent text telling AI agents not to open issues or PRs; they are not working agent configs",
      "v1: 3 commits in its whole merged history carry Copilot co-author trailers; none in its own first-parent history of the last year"
     ],
     "collector_override": "the four agent files in Sable v1 (CLAUDE.md, AGENTS.md, .cursorrules, copilot-instructions.md) hold the same short text addressed to AI agents, a deterrent rather than a working configuration; Sable v2 bans AI-generated contributions."
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "sable.webp",
    "source": "https://git.sable.moe/SableClient/Sable-next/src/commit/f96e9748cf007070e2f1ce4152817a35741c07a2/fastlane/metadata/android/en-US/images/icon.png",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Sable Legacy (v1) PR template asked for an AI disclosure (none / partially / fully AI generated), so v1 was \"restricted\"; v2 bans AI-generated content outright. The fork adds over Cinny: quality-of-life features, cosmetics, a Tauri/Electron desktop app; v2 replaces the matrix-js-sdk core with a Rust one. Metrics: count the v2 repo; v1 history includes all of Cinny.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 4,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 7103,
     "share_365d": 0,
     "suggested_dev_usage": "config-only",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 56,
    "authors_90d": 44,
    "authors_all": 107,
    "authors_by_quarter": {
     "2023-Q1": 4,
     "2023-Q2": 4,
     "2023-Q3": 5,
     "2023-Q4": 4,
     "2024-Q1": 2,
     "2024-Q2": 6,
     "2024-Q3": 7,
     "2024-Q4": 5,
     "2025-Q1": 9,
     "2025-Q2": 5,
     "2025-Q3": 7,
     "2025-Q4": 3,
     "2026-Q1": 12,
     "2026-Q2": 0,
     "2026-Q3": 14,
     "2026-Q4": 39
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 1977,
    "commits_365d": 7103,
    "commits_90d": 6956,
    "commits_all": 8061,
    "first_commit": "2021-07-28T13:15:52+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0058,
     "JavaScript": 0.0116,
     "Kotlin": 0.012,
     "Rust": 0.3223,
     "Svelte": 0.2215,
     "Swift": 0.0019,
     "TypeScript": 0.4215
    },
    "last_commit": "2026-11-05T04:07:43+00:00",
    "last_tag": "latest",
    "last_tag_date": "2026-11-04T16:51:43+00:00",
    "last_tag_repo": "https://git.sable.moe/SableClient/Sable-next",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 140,
     "C Header": 8,
     "CSS": 2850,
     "CloudFormation (YAML)": 75,
     "Dockerfile": 85,
     "Gradle": 32,
     "HCL": 16,
     "HTML": 187,
     "JSON5": 105,
     "JSONC": 9,
     "JavaScript": 6312,
     "Kotlin": 5456,
     "Nix": 609,
     "PKGBUILD": 159,
     "Prolog": 70,
     "Python": 204,
     "Ruby": 55,
     "Rust": 140433,
     "Shell": 557,
     "Svelte": 88871,
     "Swift": 985,
     "Terraform": 186,
     "TypeScript": 375330,
     "TypeScript Typings": 263
    },
    "loc_total": 622997,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://git.sable.moe/SableClient/Sable-next/src/commit/f96e9748cf007070e2f1ce4152817a35741c07a2/.github/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 84,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     2,
     28,
     76,
     36,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     114,
     300,
     310,
     268,
     166,
     458,
     873,
     1604,
     1153,
     506,
     435,
     275,
     494
    ]
   }
  },
  {
   "slug": "sailtrix",
   "name": "Sailtrix",
   "category": "client",
   "kind": "mobile",
   "homepage": null,
   "summary": "Matrix client for Sailfish OS with E2EE, in beta.",
   "repos": [
    {
     "url": "https://gitlab.com/HengYeDev/harbour-sailtrix",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "beta",
   "platforms": [],
   "apps": [
    {
     "os": "sailfish",
     "tech": "qt",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "openrepos",
       "url": "https://openrepos.net/content/hengyedev/sailtrix"
      }
     ],
     "source": "https://gitlab.com/HengYeDev/harbour-sailtrix/-/blob/c87734cdfed5342874758f154c8f7169a73af140/README.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [
    "https://liberapay.com/HengYe/donate"
   ],
   "features": {
    "sdk": {
     "value": "own",
     "how": "code",
     "note": "Qt/C++ with olm"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/HengYeDev/harbour-sailtrix/-/blob/c87734cdfed5342874758f154c8f7169a73af140/src/rooms.cpp#L70",
     "note": "pattern match [olm_]"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/HengYeDev/harbour-sailtrix/-/blob/c87734cdfed5342874758f154c8f7169a73af140/src/enc-util.cpp#L600",
     "note": "pattern match [SecretStorage]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/HengYeDev/harbour-sailtrix/-/blob/c87734cdfed5342874758f154c8f7169a73af140/src/messages.cpp#L1169",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/HengYeDev/harbour-sailtrix/-/blob/c87734cdfed5342874758f154c8f7169a73af140/src/messages.cpp#L1918",
     "note": "pattern match [m.in_reply_to]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/HengYeDev/harbour-sailtrix/-/blob/c87734cdfed5342874758f154c8f7169a73af140/src/messages.cpp#L757",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitlab.com/HengYeDev/harbour-sailtrix/-/blob/c87734cdfed5342874758f154c8f7169a73af140/README.md",
     "note": "Weblate (hosted.weblate.org/projects/sailtrix)"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "GPL-3.0; Sailfish SDK build, about 100 files"
    }
   },
   "ai": {
    "policy": {
     "value": "banned",
     "quote": "Current policy is to REJECT any merge request that are believed to include LLM generated content, at the maintainer's sole discretion.",
     "source": "https://gitlab.com/HengYeDev/harbour-sailtrix/-/blob/c87734cdfed5342874758f154c8f7169a73af140/README.md#L21"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (38 non-bot commits in the last 365 days) at c87734cdfe"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "sailtrix.webp",
    "source": "https://gitlab.com/HengYeDev/harbour-sailtrix/-/blob/c87734cdfed5342874758f154c8f7169a73af140/icons/172x172/harbour-sailtrix.png",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "The policy allows LLM use \"to research, debugging, or help to understand code or concepts, given that no output is included in your contributions.\"",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 18,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 0,
    "authors_all": 13,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 2,
     "2024-Q4": 1,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 2,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 18,
    "commits_90d": 0,
    "commits_all": 164,
    "first_commit": "2021-06-30T14:58:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0434,
     "C++": 0.2836,
     "Prolog": 0.0132,
     "QML": 0.1253,
     "TypeScript": 0.5344
    },
    "last_commit": "2026-03-30T18:06:54+00:00",
    "last_tag": "1.4.3",
    "last_tag_date": "2026-03-29T18:24:08-04:00",
    "last_tag_repo": "https://gitlab.com/HengYeDev/harbour-sailtrix",
    "licence_detected": "GPL-3.0",
    "loc": {
     "C Header": 850,
     "C++": 5551,
     "HTML": 1,
     "Prolog": 259,
     "QML": 2453,
     "TypeScript": 10459
    },
    "loc_total": 19573,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 2,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     8,
     2,
     0,
     0,
     0,
     6,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "schildichat",
   "name": "SchildiChat Legacy",
   "category": "client",
   "kind": "web, desktop, mobile",
   "homepage": "https://schildi.chat",
   "summary": "The original SchildiChat: forks of Element Web/Desktop and Element Android (classic), now marked obsolete by matrix.org.",
   "repos": [
    {
     "url": "https://github.com/SchildiChat/schildichat-desktop",
     "forge": "github",
     "role": "desktop",
     "first_parent": true
    },
    {
     "url": "https://github.com/SchildiChat/schildichat-android",
     "forge": "github",
     "role": "android",
     "first_parent": true
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/schildichat/",
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux",
    "android"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "native",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "google-play",
       "url": "https://play.google.com/store/apps/details?id=de.spiritcroc.riotx"
      },
      {
       "name": "f-droid",
       "url": "https://f-droid.org/packages/de.spiritcroc.riotx"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/schildichat.md"
    },
    {
     "os": "linux",
     "tech": "electron",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/chat.schildi.desktop"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/schildichat.md"
    },
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/schildichat.md"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": "element-web",
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/schildichat.md",
     "note": "matrix-js-sdk (web/desktop) and matrix-android-sdk2 (Android), as Element forks"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "not-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "repos not cloned in this pass (several repos under https://github.com/SchildiChat)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "schildichat.webp",
    "source": "https://github.com/SchildiChat/schildichat-android/blob/49a64165852756bd62a49003a7a42092d2e96364/fastlane/metadata/android/en-US/images/icon.png",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"Obsolete\" and points to the SchildiChat org rather than a single repo; the successors are SchildiChat Next (Android) and SchildiChat Revenge. Not researched in depth. fork_of names element-web (the desktop/web app); the Android app is a fork of Element Android, our element-classic. Repos added in the integration pass (both answer git ls-remote on 2026-11-05) so the collector can measure them; the desktop repo merges upstream Element, so its commit counts include upstream work.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 38,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 27,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 2,
     "2023-Q3": 2,
     "2023-Q4": 2,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 38,
    "commits_90d": 8,
    "commits_all": 1978,
    "first_commit": "2018-10-03T15:58:12+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0502,
     "JavaScript": 0.0345,
     "Makefile": 0.1228,
     "Nix": 0.027,
     "Shell": 0.7655
    },
    "last_commit": "2026-10-02T06:55:31+00:00",
    "last_tag": "sc_v1.6.66.sc93",
    "last_tag_date": "2026-10-02T08:55:32+02:00",
    "last_tag_repo": "https://github.com/SchildiChat/schildichat-android",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Batch": 73,
     "CSS": 67,
     "Gemfile": 3,
     "Gherkin Specification": 1,
     "Gradle": 2055,
     "HTML": 612,
     "Java": 7512,
     "JavaScript": 185,
     "Kotlin": 245065,
     "Makefile": 164,
     "Nix": 36,
     "Prolog": 189,
     "Python": 446,
     "Shell": 3015
    },
    "loc_total": 259423,
    "main_language": "Shell",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/SchildiChat/schildichat-android/blob/49a64165852756bd62a49003a7a42092d2e96364/SECURITY.md",
    "stars": null,
    "status": "slowing",
    "tags_365d": 9,
    "telemetry_sdks": [
     "Firebase Analytics",
     "PostHog"
    ],
    "tests_present": true,
    "weekly_commits": [
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     4,
     0,
     2,
     0,
     0,
     7,
     1,
     0,
     0,
     0,
     0,
     0,
     5,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     9,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     7,
     1,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "schildichat-next",
   "name": "SchildiChat Next",
   "category": "client",
   "kind": "mobile",
   "homepage": "https://schildi.chat/android/next",
   "summary": "Android Matrix client forked from Element X Android, with SchildiChat's UI and settings additions.",
   "repos": [
    {
     "url": "https://github.com/SchildiChat/schildichat-android-next",
     "forge": "github",
     "role": "android",
     "first_parent": true
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/schildichat-next/",
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "android"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "native",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "google-play",
       "url": "https://play.google.com/store/apps/details?id=chat.schildi.android"
      },
      {
       "name": "f-droid",
       "url": "https://f-droid.org/packages/chat.schildi.android"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/schildichat-next.md"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": "element-x",
   "distribution": [
    "google-play",
    "f-droid"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/gradle/libs.versions.toml",
     "note": "matrix-rust-sdk (via the Element X matrix-rust-components)"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/item/event/MessageShield.kt#L33",
     "note": "pattern match [Megolm]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt#L167",
     "note": "pattern match [cross-signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/testtags/src/main/kotlin/io/element/android/libraries/testtags/TestTags.kt#L31",
     "note": "pattern match [recoveryKey]"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "claimed",
     "note": "inherited from Element X, which requires simplified sliding sync (MSC4186)"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/app/src/main/kotlin/io/element/android/x/ScApplication.kt#L12",
     "note": "pattern match [OIDC]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/mediaupload/impl/src/main/kotlin/io/element/android/libraries/mediaupload/impl/DefaultMediaSender.kt#L290",
     "note": "pattern match [threadRoot]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/AlertDialogContent.kt#L291",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/eventformatter/impl/src/main/kotlin/io/element/android/libraries/eventformatter/impl/DefaultTimelineEventFormatter.kt#L22",
     "note": "pattern match [CallInvite]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/settings.gradle.kts#L92",
     "note": "pattern match [element-call]"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/tools/dependencies/checkDependencies.py#L38",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/mediaupload/api/src/main/kotlin/io/element/android/libraries/mediaupload/api/MediaSender.kt#L73",
     "note": "pattern match [inReplyTo]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/StateEventType.kt#L36",
     "note": "pattern match [ImagePack]"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/MatrixClient.kt#L39",
     "note": "pattern match [m.location]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/mediaupload/api/src/main/kotlin/io/element/android/libraries/mediaupload/api/MediaSender.kt#L102",
     "note": "pattern match [voice message]"
    },
    "rich_text_editor": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/settings.gradle.kts#L47",
     "note": "pattern match [wysiwyg]"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/schildi/matrixsdk/src/main/kotlin/chat/schildi/matrixsdk/urlpreview/UrlPreviewProvider.kt#L1",
     "note": "pattern match [urlpreview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/app/build.gradle.kts#L357",
     "note": "pattern match [UnifiedPush]"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/ReceiptType.kt#L13",
     "note": "pattern match [READ_PRIVATE]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/libraries/preferences/api/src/main/kotlin/io/element/android/libraries/preferences/api/store/SessionPreferencesStore.kt#L21",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/.idea/dictionaries/shared.xml#L23",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/build.gradle.kts#L255",
     "note": "pattern match [/report]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/appicon/element/src/main/kotlin/io/element/android/appicon/element/IconPreview.kt#L30",
     "note": "pattern match [contentDescription]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "opt-in",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/services/analyticsproviders/posthog/build.gradle.kts",
     "note": "PostHog analytics module inherited from Element X (opt-in in Element X); whether SchildiChat ships it enabled was not checked"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "note": "AGPL-3.0 plus Element's commercial licence file inherited; large Gradle multi-module Kotlin project (about 7,900 files) tracking upstream merges"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "config-only",
     "evidence": [
      "AGENTS.md and CLAUDE.md at the repo root, inherited from upstream element-x-android (the file names that repo)",
      "SchildiChat's own first-parent commits in the last 365 days: 174, none with AI trailers",
      "merged upstream Element X history in the same window has 228 commits with Claude co-author trailers (by Element developers, not SchildiChat)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "schildichat-next.webp",
    "source": "https://github.com/SchildiChat/schildichat-android-next/blob/588a9cd957e2581d1823f57cd066dbc35a27ca9e/app/src/sc/res/mipmap-xxxhdpi/ic_launcher.png",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "The upstream_infra/ folder carries Element X's CONTRIBUTING, which says \"We are also fine with AI led contributions within reasonable bounds\"; that is Element's policy, not SchildiChat's own. The collector should count first-parent history only for this fork.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 2,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 136,
     "share_365d": 0,
     "suggested_dev_usage": "config-only",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 1,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 2,
     "2026-Q1": 2,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 4,
    "commits_365d": 136,
    "commits_90d": 15,
    "commits_all": 620,
    "first_commit": "2022-10-06T07:59:25+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 0.0067,
     "Kotlin": 0.9805,
     "Python": 0.0051,
     "Shell": 0.0059
    },
    "last_commit": "2026-10-28T19:21:04+00:00",
    "last_tag": "sc_v0.11.8-ex_26_10_1",
    "last_tag_date": "2026-10-27T08:39:55+01:00",
    "last_tag_repo": "https://github.com/SchildiChat/schildichat-android-next",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "BASH": 172,
     "Batch": 73,
     "CSS": 213,
     "HTML": 64,
     "JSON5": 71,
     "JavaScript": 2186,
     "Kotlin": 321538,
     "Python": 1657,
     "Shell": 1943
    },
    "loc_total": 327917,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 42,
    "telemetry_sdks": [
     "PostHog",
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     11,
     5,
     0,
     2,
     3,
     0,
     4,
     0,
     0,
     0,
     0,
     8,
     2,
     0,
     5,
     2,
     2,
     7,
     16,
     0,
     6,
     1,
     1,
     3,
     10,
     4,
     6,
     1,
     2,
     1,
     6,
     2,
     0,
     0,
     3,
     1,
     2,
     1,
     4,
     1,
     0,
     0,
     3,
     1,
     4,
     0,
     1,
     1,
     0,
     0,
     4,
     0
    ]
   }
  },
  {
   "slug": "schildichat-revenge",
   "name": "SchildiChat Revenge",
   "category": "client",
   "kind": "desktop, mobile",
   "homepage": "https://schildi.chat/revenge",
   "summary": "A newer SchildiChat client built on matrix-rust-sdk (via matrix-sdk-ffi) with a Kotlin Compose Multiplatform UI for desktop and Android.",
   "repos": [
    {
     "url": "https://github.com/SchildiChat/schildi-revenge",
     "forge": "github",
     "role": "main",
     "first_parent": true
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/schildichat-revenge/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "windows",
    "linux",
    "android"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "other",
     "min_os": "8.0",
     "status": "beta",
     "stores": [
      {
       "name": "google-play",
       "url": "https://play.google.com/store/apps/details?id=chat.schildi.revenge"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/schildichat-revenge.md",
     "note": "Compose Multiplatform; minSdk 26"
    },
    {
     "os": "windows",
     "tech": "other",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/schildichat-revenge.md"
    },
    {
     "os": "linux",
     "tech": "other",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/schildichat-revenge.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "google-play"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "note": "matrix-rust-sdk through matrix-sdk-ffi; shares code with Element X"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/compose/destination/conversation/event/EventContentLayout.kt#L259",
     "note": "pattern match [Megolm]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/matrix/src/main/java/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt#L167",
     "note": "pattern match [cross-signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/model/account/AccountManagementViewModel.kt#L130",
     "note": "pattern match [recoveryKey]"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/matrix/src/main/java/io/element/android/libraries/matrix/api/MatrixClient.kt#L47",
     "note": "pattern match [SlidingSync]"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/matrix/src/main/java/io/element/android/libraries/sessionstorage/api/LoginType.kt#L14",
     "note": "pattern match [OIDC]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/model/conversation/ConversationViewModel.kt#L580",
     "note": "pattern match [m.thread]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/desktopMain/kotlin/chat/schildi/revenge/notification/SyncingNotificationProcessor.kt#L128",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/compose/destination/conversation/event/EventContentLayout.kt#L52",
     "note": "pattern match [CallInvite]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/matrix/src/main/java/io/element/android/libraries/matrix/api/MatrixClient.kt#L451",
     "note": "pattern match [Livekit]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/compose/destination/conversation/userlist/UserReactionRow.kt#L32",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/model/DraftRepo.kt#L192",
     "note": "pattern match [inReplyTo]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/model/DraftRepo.kt#L8",
     "note": "pattern match [ImagePack]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/actions/CommandSuggestionsProvider.kt#L72",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/matrix/src/main/java/io/element/android/libraries/matrix/api/MatrixClient.kt#L40",
     "note": "pattern match [m.location]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/model/conversation/ConversationViewModel.kt#L146",
     "note": "pattern match [VoiceMessage]"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/Dimens.kt#L154",
     "note": "pattern match [UrlPreview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/build.gradle.kts#L127",
     "note": "pattern match [unifiedpush]"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/model/RoomActionProvider.kt#L173",
     "note": "pattern match [ReadPrivate]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/matrix/src/main/java/io/element/android/libraries/matrix/impl/auth/RustMatrixAuthenticationService.kt#L447",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/model/MutualRoomsProvider.kt#L60",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/matrix/src/main/java/io/element/android/libraries/matrix/api/room/JoinedRoom.kt#L218",
     "note": "pattern match [reportContent]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/composeApp/src/jvmMain/kotlin/chat/schildi/revenge/compose/components/EditableImage.kt#L81",
     "note": "pattern match [contentDescription]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "not-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "note": "GPL-3.0; Kotlin Multiplatform with a Rust FFI build; about 1,200 files"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "If you used any AI/LLM, you should disclose it here.",
     "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/.github/PULL_REQUEST_TEMPLATE.md#L12"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at ff5d5ccea1",
      "first-parent history, last 365 days: 1,026 commits, none with AI trailers",
      "merged Element X history in the repo has 48 commits with Claude trailers (Element developers)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "schildichat-revenge.svg",
    "source": "https://github.com/SchildiChat/schildi-revenge/blob/ff5d5ccea1de587f70c255a4d099366abfa43a4a/graphics/ic_launcher.svg",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "The PR template asks contributors to confirm that the description is \"largely written by human hands\" and to choose between no AI, largely AI-generated, or AI-assisted (naming tools and models).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 957,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 2,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 86,
    "commits_365d": 957,
    "commits_90d": 217,
    "commits_all": 973,
    "first_commit": "2025-10-12T11:00:16+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.001,
     "HTML": 0.0024,
     "Kotlin": 0.9908,
     "Python": 0.0017,
     "Shell": 0.0039
    },
    "last_commit": "2026-11-02T08:01:43+00:00",
    "last_tag": "v26.10.26",
    "last_tag_date": "2026-10-26T16:56:15+01:00",
    "last_tag_repo": "https://github.com/SchildiChat/schildi-revenge",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Batch": 72,
     "HTML": 169,
     "Kotlin": 69431,
     "Prolog": 13,
     "Python": 122,
     "Shell": 270
    },
    "loc_total": 70077,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 16,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     1,
     0,
     11,
     32,
     13,
     47,
     49,
     69,
     45,
     13,
     22,
     24,
     4,
     2,
     15,
     15,
     28,
     15,
     14,
     24,
     25,
     21,
     7,
     5,
     20,
     10,
     12,
     26,
     23,
     27,
     6,
     9,
     1,
     0,
     10,
     13,
     33,
     26,
     20,
     24,
     11,
     2,
     14,
     19,
     10,
     4,
     37,
     23,
     19,
     14,
     24,
     19
    ]
   }
  },
  {
   "slug": "seaglass",
   "name": "Seaglass",
   "category": "client",
   "kind": "desktop",
   "homepage": null,
   "summary": "Native macOS Matrix client (Cocoa, MatrixSDK); its own room calls it \"truly dead\".",
   "repos": [
    {
     "url": "https://github.com/neilalexander/seaglass",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "macos"
   ],
   "apps": [
    {
     "os": "macos",
     "tech": "native",
     "min_os": "10.13",
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/neilalexander/seaglass/blob/dc9789334340753c64131f9dace677be6d16bc49/README.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-ios-sdk",
     "how": "claimed",
     "note": "MatrixSDK"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/neilalexander/seaglass/blob/dc9789334340753c64131f9dace677be6d16bc49/Seaglass/Controller/Main%20View/MainViewEncryptionController.swift#L78",
     "note": "pattern match [m.megolm]"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/neilalexander/seaglass/blob/dc9789334340753c64131f9dace677be6d16bc49/Seaglass/Controller/Main%20View/MainViewRoomController.swift#L280",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/neilalexander/seaglass/blob/dc9789334340753c64131f9dace677be6d16bc49/Seaglass/Model/MatrixServices.swift#L175",
     "note": "pattern match [setPresence]"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2019-06-02, so no commits in the last 365 days (HEAD dc97893343)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "seaglass.webp",
    "source": "https://github.com/neilalexander/seaglass/blob/dc9789334340753c64131f9dace677be6d16bc49/Seaglass/Assets.xcassets/AppIcon.appiconset/seaglass-512-2.png",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 8,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 485,
    "first_commit": "2018-06-05T09:09:41+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Ruby": 0.0224,
     "Shell": 0.0074,
     "Swift": 0.9698
    },
    "last_commit": "2019-06-02T16:50:42+00:00",
    "last_tag": "0.0.525-f5a1376",
    "last_tag_date": "2019-05-28T22:35:56+01:00",
    "last_tag_repo": "https://github.com/neilalexander/seaglass",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Gemfile": 2,
     "Ruby": 106,
     "Shell": 35,
     "Swift": 4599
    },
    "loc_total": 4742,
    "main_language": "Swift",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "simplematrixbotlib",
   "name": "Simple-Matrix-Bot-Lib",
   "category": "sdk",
   "kind": "Python",
   "homepage": "https://simple-matrix-bot-lib.readthedocs.io/",
   "summary": "An easy-to-use Python bot library built on matrix-nio.",
   "repos": [
    {
     "url": "https://codeberg.org/imbev/simplematrixbotlib",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://codeberg.org/imbev/simplematrixbotlib/src/commit/b6df3af19c1390f0c2202a4cb6590b8469d13651/doc/manual/encryption.md",
     "note": "through matrix-nio"
    },
    "crypto": "via matrix-nio",
    "sliding_sync": {
     "value": "not-found",
     "how": "code"
    },
    "oidc_auth": {
     "value": "not-found",
     "how": "code"
    },
    "threads": {
     "value": "not-found",
     "how": "code"
    },
    "spaces": {
     "value": "not-found",
     "how": "code"
    },
    "purpose": {
     "value": "bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "matrix-registration-bot",
     "matrix-rss-bridge"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 10 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at b6df3af19c13"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"Simple-Matrix-Bot-Lib\" (Stable, Python, maintainer: KrazyKirby99999). Last non-bot commit 2026-03-28, 10 non-bot commits in the last year and 0 authors in the last 90 days by our count at b6df3af19c13 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "fi-hg-matrix",
   "name": "SimpleMatrixClient (fi.hg.matrix)",
   "category": "sdk",
   "kind": "TypeScript",
   "homepage": "https://github.com/heusalagroup/fi.hg.matrix",
   "summary": "A lightweight, zero-dependency Matrix client library in TypeScript by Heusala Group.",
   "repos": [
    {
     "url": "https://github.com/heusalagroup/fi.hg.matrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "https://github.com/jryans/awesome-matrix"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/heusalagroup/fi.hg.matrix"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at eea37f09c223"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2024-02-10, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at eea37f09c223 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "singularity",
   "name": "Singularity",
   "category": "client",
   "kind": "desktop",
   "homepage": null,
   "summary": "Desktop Matrix client in Tauri (SvelteKit UI, Rust core on matrix-sdk).",
   "repos": [
    {
     "url": "https://github.com/Luxuride/singularity",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/singularity/",
    "other": []
   },
   "maturity": "alpha",
   "platforms": [
    "windows",
    "macos",
    "linux"
   ],
   "apps": [
    {
     "os": "windows",
     "tech": "tauri",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/singularity.md"
    },
    {
     "os": "macos",
     "tech": "tauri",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/singularity.md"
    },
    {
     "os": "linux",
     "tech": "tauri",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/singularity.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "source": "https://github.com/Luxuride/singularity/blob/9f9f7ddc26ff4cce5e7dc319936fb32f48000e34/src-tauri/Cargo.toml"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Luxuride/singularity/blob/9f9f7ddc26ff4cce5e7dc319936fb32f48000e34/src/lib/generated/types.ts#L522",
     "note": "pattern match [crossSigning]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Luxuride/singularity/blob/9f9f7ddc26ff4cce5e7dc319936fb32f48000e34/src/lib/generated/types.ts#L48",
     "note": "pattern match [recoveryKey]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Luxuride/singularity/blob/9f9f7ddc26ff4cce5e7dc319936fb32f48000e34/src/lib/components/navigation/shared/RoomSettingsDialog.svelte#L28",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Luxuride/singularity/blob/9f9f7ddc26ff4cce5e7dc319936fb32f48000e34/src-tauri/libs/types/src/event_types.rs#L3",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Luxuride/singularity/blob/9f9f7ddc26ff4cce5e7dc319936fb32f48000e34/src/lib/generated/types.ts#L98",
     "note": "pattern match [inReplyTo]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Luxuride/singularity/blob/9f9f7ddc26ff4cce5e7dc319936fb32f48000e34/src/lib/components/messaging/composer/MessageComposer.svelte#L265",
     "note": "pattern match [emoticon]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Luxuride/singularity/blob/9f9f7ddc26ff4cce5e7dc319936fb32f48000e34/src-tauri/libs/chat/src/emoji/pack_parsing.rs#L124",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Luxuride/singularity/blob/9f9f7ddc26ff4cce5e7dc319936fb32f48000e34/src-tauri/libs/protocol/src/events_schema.rs#L515",
     "note": "pattern match [m.location]"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Luxuride/singularity/blob/9f9f7ddc26ff4cce5e7dc319936fb32f48000e34/src/lib/components/navigation/shared/RoomSettingsDialog.svelte#L231",
     "note": "pattern match [aria-label]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "GPL-3.0; Tauri v2 + SvelteKit, dev container provided; about 290 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "config-only",
     "evidence": [
      ".github/copilot-instructions.md at 9f9f7ddc26",
      "no AI-attributed commits in 206 commits of the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "singularity.webp",
    "source": "https://github.com/Luxuride/singularity/blob/9f9f7ddc26ff4cce5e7dc319936fb32f48000e34/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05",
    "backing": "light"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 202,
     "share_365d": 0,
     "suggested_dev_usage": "config-only",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 7,
    "commits_365d": 202,
    "commits_90d": 71,
    "commits_all": 202,
    "first_commit": "2026-03-13T12:02:40+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0014,
     "JavaScript": 0.009,
     "Rust": 0.6258,
     "SQL": 0.0027,
     "Shell": 0.0021,
     "Svelte": 0.2652,
     "TypeScript": 0.0931
    },
    "last_commit": "2026-10-21T10:44:55+00:00",
    "last_tag": "v0.0.5",
    "last_tag_date": "2026-10-21T15:04:37+02:00",
    "last_tag_repo": "https://github.com/Luxuride/singularity",
    "licence_detected": "GPL-3.0",
    "loc": {
     "CSS": 4,
     "Dockerfile": 30,
     "HTML": 13,
     "JavaScript": 197,
     "Rust": 13676,
     "SQL": 59,
     "Shell": 45,
     "Svelte": 5797,
     "TypeScript": 2034
    },
    "loc_total": 21855,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 5,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     42,
     22,
     3,
     13,
     0,
     46,
     5,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     10,
     0,
     0,
     0,
     10,
     17,
     27,
     0,
     3,
     4,
     0,
     0
    ]
   }
  },
  {
   "slug": "sliding-sync-proxy",
   "name": "Sliding Sync proxy",
   "category": "server",
   "kind": "sync proxy (MSC3575)",
   "homepage": null,
   "summary": "Proxy implementing the MSC3575 sliding sync protocol in front of any homeserver; archived, superseded by native MSC4186.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/sliding-sync",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "lane prompt"
    ]
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "language": "Go",
    "database": "PostgreSQL",
    "msc": [
     {
      "msc": 3575,
      "state": "unstable",
      "source": "https://github.com/matrix-org/sliding-sync/blob/c376f7f1dd13f14b97584ac456c8c33011a0145c/sync3/sort.go#L188",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4102,
      "state": "unstable",
      "source": "https://github.com/matrix-org/sliding-sync/blob/c376f7f1dd13f14b97584ac456c8c33011a0145c/state/receipt_table.go#L179",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4115,
      "state": "stable",
      "source": "https://github.com/matrix-org/sliding-sync/blob/c376f7f1dd13f14b97584ac456c8c33011a0145c/sync2/handler2/handler.go#L268",
      "note": "referenced in code; MSC is in the spec"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "c376f7f1dd13f14b97584ac456c8c33011a0145c"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "README: \"The proxy is no longer being worked on and is now archived.\" Homeservers now implement simplified sliding sync natively. Element's AI policy (element-meta CONTRIBUTING.md) covers matrix-org repos where Element is the core contributor; not applied here (archived, scope unclear).",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 25,
    "authors_by_quarter": {
     "2023-Q1": 6,
     "2023-Q2": 6,
     "2023-Q3": 7,
     "2023-Q4": 4,
     "2024-Q1": 3,
     "2024-Q2": 7,
     "2024-Q3": 3,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 1,
    "commits_90d": 0,
    "commits_all": 1603,
    "first_commit": "2021-05-13T15:25:42+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0029,
     "Go": 0.968,
     "HTML": 0.0014,
     "JavaScript": 0.0261
    },
    "last_commit": "2025-11-17T12:14:51+00:00",
    "last_tag": "v0.99.19",
    "last_tag_date": "2024-06-28T16:20:42+01:00",
    "last_tag_repo": "https://github.com/matrix-org/sliding-sync",
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 128,
     "Dockerfile": 16,
     "Go": 42503,
     "HTML": 61,
     "JavaScript": 1144,
     "SQL": 22,
     "Shell": 33
    },
    "loc_total": 43907,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "smallbot-matrix",
   "name": "smallbot-matrix",
   "category": "sdk",
   "kind": "TypeScript",
   "homepage": "https://github.com/cybertim/SmallBotMatrix",
   "summary": "A small TypeScript bot library for Matrix.",
   "repos": [
    {
     "url": "https://github.com/cybertim/SmallBotMatrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": []
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "threads": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "spaces": {
     "value": "not-found",
     "note": "not checked: inactive or small library, only the activity was read"
    },
    "purpose": {
     "value": "bot",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 0 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 3574c2e4b68d"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library; its code was not read for AI features (inactive or small library), and its matrix.org description mentions none.",
     "source": null
    }
   },
   "notes": "matrix.org lists it as \"smallbot-matrix\" (Obsolete, TypeScript, maintainer: cybertim). Last non-bot commit 2021-09-13, 0 non-bot commits in the last year and 0 authors in the last 90 days by our count at 3574c2e4b68d (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "small-talk",
   "name": "SmallTalk",
   "category": "client",
   "kind": "mobile",
   "homepage": null,
   "summary": "Tiny Android Matrix messenger with its own Kotlin Matrix implementation.",
   "repos": [
    {
     "url": "https://github.com/ouchadam/small-talk",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "android"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "native",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/ouchadam/small-talk/blob/5a391676d0d482596fe5d270798c2b361dba67e7/README.md"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own",
     "how": "code",
     "note": "own Kotlin modules, with matrix-sdk-crypto-js for crypto"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ouchadam/small-talk/blob/5a391676d0d482596fe5d270798c2b361dba67e7/settings.gradle#L47",
     "note": "pattern match [firebase:messaging]"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ouchadam/small-talk/blob/5a391676d0d482596fe5d270798c2b361dba67e7/.github/workflows/test.yml#L34",
     "note": "pattern match [/report]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/ouchadam/small-talk/blob/5a391676d0d482596fe5d270798c2b361dba67e7/design-library/src/main/kotlin/app/dapk/st/design/components/Icon.kt#L52",
     "note": "pattern match [contentDescription]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/ouchadam/small-talk/blob/5a391676d0d482596fe5d270798c2b361dba67e7/domains/firebase/crashlytics/build.gradle",
     "note": "Firebase Crashlytics module in the build; opt-in or not was not checked"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2023-05-13, so no commits in the last 365 days (HEAD 5a391676d0)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "small-talk.webp",
    "source": "https://github.com/ouchadam/small-talk/blob/5a391676d0d482596fe5d270798c2b361dba67e7/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05",
    "backing": "dark"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 586,
    "first_commit": "2022-02-27T21:48:14+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0058,
     "Gradle": 0.0547,
     "JavaScript": 0.0282,
     "Kotlin": 0.897,
     "Prolog": 0.002,
     "Shell": 0.0123
    },
    "last_commit": "2023-01-26T21:25:04+00:00",
    "last_tag": "23/01/01.1",
    "last_tag_date": "2023-01-08T12:36:26+00:00",
    "last_tag_repo": "https://github.com/ouchadam/small-talk",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Batch": 70,
     "Gradle": 665,
     "JavaScript": 343,
     "Kotlin": 10896,
     "Prolog": 24,
     "Shell": 149
    },
    "loc_total": 12147,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Firebase Crashlytics"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "spectral",
   "name": "Spectral",
   "category": "client",
   "kind": "desktop",
   "homepage": null,
   "summary": "Qt/QML desktop client built on libQuotient; development stopped in early 2021, and NeoChat started as a fork of it.",
   "repos": [
    {
     "url": "https://gitlab.com/spectral-im/spectral",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "LinuxLinks, \"Best Free and Open Source Matrix Clients\" (published 2026-08-10), https://www.linuxlinks.com/best-free-open-source-matrix-clients/"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "linux",
    "windows",
    "macos"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "qt",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/details/org.eu.encom.spectral"
      }
     ],
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/README.md"
    },
    {
     "os": "windows",
     "tech": "qt",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/.appveyor.yml"
    },
    {
     "os": "macos",
     "tech": "qt",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/.gitlab-ci.yml#L48"
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "flathub",
    "fedora"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "libQuotient",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/.gitmodules",
     "note": "libQuotient as a git submodule; README also credits C++ models taken from Quaternion."
    },
    "e2ee": {
     "value": "no",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/src/spectralroom.cpp#L374",
     "note": "Only shows the \"activated End-to-End Encryption\" state event; no handling of encrypted messages found in the client code."
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "no",
     "note": "Last commit 2021-01-13",
     "before sliding sync existed in any form.": null
    },
    "oidc_auth": {
     "value": "no",
     "note": "Last commit 2021-01-13",
     "before MSC3861.": null
    },
    "multi_account": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/src/controller.cpp#L84",
     "note": "The controller keeps a list of connections, with an account switcher in the UI."
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/src/spectralroom.cpp#L571"
    },
    "edits": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/src/messageeventmodel.cpp#L133",
     "note": "Shows replaced (edited) messages; sending edits not found."
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/src/spectralroom.cpp#L498"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/src/spectralroom.cpp#L473",
     "note": "Recognises the m.location message type; sending a location not found."
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/src/notifications/managerlinux.cpp#L12",
     "note": "Desktop notifications (D-Bus on Linux, WinToast on Windows); no push gateway (it is a desktop client)."
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/imports/Spectral/Dialog/UserDetailDialog.qml#L218",
     "note": "Kick a user and redact messages; no ban button found in the UI."
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found",
     "note": "No translation files in the repo."
    },
    "telemetry": {
     "value": "none-found",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/tree/30028a278860af270949f55bdf931455082ea449",
     "note": "No analytics or crash-report SDK found in the source or CMake files."
    },
    "default_homeserver": {
     "value": "matrix.org",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/imports/Spectral/Dialog/LoginHomeserverDialog.qml#L40",
     "note": "The login dialog's homeserver field is pre-filled with https://matrix.org."
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/CMakeLists.txt#L45",
     "note": "About 17k lines (C++ and QML), CMake, Qt 5.12 and a libQuotient submodule pinned to a 2020-era commit; GPL-3.0. NeoChat is the maintained fork."
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "No agent files at 30028a27; last commit 2021-01-13, so no commits in the last 365 days."
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "spectral.webp",
    "source": "https://gitlab.com/spectral-im/spectral/-/blob/30028a278860af270949f55bdf931455082ea449/assets/img/icon.png",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Not on the matrix.org clients list; found through the LinuxLinks roundup, which still lists it. The default branch's last commit is 2021-01-13 and the GitLab project's last activity 2022-08-28 (API, checked 2026-11-05); the forge does not mark it archived. Flathub marks org.eu.encom.spectral end-of-life (\"This application is no longer maintained.\", https://flathub.org/api/v2/eol/message) and lists org.vranki.spectral as its rebase target (https://flathub.org/api/v2/eol/rebase); the last Flathub release is 648 (2019-05-22). The former homepage spectral.im, linked from the GitLab description and the README's docs links, now serves an unrelated site, so homepage is null. NeoChat's README says \"NeoChat is a fork of Spectral\" (https://invent.kde.org/network/neochat/-/blob/2bcdbc0f7ba8eb25ba4a21c06f2a4da7d498533b/README.md). Licence: LICENSE is GPL-3.0 and the one source header present says \"version 3 of the License, or (at your option) any later version\"; the AppStream file says GPL-3.0. Fedora packaging per the README; not re-checked. Searched GitLab issues for AI, LLM, ChatGPT, Copilot, \"generated\": nothing about AI.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 17,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 779,
    "first_commit": "2018-02-23T14:39:14+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0743,
     "C++": 0.4892,
     "CMake": 0.0312,
     "Objective C++": 0.0023,
     "QML": 0.4029
    },
    "last_commit": "2021-01-14T06:50:17+00:00",
    "last_tag": "854",
    "last_tag_date": "2020-04-15T19:44:53-07:00",
    "last_tag_repo": "https://gitlab.com/spectral-im/spectral",
    "licence_detected": "GPL-3.0",
    "loc": {
     "C Header": 948,
     "C++": 6242,
     "CMake": 398,
     "Objective C++": 29,
     "QML": 5141,
     "Windows Resource-Definition Script": 1
    },
    "loc_total": 12759,
    "main_language": "C++",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "sydent",
   "name": "Sydent",
   "category": "tool",
   "kind": "identity-server",
   "homepage": "https://github.com/element-hq/sydent",
   "summary": "The reference Matrix identity server, which maps email addresses and phone numbers to Matrix IDs.",
   "repos": [
    {
     "url": "https://github.com/element-hq/sydent",
     "forge": "github",
     "role": "main"
    },
    {
     "url": "https://github.com/matrix-org/sydent",
     "forge": "github",
     "role": "other"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only OR LicenseRef-Element-Commercial",
   "fork_of": null,
   "distribution": [
    "docker",
    "pypi"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "identity server (3PID lookup and binding)",
     "how": "claimed",
     "source": "https://github.com/element-hq/sydent/blob/a4d741165ee25fc129e9c478e23c4d3b38678c1f/README.rst"
    },
    "framework": {
     "value": "own (Python, Twisted)",
     "how": "claimed",
     "source": "https://github.com/element-hq/sydent/blob/a4d741165ee25fc129e9c478e23c4d3b38678c1f/README.rst"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/element-hq/sydent/blob/a4d741165ee25fc129e9c478e23c4d3b38678c1f/README.rst",
     "note": "not applicable"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/element-hq/sydent/blob/a4d741165ee25fc129e9c478e23c4d3b38678c1f/README.rst",
     "note": "pip or Docker"
    },
    "config": {
     "value": "config file and environment variables",
     "how": "claimed",
     "source": "https://github.com/element-hq/sydent/blob/a4d741165ee25fc129e9c478e23c4d3b38678c1f/README.rst"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "claimed",
     "source": "https://github.com/element-hq/sydent/blob/a4d741165ee25fc129e9c478e23c4d3b38678c1f/README.rst"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md#L26",
     "note": "Element-wide policy in element-meta CONTRIBUTING.md (added 2026-11-02), which says it applies to all element-hq repositories; the repo's own CONTRIBUTING does not link it yet. Commit messages may be AI-drafted if reviewed; reviews may use AI tools, but only a human approves or closes a PR."
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 4 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at a4d741165ee2"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Dual-licensed by Element (AGPL v3 or a commercial licence). matrix-org/sydent is archived; development continues at element-hq/sydent. One non-bot commit author in the last 365 days.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 4,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 46,
    "authors_by_quarter": {
     "2023-Q1": 3,
     "2023-Q2": 2,
     "2023-Q3": 3,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 1,
     "2025-Q3": 3,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 4,
    "commits_90d": 0,
    "commits_all": 720,
    "first_commit": "2014-08-12T14:06:26+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0013,
     "Dockerfile": 0.003,
     "HTML": 0.0059,
     "Jinja": 0.0746,
     "Python": 0.9033,
     "SQL": 0.0049,
     "Shell": 0.0052,
     "Systemd": 0.0017
    },
    "last_commit": "2026-06-05T13:11:07+00:00",
    "last_tag": "v2.7.0",
    "last_tag_date": "2025-07-18T01:30:18-04:00",
    "last_tag_repo": "https://github.com/element-hq/sydent",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "BASH": 24,
     "Dockerfile": 58,
     "HTML": 112,
     "Jinja": 1422,
     "Python": 17222,
     "SQL": 94,
     "Shell": 83,
     "Systemd": 32
    },
    "loc_total": 19047,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     1,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "sygnal",
   "name": "Sygnal",
   "category": "tool",
   "kind": "push-gateway",
   "homepage": "https://github.com/element-hq/sygnal",
   "summary": "The reference Matrix push gateway, relaying homeserver push notifications to APNs, Firebase (GCM/FCM) and WebPush.",
   "repos": [
    {
     "url": "https://github.com/element-hq/sygnal",
     "forge": "github",
     "role": "main"
    },
    {
     "url": "https://github.com/matrix-org/sygnal",
     "forge": "github",
     "role": "other"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "matrix.org community space (#community:matrix.org), sources/community-space.tsv"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only OR LicenseRef-Element-Commercial",
   "fork_of": null,
   "distribution": [
    "docker",
    "pypi"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "push gateway (APNs, FCM/GCM, WebPush)",
     "how": "code",
     "source": "https://github.com/element-hq/sygnal/blob/710f0f60a129139a6968fc65b1ed84dfe76c47fd/sygnal/gcmpushkin.py"
    },
    "framework": {
     "value": "own (Python, Twisted)",
     "how": "claimed",
     "source": "https://github.com/element-hq/sygnal/blob/710f0f60a129139a6968fc65b1ed84dfe76c47fd/README.md"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/element-hq/sygnal/blob/710f0f60a129139a6968fc65b1ed84dfe76c47fd/README.md",
     "note": "not applicable: forwards push payloads"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/element-hq/sygnal/blob/710f0f60a129139a6968fc65b1ed84dfe76c47fd/README.md",
     "note": "pip or Docker; run by app publishers"
    },
    "config": {
     "value": "sygnal.yaml",
     "how": "claimed",
     "source": "https://github.com/element-hq/sygnal/blob/710f0f60a129139a6968fc65b1ed84dfe76c47fd/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "claimed",
     "source": "https://github.com/element-hq/sygnal/blob/710f0f60a129139a6968fc65b1ed84dfe76c47fd/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md#L26",
     "note": "Element-wide policy in element-meta CONTRIBUTING.md (added 2026-11-02), which says it applies to all element-hq repositories; the repo's own CONTRIBUTING does not link it yet. Commit messages may be AI-drafted if reviewed; reviews may use AI tools, but only a human approves or closes a PR."
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 10 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 710f0f60a129"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Dual-licensed by Element: AGPL v3 (\"version 3 of the License\", no \"or later\") or an Element commercial licence. The old matrix-org/sygnal repo is archived; development continues at element-hq/sygnal. CONTRIBUTING.md has no statement on AI.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 10,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 4,
    "authors_90d": 1,
    "authors_all": 53,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 3,
     "2023-Q3": 3,
     "2023-Q4": 3,
     "2024-Q1": 3,
     "2024-Q2": 2,
     "2024-Q3": 1,
     "2024-Q4": 3,
     "2025-Q1": 1,
     "2025-Q2": 4,
     "2025-Q3": 3,
     "2025-Q4": 3,
     "2026-Q1": 1,
     "2026-Q2": 2,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 10,
    "commits_90d": 2,
    "commits_all": 462,
    "first_commit": "2014-12-18T15:52:08+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0075,
     "Python": 0.9691,
     "Shell": 0.0234
    },
    "last_commit": "2026-09-18T09:05:32+00:00",
    "last_tag": "v0.17.0",
    "last_tag_date": "2025-11-05T15:05:55+00:00",
    "last_tag_repo": "https://github.com/element-hq/sygnal",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 84,
     "Python": 10425,
     "Shell": 243
    },
    "loc_total": 10752,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 1,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     1,
     1,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     1,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "synadm",
   "name": "synadm",
   "category": "tool",
   "kind": "admin-cli",
   "homepage": "https://synadm.readthedocs.io",
   "summary": "A command-line admin tool for Synapse that wraps its Admin API (users, rooms, media, registration tokens, …).",
   "repos": [
    {
     "url": "https://codeberg.org/synadm/synadm",
     "forge": "forgejo",
     "role": "main"
    },
    {
     "url": "https://github.com/JOJ0/synadm",
     "forge": "github",
     "role": "other"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search for Synapse admin tools (the GitHub repo is archived and points to Codeberg), 2026-11-05",
     "GitHub search, repositories sorted by stars, 2026-11-05"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "pypi"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "homeserver admin CLI (Synapse admin API)",
     "how": "claimed",
     "source": "https://codeberg.org/synadm/synadm/src/commit/fd8dae877a63e538e9175b938c29a9c4bb69e642/README.md"
    },
    "framework": {
     "value": "own (Python, click)",
     "how": "claimed",
     "source": "https://codeberg.org/synadm/synadm/src/commit/fd8dae877a63e538e9175b938c29a9c4bb69e642/README.md"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://codeberg.org/synadm/synadm/src/commit/fd8dae877a63e538e9175b938c29a9c4bb69e642/README.md",
     "note": "not applicable: an admin API client"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://codeberg.org/synadm/synadm/src/commit/fd8dae877a63e538e9175b938c29a9c4bb69e642/README.md",
     "note": "pip, run by an admin"
    },
    "config": {
     "value": "https://codeberg.org/synadm/synadm/commit//.config/synadm.yaml via an interactive configurator",
     "how": "claimed",
     "source": "https://codeberg.org/synadm/synadm/src/commit/fd8dae877a63e538e9175b938c29a9c4bb69e642/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "claimed",
     "source": "https://codeberg.org/synadm/synadm/src/commit/fd8dae877a63e538e9175b938c29a9c4bb69e642/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 7 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at fd8dae877a63"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Moved from GitHub (JOJ0/synadm, now archived) to Codeberg. LICENSE is the GNU GPL v3 (-only vs -or-later not checked). CONTRIBUTING.md has no statement on AI.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 7,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 23,
    "authors_by_quarter": {
     "2023-Q1": 4,
     "2023-Q2": 2,
     "2023-Q3": 2,
     "2023-Q4": 3,
     "2024-Q1": 2,
     "2024-Q2": 1,
     "2024-Q3": 2,
     "2024-Q4": 3,
     "2025-Q1": 2,
     "2025-Q2": 2,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 7,
    "commits_90d": 0,
    "commits_all": 842,
    "first_commit": "2020-10-22T07:03:02+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0022,
     "Makefile": 0.0022,
     "Python": 0.9837,
     "Shell": 0.0119
    },
    "last_commit": "2026-07-04T16:23:33+00:00",
    "last_tag": "v0.49.2",
    "last_tag_date": "2025-10-15T21:03:23+02:00",
    "last_tag_repo": "https://codeberg.org/synadm/synadm",
    "licence_detected": "GPL-3.0",
    "loc": {
     "CSS": 18,
     "Makefile": 18,
     "Python": 7903,
     "Shell": 98
    },
    "loc_total": 8037,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     7,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "synapse",
   "name": "Synapse",
   "category": "server",
   "kind": "homeserver",
   "homepage": "https://element-hq.github.io/synapse/",
   "summary": "The reference Matrix homeserver, written in Python/Twisted with Rust modules, maintained by Element.",
   "repos": [
    {
     "url": "https://github.com/element-hq/synapse",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml",
     "sources/community-space.tsv (Servers/Hosting)"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later OR LicenseRef-Element-Commercial",
   "fork_of": null,
   "distribution": [
    "docker",
    "debian",
    "pypi"
   ],
   "funding": [],
   "features": {
    "language": "Python, Rust",
    "database": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/docs/usage/configuration/config_documentation.md#L1527",
     "note": "PostgreSQL (recommended), SQLite"
    },
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L139",
     "versions": [
      "r0.0.1",
      "r0.1.0",
      "r0.2.0",
      "r0.3.0",
      "r0.4.0",
      "r0.5.0",
      "r0.6.0",
      "r0.6.1",
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.6",
      "v1.7",
      "v1.8",
      "v1.9",
      "v1.10",
      "v1.11",
      "v1.12",
      "v1.13",
      "v1.14",
      "v1.15",
      "v1.16",
      "v1.17"
     ]
    },
    "appservices": {
     "value": "yes",
     "how": "claimed"
    },
    "admin_api": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/element-hq/synapse/tree/e3b6b231f6108981a1696ba21a660ebfec87694b/docs/admin_api"
    },
    "oidc_delegation": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/docs/usage/configuration/config_documentation.md#L701",
     "note": "delegates auth to Matrix Authentication Service via the matrix_authentication_service option"
    },
    "native_sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L120",
     "note": "MSC4186: unstable"
    },
    "workers_scaling": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/docs/workers.md"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/federation/transport/server/federation.py#L817",
     "note": "MSC3916: stable"
    },
    "resource_needs": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/docs/setup/installation.md#L215",
     "note": "\"At least 1GB of free RAM if you want to join large public rooms like #matrix:matrix.org\""
    },
    "msc": [
     {
      "msc": 1301,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/profile.py#L1029",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 1442,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/room_versions.rs#L68",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 1497,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L31",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 1659,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/room_versions.rs#L45",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 1721,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/login.py#L145",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 1756,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L307",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 1763,
      "state": "experimental",
      "flag": "experimental_features.msc1763_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L71",
      "note": "behind a config option"
     },
     {
      "msc": 1767,
      "state": "experimental",
      "flag": "experimental_features.msc1767_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L166",
      "note": "behind a config option"
     },
     {
      "msc": 1772,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/api.py#L97",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 1884,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/room_versions.rs#L48",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2000,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/schema/synapse-config.schema.yaml#L4918",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2078,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/identity.py#L467",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2174,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/events/builder.py#L327",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2175,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/api/constants.py#L285",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2176,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/events/utils.rs#L182",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2197,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/federation/transport/client.py#L532",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2209,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/room_versions.rs#L119",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2261,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/sync.py#L1495",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2265,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/util/threepids.py#L86",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2285,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L311",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 2326,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L306",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 2409,
      "state": "experimental",
      "flag": "experimental_features.msc2409_to_device_messages_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L84",
      "note": "behind a config option"
     },
     {
      "msc": 2432,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L308",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 2654,
      "state": "experimental",
      "flag": "experimental_features.msc2654_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L112",
      "note": "behind a config option"
     },
     {
      "msc": 2659,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L317",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 2666,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L309",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 2676,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/room.py#L1216",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2677,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/api/errors.py#L134",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2697,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/devices.py#L334",
      "note": "unstable prefix in code"
     },
     {
      "msc": 2716,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/message.py#L626",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2753,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/sytest-blacklist#L29",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 2815,
      "state": "experimental",
      "flag": "experimental_features.msc2815_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L316",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 2858,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/oidc.py#L80",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2918,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/registration.py#L172",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2946,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/federation/transport/client.py#L834",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2965,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/docker/configure_workers_and_start.py#L187",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2967,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/api/auth/mas.py#L59",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3026,
      "state": "experimental",
      "flag": "experimental_features.msc3026_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L310",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 3083,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/api/constants.py#L120",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3173,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/api.py#L99",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3202,
      "state": "experimental",
      "flag": "experimental_features.msc3202_transaction_extensions",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/appservice.py#L205",
      "note": "behind a config option"
     },
     {
      "msc": 3381,
      "state": "experimental",
      "flag": "experimental_features.msc3381_polls_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L158",
      "note": "behind a config option"
     },
     {
      "msc": 3389,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/events/utils.rs#L244",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3391,
      "state": "experimental",
      "flag": "experimental_features.msc3391_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L323",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 3440,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L313",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 3575,
      "state": "unstable",
      "flag": "experimental_features.msc3575_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L329",
      "note": "advertised in unstable_features; config option on by default"
     },
     {
      "msc": 3664,
      "state": "experimental",
      "flag": "experimental_features.msc3664_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L129",
      "note": "behind a config option"
     },
     {
      "msc": 3720,
      "state": "experimental",
      "flag": "experimental_features.msc3720_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L106",
      "note": "behind a config option"
     },
     {
      "msc": 3757,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/room_versions.rs#L145",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3771,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L314",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 3773,
      "state": "experimental",
      "flag": "experimental_features.msc3773_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L315",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 3787,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/api/constants.py#L122",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3814,
      "state": "experimental",
      "flag": "experimental_features.msc3814_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L77",
      "note": "behind a config option"
     },
     {
      "msc": 3818,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/room.py#L555",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3820,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/room_versions.rs#L122",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3823,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/api/errors.py#L104",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3827,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L312",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 3848,
      "state": "experimental",
      "flag": "experimental_features.msc3848_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L132",
      "note": "behind a config option"
     },
     {
      "msc": 3852,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/devices.py#L68",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3861,
      "state": "experimental",
      "flag": "experimental_features.msc3861_config",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L181",
      "note": "behind a config option"
     },
     {
      "msc": 3866,
      "state": "experimental",
      "flag": "experimental_features.MSC3866Config",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L41",
      "note": "behind a config option"
     },
     {
      "msc": 3871,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/pagination.py#L616",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3874,
      "state": "experimental",
      "flag": "experimental_features.msc3874_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L320",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 3881,
      "state": "experimental",
      "flag": "experimental_features.msc3881_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L319",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 3882,
      "state": "experimental",
      "flag": "auth.login_via_existing_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L318",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 3884,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/sliding_sync/extensions.py#L407",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3885,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/sliding_sync/extensions.py#L331",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3890,
      "state": "experimental",
      "flag": "experimental_features.msc3890_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L147",
      "note": "behind a config option"
     },
     {
      "msc": 3895,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/api/errors.py#L118",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3912,
      "state": "experimental",
      "flag": "experimental_features.msc3912_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L321",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 3916,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/federation/transport/server/federation.py#L817",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3925,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/events/serialize.rs#L368",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3930,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/push/base_rules.rs#L307",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3931,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/push/evaluator.rs#L42",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3932,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/push/base_rules.rs#L421",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3933,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/push/base_rules.rs#L406",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3959,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/sliding_sync/extensions.py#L462",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3960,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/sliding_sync/extensions.py#L695",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3961,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/sliding_sync/extensions.py#L901",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3967,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/keys.py#L539",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3970,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/transactions.py#L70",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3981,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L322",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 3983,
      "state": "experimental",
      "flag": "experimental_features.msc3983_appservice_otk_claims",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L96",
      "note": "behind a config option"
     },
     {
      "msc": 3984,
      "state": "experimental",
      "flag": "experimental_features.msc3984_appservice_key_query",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L101",
      "note": "behind a config option"
     },
     {
      "msc": 4028,
      "state": "experimental",
      "flag": "experimental_features.msc4028_push_encrypted_events",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L325",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4069,
      "state": "experimental",
      "flag": "experimental_features.msc4069_profile_inhibit_propagation",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L324",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4075,
      "state": "experimental",
      "flag": "experimental_features.msc4075_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L198",
      "note": "behind a config option"
     },
     {
      "msc": 4076,
      "state": "experimental",
      "flag": "experimental_features.msc4076_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L273",
      "note": "behind a config option"
     },
     {
      "msc": 4102,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/storage/databases/main/receipts.py#L85",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4108,
      "state": "experimental",
      "flag": "experimental_features.msc4108_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L326",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4115,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/events/constants.rs#L83",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4133,
      "state": "experimental",
      "flag": "experimental_features.msc4133_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L330",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4140,
      "state": "experimental",
      "flag": "server.msc4140_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L328",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4143,
      "state": "experimental",
      "flag": "experimental_features.msc4143_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L341",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4151,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/reporting.py#L117",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4155,
      "state": "experimental",
      "flag": "experimental_features.msc4155_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L332",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4156,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/knock.py#L74",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4163,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/federation/federation_server.py#L598",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4169,
      "state": "experimental",
      "flag": "experimental_features.msc4169_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L334",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4186,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L120",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4190,
      "state": "experimental",
      "flag": "experimental_features.msc4190_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/appservice.py#L217",
      "note": "behind a config option"
     },
     {
      "msc": 4203,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/appservice/api.py#L372",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4210,
      "state": "unstable",
      "flag": "experimental_features.msc4210_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L270",
      "note": "config option, on by default"
     },
     {
      "msc": 4222,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/sync.py#L240",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4235,
      "state": "experimental",
      "flag": "experimental_features.msc4235_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L282",
      "note": "behind a config option"
     },
     {
      "msc": 4242,
      "state": "experimental",
      "flag": "experimental_features.msc4242_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L172",
      "note": "behind a config option"
     },
     {
      "msc": 4260,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/reporting.py#L159",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4262,
      "state": "experimental",
      "flag": "server.include_profile_updates_in_sync",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L335",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4263,
      "state": "experimental",
      "flag": "experimental_features.msc4263_limit_key_queries_to_users_who_share_rooms",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L285",
      "note": "behind a config option"
     },
     {
      "msc": 4267,
      "state": "experimental",
      "flag": "experimental_features.msc4267_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L291",
      "note": "behind a config option"
     },
     {
      "msc": 4277,
      "state": "experimental",
      "flag": "experimental_features.msc4277_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L279",
      "note": "behind a config option"
     },
     {
      "msc": 4284,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/federation/transport/client.py#L175",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4289,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/room_versions.rs#L147",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4291,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/events/serialize.rs#L533",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4293,
      "state": "experimental",
      "flag": "experimental_features.msc4293_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L297",
      "note": "behind a config option"
     },
     {
      "msc": 4297,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/room_versions.rs#L71",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4306,
      "state": "experimental",
      "flag": "experimental_features.msc4306_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L333",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4308,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L300",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4311,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/room_versions.rs#L167",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4312,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/auth.py#L85",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4319,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/sync.py#L492",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4326,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/api/errors.py#L159",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4354,
      "state": "experimental",
      "flag": "experimental_features.msc4354_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L336",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4370,
      "state": "experimental",
      "flag": "experimental_features.msc4370_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L210",
      "note": "behind a config option"
     },
     {
      "msc": 4380,
      "state": "stable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L337",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 4388,
      "state": "experimental",
      "flag": "experimental_features.msc4388_mode",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L235",
      "note": "behind a config option"
     },
     {
      "msc": 4426,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/profile.py#L69",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4429,
      "state": "experimental",
      "flag": "server.include_profile_updates_in_sync",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L338",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4445,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L339",
      "note": "advertised in unstable_features, on by default"
     },
     {
      "msc": 4446,
      "state": "experimental",
      "flag": "experimental_features.msc4446_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L343",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4450,
      "state": "experimental",
      "flag": "experimental_features.msc4450_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L317",
      "note": "behind a config option"
     },
     {
      "msc": 4452,
      "state": "experimental",
      "flag": "experimental_features.msc4452_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L321",
      "note": "behind a config option"
     },
     {
      "msc": 4455,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L319",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4480,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/handlers/sliding_sync/extensions.py#L1039",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4491,
      "state": "experimental",
      "flag": "experimental_features.msc4491_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L340",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4502,
      "state": "experimental",
      "flag": "experimental_features.msc4502_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/rust/src/handlers/versions.rs#L344",
      "note": "advertised in unstable_features when enabled"
     },
     {
      "msc": 4508,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/types/rest/client/__init__.py#L380",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4512,
      "state": "experimental",
      "flag": "experimental_features.msc4512_enabled",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/config/experimental.py#L327",
      "note": "behind a config option"
     },
     {
      "msc": 4528,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/federation/federation_client.py#L1459",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4537,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/rest/client/profile.py#L183",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4548,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/types/rest/client/__init__.py#L346",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4551,
      "state": "unstable",
      "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/synapse/types/rest/client/__init__.py#L363",
      "note": "referenced in code, no flag found; extent not checked"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "AI-assisted contributions are accepted; unreviewed AI output is not. [...] If your PR was made with the help of AI, you must convey that this is the case using the PR template.",
     "source": "https://github.com/element-hq/element-meta/blob/ea731f1fc96190b2214538c76d95ee34e00400cd/CONTRIBUTING.md#L26",
     "note": "Element-wide policy in element-meta CONTRIBUTING.md (added 2026-11-02), which says it applies to all element-hq repositories; the repo's own CONTRIBUTING does not link it yet. Commit messages may be AI-drafted if reviewed; reviews may use AI tools, but only a human approves or closes a PR."
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "27 of 786 non-bot commits in the last 365 days (3.4 %) carry an AI co-author trailer or similar",
      "https://github.com/element-hq/synapse/commit/45175f2247cad19b77ec7c02a1edebf1f50f4aef",
      "https://github.com/element-hq/synapse/commit/dec679de1cae379e42ef031971dc4173fc00d71e",
      "https://github.com/element-hq/synapse/commit/6472b6a937d01e185f73b10b99b1e9bcb146c1e4"
     ],
     "checked_at": "e3b6b231f6108981a1696ba21a660ebfec87694b"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "synapse.svg",
    "source": "https://github.com/element-hq/synapse/blob/e3b6b231f6108981a1696ba21a660ebfec87694b/docs/favicon.svg",
    "licence": "AGPL-3.0-or-later OR LicenseRef-Element-Commercial",
    "note": null,
    "checked": "2026-11-05",
    "backing": "light"
   },
   "notes": "A user asked for a no-LLM policy in https://github.com/element-hq/synapse/issues/19793, which was moved to https://github.com/element-hq/element-meta/issues/3225 and closed as completed on 2026-11-03; Element's answer is the AI policy in element-meta CONTRIBUTING.md (see ai.policy). The issue comments were not readable from this session. Synapse Pro (closed source, Element) is a separate listing. Spec versions come from rust/src/handlers/versions.rs (the /versions handler moved to Rust).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 27,
     "commits_365d": 728,
     "share_365d": 0.0371,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 21,
      "copilot": 6
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 85,
    "authors_90d": 43,
    "authors_all": 642,
    "authors_by_quarter": {
     "2023-Q1": 42,
     "2023-Q2": 37,
     "2023-Q3": 47,
     "2023-Q4": 32,
     "2024-Q1": 32,
     "2024-Q2": 41,
     "2024-Q3": 34,
     "2024-Q4": 36,
     "2025-Q1": 22,
     "2025-Q2": 36,
     "2025-Q3": 32,
     "2025-Q4": 24,
     "2026-Q1": 23,
     "2026-Q2": 34,
     "2026-Q3": 40,
     "2026-Q4": 23
    },
    "bus_factor_365d": 3,
    "ci": true,
    "commits_30d": 124,
    "commits_365d": 728,
    "commits_90d": 278,
    "commits_all": 20694,
    "first_commit": "2014-08-12T14:10:52+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0011,
     "Go": 0.0016,
     "HTML": 0.0042,
     "Perl": 0.0019,
     "Python": 0.944,
     "Rust": 0.0342,
     "SQL": 0.0064,
     "Shell": 0.0029
    },
    "last_commit": "2026-11-04T21:01:05+00:00",
    "last_tag": "v1.164.2",
    "last_tag_date": "2026-11-02T10:02:35-06:00",
    "last_tag_repo": "https://github.com/element-hq/synapse",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "BASH": 86,
     "CSS": 414,
     "DOT": 25,
     "Dockerfile": 162,
     "Go": 573,
     "HTML": 1545,
     "JavaScript": 352,
     "Jinja": 322,
     "Nix": 242,
     "Perl": 710,
     "Python": 345118,
     "Rust": 12512,
     "SQL": 2335,
     "Shell": 1071,
     "Snakemake": 35,
     "Systemd": 98
    },
    "loc_total": 365600,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 33,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     16,
     19,
     11,
     25,
     6,
     13,
     1,
     2,
     20,
     13,
     8,
     7,
     5,
     5,
     12,
     7,
     11,
     9,
     16,
     9,
     10,
     8,
     12,
     15,
     12,
     5,
     15,
     18,
     3,
     10,
     9,
     15,
     12,
     12,
     13,
     24,
     4,
     21,
     11,
     19,
     10,
     16,
     21,
     22,
     20,
     19,
     26,
     16,
     23,
     21,
     28,
     40
    ]
   }
  },
  {
   "slug": "synapse-pro",
   "name": "Synapse Pro",
   "category": "server",
   "kind": "homeserver (commercial)",
   "homepage": "https://element.io/server-suite/synapse-pro",
   "summary": "Element's commercial edition of Synapse, aimed at performance, scalability and compliance.",
   "repos": [],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "LicenseRef-Element-Commercial",
   "fork_of": "synapse",
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Python, Rust",
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "not checked: no clone"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "synapse-pro.webp",
    "source": "https://element.io/assets-32bb636196f91ed59d7a49190e26b42c/5ef25c0d30ee3108da4c25e9/5f0e1775cd41ebe29c04cac1_webclip.png",
    "licence": null,
    "note": "Element's logo (the touch icon of element.io); Synapse Pro is an Element product",
    "checked": "2026-11-05"
   },
   "notes": "Closed source; listed on matrix.org with licence \"Element Commercial License\". Features and MSCs not checked (no public code).",
   "checked": "2026-11-05",
   "status": "no-repo",
   "metrics": null
  },
  {
   "slug": "synapse-admin",
   "name": "synapse-admin",
   "category": "tool",
   "kind": "admin-ui",
   "homepage": "https://awesome-technologies.github.io/synapse-admin/",
   "summary": "The original web admin console for Synapse built on react-admin; Ketesa started as a fork of it.",
   "repos": [
    {
     "url": "https://github.com/Awesome-Technologies/synapse-admin",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, repositories sorted by stars, 2026-11-05"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "docker",
    "tarball"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "homeserver admin UI (Synapse admin API)",
     "how": "claimed",
     "source": "https://github.com/Awesome-Technologies/synapse-admin/blob/b3925704aeb85d29ea2db8e1975b407310dcae7a/README.md"
    },
    "framework": {
     "value": "own (react-admin client for the Synapse admin API)",
     "how": "claimed",
     "source": "https://github.com/Awesome-Technologies/synapse-admin/blob/b3925704aeb85d29ea2db8e1975b407310dcae7a/README.md"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/Awesome-Technologies/synapse-admin/blob/b3925704aeb85d29ea2db8e1975b407310dcae7a/README.md",
     "note": "not applicable: an admin API client"
    },
    "hosting": {
     "value": "both",
     "how": "claimed",
     "source": "https://github.com/Awesome-Technologies/synapse-admin/blob/b3925704aeb85d29ea2db8e1975b407310dcae7a/README.md",
     "note": "self-host (static files or Docker) or the GitHub Pages build"
    },
    "config": {
     "value": "config.json",
     "how": "claimed",
     "source": "https://github.com/Awesome-Technologies/synapse-admin/blob/b3925704aeb85d29ea2db8e1975b407310dcae7a/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/Awesome-Technologies/synapse-admin/blob/b3925704aeb85d29ea2db8e1975b407310dcae7a/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "1 of 78 non-bot commits in the last 365 days carry an AI attribution (1.3%), counted at b3925704aeb8",
      "tools named in attributions: copilot",
      "example: 9bd1c5be3a8c (Co-authored-by: Copilot)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Not on the matrix.org integrations list (Ketesa is); found by search, 1,206 stars.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 1,
     "commits_365d": 78,
     "share_365d": 0.0128,
     "suggested_dev_usage": "occasional",
     "tools": {
      "copilot": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 5,
    "authors_90d": 0,
    "authors_all": 32,
    "authors_by_quarter": {
     "2023-Q1": 5,
     "2023-Q2": 0,
     "2023-Q3": 4,
     "2023-Q4": 1,
     "2024-Q1": 5,
     "2024-Q2": 6,
     "2024-Q3": 3,
     "2024-Q4": 1,
     "2025-Q1": 0,
     "2025-Q2": 6,
     "2025-Q3": 0,
     "2025-Q4": 1,
     "2026-Q1": 3,
     "2026-Q2": 1,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 78,
    "commits_90d": 0,
    "commits_all": 391,
    "first_commit": "2018-11-22T08:04:17+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0012,
     "HTML": 0.011,
     "JavaScript": 0.0567,
     "Shell": 0.0035,
     "TypeScript": 0.8912,
     "TypeScript Typings": 0.0363
    },
    "last_commit": "2026-04-15T09:51:21+00:00",
    "last_tag": "0.11.4",
    "last_tag_date": "2026-03-07T20:51:22+01:00",
    "last_tag_repo": "https://github.com/Awesome-Technologies/synapse-admin",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 13,
     "HTML": 119,
     "JavaScript": 611,
     "Shell": 38,
     "TypeScript": 9599,
     "TypeScript Typings": 391
    },
    "loc_total": 10771,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 3,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     12,
     0,
     0,
     0,
     0,
     5,
     18,
     39,
     2,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "synapse-operator",
   "name": "synapse-operator",
   "category": "tool",
   "kind": "deployment",
   "homepage": "https://github.com/opdev/synapse-operator",
   "summary": "A Kubernetes operator, built with operator-sdk, that deploys and manages Synapse; archived.",
   "repos": [
    {
     "url": "https://github.com/opdev/synapse-operator",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/distributions/",
    "other": []
   },
   "maturity": "archived",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "deployment (Kubernetes operator for Synapse)",
     "how": "claimed",
     "source": "https://github.com/opdev/synapse-operator/blob/03ae59ac10b5c98a99d5e914effa0d7162e4bae5/README.md"
    },
    "framework": {
     "value": "operator-sdk (Go)",
     "how": "claimed",
     "source": "https://github.com/opdev/synapse-operator/blob/03ae59ac10b5c98a99d5e914effa0d7162e4bae5/README.md"
    },
    "e2ee": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/opdev/synapse-operator/blob/03ae59ac10b5c98a99d5e914effa0d7162e4bae5/README.md",
     "note": "not applicable"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/opdev/synapse-operator/blob/03ae59ac10b5c98a99d5e914effa0d7162e4bae5/README.md",
     "note": "Kubernetes"
    },
    "config": {
     "value": "Kubernetes custom resources",
     "how": "claimed",
     "source": "https://github.com/opdev/synapse-operator/blob/03ae59ac10b5c98a99d5e914effa0d7162e4bae5/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "claimed",
     "source": "https://github.com/opdev/synapse-operator/blob/03ae59ac10b5c98a99d5e914effa0d7162e4bae5/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 3 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 03ae59ac10b5"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Archived on GitHub (search API, 2026-11-05) though still on matrix.org's distributions list. The LICENSE file is the Apache License 2.0.",
   "checked": "2026-11-05",
   "status": "archived",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 3,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 2,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 3,
    "commits_90d": 0,
    "commits_all": 147,
    "first_commit": "2021-09-09T13:27:48+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0055,
     "Go": 0.9515,
     "Makefile": 0.04,
     "Shell": 0.003
    },
    "last_commit": "2026-03-03T09:11:25+00:00",
    "last_tag": "v0.8.0",
    "last_tag_date": "2025-08-15T12:47:01+02:00",
    "last_tag_repo": "https://github.com/opdev/synapse-operator",
    "licence_detected": "Apache-2.0",
    "loc": {
     "Dockerfile": 31,
     "Go": 5334,
     "Makefile": 224,
     "Shell": 17
    },
    "loc_total": 5606,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "syphon",
   "name": "Syphon",
   "category": "client",
   "kind": "mobile",
   "homepage": "https://syphon.org",
   "summary": "Privacy-focused Flutter Matrix client for Android and iOS; the project says it is unmaintained.",
   "repos": [
    {
     "url": "https://github.com/syphon-org/syphon",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/syphon/",
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "android",
    "ios",
    "linux"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "flutter",
     "min_os": "5.0",
     "status": "discontinued",
     "stores": [
      {
       "name": "google-play",
       "url": "https://play.google.com/store/apps/details?id=org.tether.tether"
      },
      {
       "name": "f-droid",
       "url": "https://f-droid.org/packages/org.tether.tether"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/syphon.md"
    },
    {
     "os": "ios",
     "tech": "flutter",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "app-store",
       "url": "https://apps.apple.com/app/id1496285352"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/syphon.md"
    },
    {
     "os": "linux",
     "tech": "flutter",
     "min_os": null,
     "status": "discontinued",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/org.syphon.Syphon"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/syphon.md"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own",
     "how": "code",
     "note": "own Dart implementation"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/.drone.yml#L19",
     "note": "pattern match [libolm]"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/lib/global/strings.dart#L66",
     "note": "pattern match [KeyBackup]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/lib/global/strings.dart#L132",
     "note": "pattern match [CallInvite]"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/lib/global/libraries/matrix/events/requests.dart#L241",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/lib/global/libraries/matrix/events/types.dart#L22",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/lib/domain/events/messages/actions.dart#L365",
     "note": "pattern match [m.in_reply_to]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/lib/global/libraries/matrix/events/types.dart#L32",
     "note": "pattern match [m.location]"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/pubspec.yaml#L61",
     "note": "pattern match [apns]"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/lib/global/libraries/matrix/index.dart#L56",
     "note": "pattern match [PrivateRead]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/lib/global/libraries/matrix/user/types.dart#L6",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/lib/views/home/HomeChatList.dart#L85",
     "note": "pattern match [semanticsLabel]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2023-08-17, so no commits in the last 365 days (HEAD 05ef8d47da)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "syphon.webp",
    "source": "https://github.com/syphon-org/syphon/blob/05ef8d47da47d35b733470722aa06a2e85d24789/fastlane/metadata/android/fa-IR/images/icon.png",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Community room topic: \"SYPHON IS UNMAINTAINED\" with https://github.com/syphon-org/syphon/issues/794. matrix.org: Obsolete.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 20,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 6,
     "2023-Q3": 2,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 1372,
    "first_commit": "2019-10-09T22:50:47+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0028,
     "Batch": 0.0015,
     "C Header": 0.0024,
     "C++": 0.0101,
     "CMake": 0.0088,
     "Dart": 0.9588,
     "Gradle": 0.0029,
     "Java": 0.003,
     "Makefile": 0.0013,
     "Shell": 0.0042,
     "Swift": 0.0013,
     "Windows Resource-Definition Script": 0.0016
    },
    "last_commit": "2023-08-17T17:45:06+00:00",
    "last_tag": "0.2.14",
    "last_tag_date": "2022-10-02T18:31:45-04:00",
    "last_tag_repo": "https://github.com/syphon-org/syphon",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "BASH": 120,
     "Batch": 66,
     "C Header": 103,
     "C++": 433,
     "CMake": 381,
     "Dart": 41290,
     "Gradle": 123,
     "HTML": 20,
     "Java": 131,
     "Kotlin": 4,
     "Makefile": 54,
     "Prolog": 1,
     "Shell": 183,
     "Swift": 58,
     "Windows Resource-Definition Script": 69,
     "Xcode Config": 28
    },
    "loc_total": 43064,
    "main_language": "Dart",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "tacit",
   "name": "Tacit",
   "category": "client",
   "kind": "desktop, web",
   "homepage": "https://fuchss.org/projects/tacit/",
   "summary": "Fork of Tammy (Trixnity Messenger) with a reworked desktop-first visual style.",
   "repos": [
    {
     "url": "https://gitlab.com/dfuchss/tacit",
     "forge": "gitlab",
     "role": "main"
    },
    {
     "url": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger",
     "forge": "gitlab",
     "role": "upstream"
    },
    {
     "url": "https://gitlab.com/trixnity/trixnity",
     "forge": "gitlab",
     "role": "upstream"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/tacit/",
    "other": []
   },
   "maturity": "alpha",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux"
   ],
   "apps": [
    {
     "os": "macos",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [
      {
       "name": "dmg",
       "url": "https://github.com/dfuchss/tacit/releases/latest/download/tacit-macos-arm64.dmg"
      }
     ],
     "source": "https://gitlab.com/dfuchss/tacit/-/blob/a3b1466866bb1fb30f58ccf5d36eb6c74ad42fe8/README.md",
     "note": "Apple Silicon, unsigned"
    },
    {
     "os": "windows",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://gitlab.com/dfuchss/tacit/-/blob/a3b1466866bb1fb30f58ccf5d36eb6c74ad42fe8/README.md"
    },
    {
     "os": "linux",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://gitlab.com/dfuchss/tacit/-/blob/a3b1466866bb1fb30f58ccf5d36eb6c74ad42fe8/README.md"
    },
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/tacit.md",
     "note": "tacit.fuchss.org"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": "tammy",
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "Trixnity",
     "how": "code",
     "source": "https://gitlab.com/trixnity/trixnity/-/blob/56583347f34cb5b190d9f3770842cbd46791a537/trixnity-client/build.gradle.kts",
     "note": "Trixnity 5.9.2 (Apache-2.0) via trixnity-messenger"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/CreateCryptoDriverModule.kt#L5",
     "note": "in trixnity-messenger v4.10.3: crypto driver module (vodozemac) (5 matches in main sources)"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/root/SelfVerificationSwitch.kt#L6",
     "note": "in trixnity-messenger v4.10.3: cross-signing bootstrap (81 matches in main sources); Trixnity feature list: cross signing (https://gitlab.com/trixnity/trixnity/-/blob/56583347f34cb5b190d9f3770842cbd46791a537/website/docs/client/features.md#L43)"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/connecting/StoreFailure.kt#L155",
     "note": "in trixnity-messenger v4.10.3: recovery key / key backup (154 matches in main sources); Trixnity feature list: room key backup (https://gitlab.com/trixnity/trixnity/-/blob/56583347f34cb5b190d9f3770842cbd46791a537/website/docs/client/features.md#L45)"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not found in trixnity-messenger v4.10.3 main sources; no MSC4186 / MSC3575 code in Trixnity 5.9.2 either, and its feature list does not mention sliding sync"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/MatrixMessengerSettings.kt#L6",
     "note": "in trixnity-messenger v4.10.3: OAuth 2.0 server login in the add-account flow (16 matches in main sources); Trixnity feature list: \"OAuth2-based login\" (https://gitlab.com/trixnity/trixnity/-/blob/56583347f34cb5b190d9f3770842cbd46791a537/website/docs/client/features.md#L39)"
    },
    "multi_account": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/profiles/ProfileSelection.kt#L53",
     "note": "in trixnity-messenger v4.10.3: multi-profile / MatrixMultiMessenger (117 matches in main sources)"
    },
    "threads": {
     "value": "not-found",
     "note": "not found in trixnity-messenger v4.10.3 main sources; Trixnity 5.9.2 feature list: \"thread (basic support, no separate timelines or client aggregations yet)\" (https://gitlab.com/trixnity/trixnity/-/blob/56583347f34cb5b190d9f3770842cbd46791a537/website/docs/client/features.md#L58)"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/room/settings/ChangePowerLevel.kt#L316",
     "note": "in trixnity-messenger v4.10.3: spaces in the room list (4 matches in main sources)"
    },
    "voip_1to1": {
     "value": "not-found",
     "note": "not found in trixnity-messenger v4.10.3 main sources; Trixnity 5.9.2 models m.call.* events (https://gitlab.com/trixnity/trixnity/-/blob/56583347f34cb5b190d9f3770842cbd46791a537/trixnity-core/src/commonMain/kotlin/de/connect2x/trixnity/core/model/events/m/call/CallEventContent.kt#L22) but no UI uses them"
    },
    "group_calls": {
     "value": "not-found",
     "note": "MatrixRTC code appears only in tests in trixnity-messenger v4.10.3, the version Tacit pins; Trixnity 5.9.2 already models MSC4143 (MatrixRTC) events"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/room/settings/ChangePowerLevel.kt#L289",
     "note": "in trixnity-messenger v4.10.3: reactions (59 matches in main sources)"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/MatrixClientFactory.kt#L149",
     "note": "in trixnity-messenger v4.10.3: RelatesTo.Replace (8 matches in main sources)"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/viewmodel/room/timeline/InputAreaViewModel.kt#L436",
     "note": "in trixnity-messenger v4.10.3: RelatesTo.Reply (2 matches in main sources)"
    },
    "polls": {
     "value": "not-found",
     "note": "not found in trixnity-messenger v4.10.3 main sources; no poll event types in Trixnity 5.9.2"
    },
    "custom_emoji": {
     "value": "not-found",
     "note": "not found in trixnity-messenger v4.10.3 main sources; no image pack event type in Trixnity 5.9.2"
    },
    "stickers": {
     "value": "not-found",
     "note": "not found in trixnity-messenger v4.10.3 main sources; no sticker event type in Trixnity 5.9.2"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/DI.kt#L168",
     "note": "in trixnity-messenger v4.10.3: location messages (16 matches in main sources)"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/DI.kt#L96",
     "note": "in trixnity-messenger v4.10.3: audio recorder / voice messages (33 matches in main sources)"
    },
    "rich_text_editor": {
     "value": "not-found",
     "note": "not found in trixnity-messenger v4.10.3 main sources"
    },
    "url_previews": {
     "value": "not-found",
     "note": "not found in trixnity-messenger v4.10.3 main sources; Trixnity 5.9.2 has the media preview_url API (https://gitlab.com/trixnity/trixnity/-/blob/56583347f34cb5b190d9f3770842cbd46791a537/trixnity-clientserverapi/trixnity-clientserverapi-client/src/commonMain/kotlin/de/connect2x/trixnity/clientserverapi/client/MediaApiClient.kt#L84) but no UI uses it"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/notification/PushNotificationProvider.kt#L8",
     "note": "in trixnity-messenger v4.10.3: pusher setup (7 matches in main sources)"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/viewmodel/room/timeline/TimelineViewModel.kt#L1179",
     "note": "in trixnity-messenger v4.10.3: private read receipts (3 matches in main sources)"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/theme/components/ThemedAvatar.kt#L200",
     "note": "in trixnity-messenger v4.10.3: presence on avatars (29 matches in main sources)"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/DI.kt#L204",
     "note": "in trixnity-messenger v4.10.3: tombstone handling (36 matches in main sources); Trixnity feature list: room upgrades, invisible due to merged timelines (https://gitlab.com/trixnity/trixnity/-/blob/56583347f34cb5b190d9f3770842cbd46791a537/website/docs/client/features.md#L50)"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/room/timeline/MessageReport.kt#L23",
     "note": "in trixnity-messenger v4.10.3: report message (103 matches in main sources)"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/common/CopyToClipboardButton.kt#L26",
     "note": "in trixnity-messenger v4.10.3: semantics / content descriptions in the Compose view (100 matches in main sources)"
    },
    "translations": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/27315972de34d4836f9fa354649fd5885c21aab3/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/i18n/Language.kt#L10",
     "note": "German and English, built into trixnity-messenger"
    },
    "telemetry": {
     "value": "none-found",
     "note": "no analytics or crash-report SDK in tammy or trixnity-messenger build files"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "AGPL-3.0; Gradle Kotlin Multiplatform, about 500 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (531 non-bot commits in the last 365 days) at a3b1466866"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "tacit.webp",
    "source": "https://gitlab.com/dfuchss/tacit/-/blob/a3b1466866bb1fb30f58ccf5d36eb6c74ad42fe8/fastlane/metadata/android/de-DE/images/icon.png",
    "licence": "AGPL-3.0-only",
    "note": "ships Tammy's logo (a fork of Tammy)",
    "checked": "2026-11-05"
   },
   "notes": "README: \"Android/iOS are currently not actively tested in Tacit.\" (iosApp exists in the tree). Maturity per README: Alpha. Client logic comes from trixnity-messenger v4.10.3 (gradle/libs.versions.toml), read at that tag; Tacit is behind Tammy, which uses a 4.11.0 snapshot. Trixnity 5.9.2 (https://gitlab.com/trixnity/trixnity, Apache-2.0): checked at that tag; at its main branch (2269b0bae4) 633 non-bot commits in the last 365 days, 13 authors in 90 days, no agent files, no AI-attributed commits, no AI policy text.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 2464,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 21,
    "authors_90d": 14,
    "authors_all": 36,
    "authors_by_quarter": {
     "2023-Q1": 3,
     "2023-Q2": 2,
     "2023-Q3": 7,
     "2023-Q4": 5,
     "2024-Q1": 9,
     "2024-Q2": 9,
     "2024-Q3": 13,
     "2024-Q4": 10,
     "2025-Q1": 12,
     "2025-Q2": 9,
     "2025-Q3": 12,
     "2025-Q4": 9,
     "2026-Q1": 15,
     "2026-Q2": 15,
     "2026-Q3": 13,
     "2026-Q4": 11
    },
    "bus_factor_365d": 4,
    "ci": true,
    "commits_30d": 270,
    "commits_365d": 2464,
    "commits_90d": 670,
    "commits_all": 8340,
    "first_commit": "2020-12-21T09:37:20+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0029,
     "CSS": 0.0114,
     "Dockerfile": 0.0014,
     "Go Template": 0.0027,
     "HTML": 0.0379,
     "JavaScript": 0.0023,
     "Kotlin": 0.9213,
     "Shell": 0.0091,
     "Swift": 0.0108
    },
    "last_commit": "2026-11-04T14:36:25+00:00",
    "last_tag": "v26.9.2-tacit.8",
    "last_tag_date": "2026-11-02T23:13:14+01:00",
    "last_tag_repo": "https://gitlab.com/dfuchss/tacit",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 280,
     "CSS": 352,
     "Dockerfile": 35,
     "Gemfile": 2,
     "Go Template": 67,
     "HTML": 1027,
     "JavaScript": 455,
     "Kotlin": 316577,
     "Module-Definition": 27,
     "Prolog": 5,
     "Shell": 549,
     "Swift": 296,
     "TypeScript": 493,
     "TypeScript Typings": 419,
     "Xcode Config": 3
    },
    "loc_total": 320587,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 66,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     49,
     43,
     60,
     58,
     30,
     60,
     25,
     2,
     25,
     38,
     35,
     43,
     92,
     53,
     34,
     109,
     39,
     85,
     75,
     76,
     74,
     16,
     44,
     28,
     37,
     21,
     18,
     46,
     52,
     79,
     72,
     19,
     62,
     22,
     33,
     49,
     50,
     16,
     6,
     5,
     58,
     88,
     54,
     20,
     28,
     53,
     65,
     69,
     43,
     154,
     21,
     16
    ]
   }
  },
  {
   "slug": "tammy",
   "name": "Tammy",
   "category": "client",
   "kind": "web, desktop, mobile",
   "homepage": "https://tammy.connect2x.de",
   "summary": "White-label messenger by connect2x on Trixnity Messenger (Kotlin Multiplatform), for web, desktop, Android and iOS.",
   "repos": [
    {
     "url": "https://gitlab.com/connect2x/tammy",
     "forge": "gitlab",
     "role": "main"
    },
    {
     "url": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger",
     "forge": "gitlab",
     "role": "upstream"
    },
    {
     "url": "https://gitlab.com/trixnity/trixnity",
     "forge": "gitlab",
     "role": "upstream"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/tammy/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux",
    "android",
    "ios"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "google-play",
       "url": "https://play.google.com/store/apps/details?id=de.connect2x.tammy"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/tammy.md",
     "note": "Compose Multiplatform"
    },
    {
     "os": "ios",
     "tech": "other",
     "min_os": "18.2",
     "status": "stable",
     "stores": [
      {
       "name": "app-store",
       "url": "https://apps.apple.com/app/id6760345615"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/tammy.md",
     "note": "IPHONEOS_DEPLOYMENT_TARGET 18.2 in iosApp"
    },
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/tammy.md",
     "note": "app.tammy.connect2x.de (Kotlin/Wasm)"
    },
    {
     "os": "windows",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/tammy.md"
    },
    {
     "os": "macos",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/tammy.md"
    },
    {
     "os": "linux",
     "tech": "other",
     "min_os": null,
     "status": "stable",
     "stores": [
      {
       "name": "flatpak",
       "url": null
      }
     ],
     "source": "https://gitlab.com/connect2x/tammy/-/blob/cd71d8e4ad6078890bda2544d98a0dadbc086287/README.md",
     "note": "flatpak/ folder in the repo"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "google-play",
    "app-store"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "Trixnity",
     "how": "code",
     "source": "https://gitlab.com/trixnity/trixnity/-/blob/4852889934671d35c6ed8626e2ab4e74ba2f69b7/trixnity-client/build.gradle.kts",
     "note": "Trixnity 5.10.1 (Apache-2.0) via trixnity-messenger"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/CreateCryptoDriverModule.kt#L5",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): crypto driver module (vodozemac) (5 matches in main sources)"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/root/SelfVerificationSwitch.kt#L6",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): cross-signing bootstrap (81 matches in main sources); Trixnity feature list: cross signing (https://gitlab.com/trixnity/trixnity/-/blob/4852889934671d35c6ed8626e2ab4e74ba2f69b7/website/docs/client/features.md#L43)"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/connecting/StoreFailure.kt#L155",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): recovery key / key backup (156 matches in main sources); Trixnity feature list: room key backup (https://gitlab.com/trixnity/trixnity/-/blob/4852889934671d35c6ed8626e2ab4e74ba2f69b7/website/docs/client/features.md#L45)"
    },
    "sliding_sync": {
     "value": "not-found",
     "note": "not found in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df) main sources; no MSC4186 / MSC3575 code in Trixnity 5.10.1 either, and its feature list does not mention sliding sync"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/MatrixMessengerSettings.kt#L6",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): OAuth 2.0 server login in the add-account flow (16 matches in main sources); Trixnity feature list: \"OAuth2-based login\" (https://gitlab.com/trixnity/trixnity/-/blob/4852889934671d35c6ed8626e2ab4e74ba2f69b7/website/docs/client/features.md#L39)"
    },
    "multi_account": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/profiles/ProfileSelection.kt#L53",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): multi-profile / MatrixMultiMessenger (117 matches in main sources)"
    },
    "threads": {
     "value": "not-found",
     "note": "not found in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df) main sources; Trixnity 5.10.1 feature list: \"thread (basic support, no separate timelines or client aggregations yet)\" (https://gitlab.com/trixnity/trixnity/-/blob/4852889934671d35c6ed8626e2ab4e74ba2f69b7/website/docs/client/features.md#L58)"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/room/settings/ChangePowerLevel.kt#L316",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): spaces in the room list (4 matches in main sources)"
    },
    "voip_1to1": {
     "value": "not-found",
     "note": "not found in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df) main sources; Trixnity 5.10.1 models m.call.* events (https://gitlab.com/trixnity/trixnity/-/blob/4852889934671d35c6ed8626e2ab4e74ba2f69b7/trixnity-core/src/commonMain/kotlin/de/connect2x/trixnity/core/model/events/m/call/CallEventContent.kt#L22) but no UI uses them"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/room/timeline/element/message/RtcMemberMessageTimelineElementView.kt#L19",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): MatrixRTC video calls (enableVideoCalls, default true) (16 matches in main sources)"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/room/settings/ChangePowerLevel.kt#L289",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): reactions (59 matches in main sources)"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/MatrixClientFactory.kt#L155",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): RelatesTo.Replace (8 matches in main sources)"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/viewmodel/room/timeline/InputAreaViewModel.kt#L436",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): RelatesTo.Reply (2 matches in main sources)"
    },
    "polls": {
     "value": "not-found",
     "note": "not found in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df) main sources; no poll event types in Trixnity 5.10.1"
    },
    "custom_emoji": {
     "value": "not-found",
     "note": "not found in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df) main sources; Trixnity 5.10.1 added ImagePackEventContent (https://gitlab.com/trixnity/trixnity/-/blob/4852889934671d35c6ed8626e2ab4e74ba2f69b7/trixnity-core/src/commonMain/kotlin/de/connect2x/trixnity/core/model/events/m/room/ImagePackEventContent.kt#L16); not used by the UI yet"
    },
    "stickers": {
     "value": "not-found",
     "note": "not found in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df) main sources; Trixnity 5.10.1 added StickerEventContent (https://gitlab.com/trixnity/trixnity/-/blob/4852889934671d35c6ed8626e2ab4e74ba2f69b7/trixnity-core/src/commonMain/kotlin/de/connect2x/trixnity/core/model/events/m/StickerEventContent.kt#L10); not used by the UI yet"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/DI.kt#L168",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): location messages (16 matches in main sources)"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/DI.kt#L94",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): audio recorder / voice messages (33 matches in main sources)"
    },
    "rich_text_editor": {
     "value": "not-found",
     "note": "not found in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df) main sources"
    },
    "url_previews": {
     "value": "not-found",
     "note": "not found in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df) main sources; Trixnity 5.10.1 has the media preview_url API (https://gitlab.com/trixnity/trixnity/-/blob/4852889934671d35c6ed8626e2ab4e74ba2f69b7/trixnity-clientserverapi/trixnity-clientserverapi-client/src/commonMain/kotlin/de/connect2x/trixnity/clientserverapi/client/MediaApiClient.kt#L84) but no UI uses it"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/notification/PushNotificationProvider.kt#L8",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): pusher setup (7 matches in main sources)"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/viewmodel/room/timeline/TimelineViewModel.kt#L1179",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): private read receipts (3 matches in main sources)"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/theme/components/ThemedAvatar.kt#L200",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): presence on avatars (29 matches in main sources)"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/DI.kt#L215",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): tombstone handling (36 matches in main sources); Trixnity feature list: room upgrades, invisible due to merged timelines (https://gitlab.com/trixnity/trixnity/-/blob/4852889934671d35c6ed8626e2ab4e74ba2f69b7/website/docs/client/features.md#L50)"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/room/timeline/MessageReport.kt#L23",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): report message (103 matches in main sources)"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger-compose-view/src/commonMain/kotlin/de/connect2x/trixnity/messenger/compose/view/common/CopyToClipboardButton.kt#L26",
     "note": "in trixnity-messenger 4.11.0-SNAPSHOT (CI build of 2026-10-21, commit f4b45841df): semantics / content descriptions in the Compose view (106 matches in main sources)"
    },
    "translations": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f4b45841dfc522899de23b19006c79177a677168/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/i18n/Language.kt#L10",
     "note": "German and English, built into trixnity-messenger"
    },
    "telemetry": {
     "value": "none-found",
     "note": "no analytics or crash-report SDK in tammy or trixnity-messenger build files"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitlab.com/connect2x/tammy/-/blob/cd71d8e4ad6078890bda2544d98a0dadbc086287/README.md",
     "note": "AGPL-3.0; designed as a white-label shell around Trixnity Messenger; Gradle"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (338 non-bot commits in the last 365 days) at cd71d8e4ad"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "tammy.webp",
    "source": "https://gitlab.com/connect2x/tammy/-/blob/cd71d8e4ad6078890bda2544d98a0dadbc086287/fastlane/metadata/android/de-DE/images/icon.png",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Client logic lives in trixnity-messenger (https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger, AGPL-3.0), pinned in gradle/libs.versions.toml as 4.11.0-SNAPSHOT.CI-20261021; features were read there at the last main commit before that build (f4b45841df). trixnity-messenger itself: 2,009 non-bot commits in the last 365 days, 20 authors in 90 days, no agent files, no AI-attributed commits, no AI policy text found. Trixnity 5.10.1 (https://gitlab.com/trixnity/trixnity, Apache-2.0): checked at that tag; at its main branch (2269b0bae4) 633 non-bot commits in the last 365 days, 13 authors in 90 days, no agent files, no AI-attributed commits, no AI policy text.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 2281,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 21,
    "authors_90d": 13,
    "authors_all": 36,
    "authors_by_quarter": {
     "2023-Q1": 3,
     "2023-Q2": 2,
     "2023-Q3": 7,
     "2023-Q4": 5,
     "2024-Q1": 9,
     "2024-Q2": 9,
     "2024-Q3": 13,
     "2024-Q4": 10,
     "2025-Q1": 12,
     "2025-Q2": 9,
     "2025-Q3": 12,
     "2025-Q4": 9,
     "2026-Q1": 15,
     "2026-Q2": 14,
     "2026-Q3": 12,
     "2026-Q4": 11
    },
    "bus_factor_365d": 3,
    "ci": true,
    "commits_30d": 161,
    "commits_365d": 2281,
    "commits_90d": 540,
    "commits_all": 8157,
    "first_commit": "2020-12-21T09:37:20+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Batch": 0.0155,
     "CSS": 0.0622,
     "Go Template": 0.0145,
     "HTML": 0.2063,
     "JavaScript": 0.0099,
     "Kotlin": 0.5901,
     "Shell": 0.0414,
     "Swift": 0.0589
    },
    "last_commit": "2026-11-04T14:36:25+00:00",
    "last_tag": "v5.10.1",
    "last_tag_date": "2026-10-20T10:51:22+00:00",
    "last_tag_repo": "https://gitlab.com/trixnity/trixnity",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 280,
     "CSS": 352,
     "Gemfile": 2,
     "Go Template": 67,
     "HTML": 1027,
     "JavaScript": 442,
     "Kotlin": 296051,
     "Module-Definition": 27,
     "Prolog": 5,
     "Shell": 510,
     "Swift": 296,
     "TypeScript": 493,
     "TypeScript Typings": 419,
     "Xcode Config": 3
    },
    "loc_total": 299974,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 81,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     49,
     43,
     60,
     58,
     30,
     60,
     25,
     2,
     25,
     38,
     35,
     43,
     92,
     53,
     34,
     109,
     33,
     84,
     69,
     73,
     57,
     16,
     44,
     28,
     36,
     19,
     10,
     43,
     48,
     78,
     72,
     19,
     62,
     22,
     32,
     49,
     50,
     16,
     6,
     5,
     58,
     88,
     52,
     20,
     28,
     54,
     45,
     69,
     39,
     53,
     21,
     12
    ]
   }
  },
  {
   "slug": "telodendria",
   "name": "Telodendria",
   "category": "server",
   "kind": "homeserver",
   "homepage": "https://telodendria.org",
   "summary": "A Matrix homeserver written from scratch in ANSI C, designed to be lightweight and simple.",
   "repos": [
    {
     "url": "https://github.com/Telodendria/Telodendria",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml",
     "sources/community-space.tsv (Servers/Hosting)"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "C",
    "database": "flat files",
    "federation": {
     "value": "not-found",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/Telodendria/Telodendria/blob/aa84648e0e12e0511d62c93ecf528c33f29456c4/src/Routes/RouteVersions.c#L40",
     "versions": [
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.6",
      "v1.7"
     ]
    },
    "oidc_delegation": {
     "value": "not-found",
     "note": "no reference to MSC3861/2964/2965/2967 found in the code"
    },
    "native_sliding_sync": {
     "value": "not-found",
     "note": "no reference to MSC4186 found in the code"
    },
    "workers_scaling": {
     "value": "not-found"
    },
    "media_auth": {
     "value": "not-found",
     "note": "no reference to MSC3916 found in the code"
    },
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "aa84648e0e12e0511d62c93ecf528c33f29456c4"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "telodendria.webp",
    "source": "https://avatars.githubusercontent.com/u/117198076?v=4&s=256",
    "licence": null,
    "note": "the Telodendria organisation's avatar on GitHub",
    "checked": "2026-11-05"
   },
   "notes": "The forge homepage points to git.telodendria.io, which may be the main repo now; the GitHub copy was read.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 5,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 3,
     "2023-Q4": 2,
     "2024-Q1": 2,
     "2024-Q2": 1,
     "2024-Q3": 3,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 2,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 918,
    "first_commit": "2022-07-23T00:19:12+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C": 0.9085,
     "C Header": 0.0459,
     "Prolog": 0.0039,
     "Shell": 0.0416
    },
    "last_commit": "2025-09-05T16:32:54+00:00",
    "last_tag": "Telodendria-0_3_0",
    "last_tag_date": "2023-06-10T13:29:56+00:00",
    "last_tag_repo": "https://github.com/Telodendria/Telodendria",
    "licence_detected": "MIT",
    "loc": {
     "C": 6217,
     "C Header": 314,
     "Prolog": 27,
     "Shell": 285
    },
    "loc_total": 6843,
    "main_language": "C",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "tensor",
   "name": "Tensor",
   "category": "client",
   "kind": "desktop, mobile",
   "homepage": null,
   "summary": "Early Qt/QML Matrix client (2015 to 2017).",
   "repos": [
    {
     "url": "https://github.com/davidar/tensor",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "linux",
    "windows",
    "macos",
    "android"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "qt",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/davidar/tensor/blob/f3f3056d770d7fb4a21c610cee7936ee900569f5/README.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2017-02-21, so no commits in the last 365 days (HEAD f3f3056d77)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "tensor.webp",
    "source": "https://github.com/davidar/tensor/blob/f3f3056d770d7fb4a21c610cee7936ee900569f5/client/logo.png",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 7,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 252,
    "first_commit": "2015-06-27T15:21:16+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.1139,
     "Batch": 0.0616,
     "C Header": 0.0691,
     "C++": 0.2782,
     "Gradle": 0.0448,
     "Makefile": 0.0588,
     "Prolog": 0.0243,
     "Q#": 0.043,
     "QML": 0.3063
    },
    "last_commit": "2017-02-21T08:48:05+00:00",
    "last_tag": "v0.3",
    "last_tag_date": "2016-04-23T21:07:10+10:00",
    "last_tag_repo": "https://github.com/davidar/tensor",
    "licence_detected": "GPL-3.0",
    "loc": {
     "BASH": 122,
     "Batch": 66,
     "C Header": 74,
     "C++": 298,
     "Gradle": 48,
     "Makefile": 63,
     "Prolog": 26,
     "Q#": 46,
     "QML": 328
    },
    "loc_total": 1071,
    "main_language": "QML",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "tesseract",
   "name": "Tesseract",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://surakin.github.io/tesseract",
   "summary": "Desktop Matrix client for Linux, Windows and macOS built on matrix-rust-sdk, with a C++/Rust bridge and thin per-platform shells; requires sliding sync.",
   "repos": [
    {
     "url": "https://github.com/surakin/tesseract",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/tesseract/",
    "other": []
   },
   "maturity": "alpha",
   "platforms": [
    "linux",
    "windows",
    "macos"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "qt",
     "min_os": null,
     "status": "alpha",
     "stores": [
      {
       "name": "flatpak",
       "url": "https://surakin.github.io/tesseract/io.github.surakin.Tesseract.flatpakref"
      },
      {
       "name": "aur",
       "url": "https://aur.archlinux.org/packages/tesseract-matrix"
      }
     ],
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/README.md#L21",
     "note": "own Flatpak repo (KDE runtime); not on Flathub"
    },
    {
     "os": "windows",
     "tech": "native",
     "min_os": null,
     "status": "alpha",
     "stores": [
      {
       "name": "microsoft-store",
       "url": "https://apps.microsoft.com/detail/9nz8v8tcnvjw"
      }
     ],
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/README.md#L39"
    },
    {
     "os": "macos",
     "tech": "native",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/README.md#L11"
    }
   ],
   "licence": "GPL-3.0-or-later",
   "fork_of": null,
   "distribution": [
    "microsoft-store",
    "aur",
    "flatpak"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "claimed",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/README.md#L11"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/Cargo.toml#L19",
     "note": "pattern match [matrix-sdk-crypto]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/views/EncryptionSetupOverlay.h#L60",
     "note": "pattern match [Cross-signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/views/LoginView.cpp#L1805",
     "note": "pattern match [recovery key]"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/README.md#L13",
     "note": "required: \"login will fail if the server does not support it\""
    },
    "oidc_auth": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/README.md#L13",
     "note": "preferred login is MAS / OAuth2"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/CMakeLists.txt#L183",
     "note": "pattern match [ThreadList]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/CMakeLists.txt#L245",
     "note": "pattern match [SpaceChild]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/Cargo.toml#L5",
     "note": "pattern match [webrtc]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/CMakeLists.txt#L434",
     "note": "pattern match [livekit]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/views/MessageListView.cpp#L1320",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/views/MessageListView.h#L257",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/views/MessageListView.cpp#L655",
     "note": "pattern match [in_reply_to]"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/packaging/flatpak/cargo-sources.json#L3245",
     "note": "pattern match [msc3381]"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/CMakeLists.txt#L179",
     "note": "pattern match [image_pack]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/views/MessageListView.cpp#L5740",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/packaging/flatpak/cargo-sources.json#L3227",
     "note": "pattern match [msc3488]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/packaging/flatpak/cargo-sources.json#L3227",
     "note": "pattern match [msc3245]"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/CMakeLists.txt#L141",
     "note": "pattern match [UrlPreview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/platform/CMakeLists.txt#L40",
     "note": "pattern match [UnifiedPush]"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/app/ShellBase.h#L6085",
     "note": "pattern match [m.read.private]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/CMakeLists.txt#L524",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/views/RoomReplacedBanner.h#L4",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/app/RoomPane.h#L515",
     "note": "pattern match [report_event]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/tk/side_tab_view.h#L226",
     "note": "pattern match [a11y]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "matrix.org",
     "how": "code",
     "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/shared/views/LoginView.cpp#L41"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "note": "GPL-3.0; Rust core plus C++ shared toolkit and four platform shells (about 1,570 files)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "CLAUDE.md and .claude/ (settings, hooks, skills msc-support and release-notes) at 78686f6476",
      "2,338 of 2,730 commits in the last 365 days (86 %) carry Claude co-author trailers",
      "README: \"This started as a Claude Code experiment\" and \"I used Claude to write everything else\" (all but the matrix-rust-sdk parts)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "tesseract.svg",
    "source": "https://github.com/surakin/tesseract/blob/78686f64764bce6f0acf248145a5a9a3f32d35c3/ui/icons/tesseract.svg",
    "licence": "GPL-3.0-or-later",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "The Flatpak README says Flathub does not accept the app because of Flathub's 2026-05-29 policy on AI-assisted code (packaging/flatpak/README.md).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 2,
     "ai_bot_commits_365d": 2,
     "attributed_commits_365d": 2324,
     "commits_365d": 2627,
     "share_365d": 0.8847,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 2323,
      "copilot": 1
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 4,
    "authors_90d": 4,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 2,
     "2026-Q3": 3,
     "2026-Q4": 3
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 303,
    "commits_365d": 2627,
    "commits_90d": 744,
    "commits_all": 2627,
    "first_commit": "2026-05-06T08:02:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0984,
     "C++": 0.627,
     "C++ Header": 0.0501,
     "CMake": 0.0171,
     "HTML": 0.0053,
     "Objective C++": 0.028,
     "Python": 0.0038,
     "Rust": 0.1693
    },
    "last_commit": "2026-11-04T20:59:57+00:00",
    "last_tag": "v0.9.7",
    "last_tag_date": "2026-11-01T22:08:30+01:00",
    "last_tag_repo": "https://github.com/surakin/tesseract",
    "licence_detected": "GPL-3.0",
    "loc": {
     "BASH": 59,
     "C": 49,
     "C Header": 41034,
     "C++": 261349,
     "C++ Header": 20902,
     "CMake": 7119,
     "HTML": 2197,
     "Objective C++": 11657,
     "Python": 1588,
     "Rust": 70575,
     "Shell": 275
    },
    "loc_total": 416804,
    "main_language": "C++",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 45,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     9,
     142,
     534,
     265,
     203,
     176,
     155,
     43,
     72,
     45,
     99,
     45,
     58,
     34,
     23,
     12,
     47,
     83,
     88,
     55,
     59,
     55,
     45,
     75,
     75,
     60,
     70
    ]
   }
  },
  {
   "slug": "third-room",
   "name": "Third Room",
   "category": "client",
   "kind": "web (3D)",
   "homepage": "https://thirdroom.io",
   "summary": "Matrix-based 3D virtual-world platform in the browser; paused in 2023 for lack of funding.",
   "repos": [
    {
     "url": "https://github.com/thirdroom/thirdroom",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/README.md"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/package.json",
     "note": "@thirdroom/hydrogen-view-sdk (a fork of Hydrogen)"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/src/ui/views/HydrogenRootView.tsx#L26",
     "note": "pattern match [olm_]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/src/hydrogen-view-sdk.d.ts#L967",
     "note": "pattern match [CrossSigning]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/src/hydrogen-view-sdk.d.ts#L917",
     "note": "pattern match [KeyBackup]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/config.json#L8",
     "note": "pattern match [OidcClient]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/src/engine/scripting/emscripten/src/js-runtime/quickjs/quickjs.c#L40330",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/src/hydrogen-view-sdk.d.ts#L1746",
     "note": "pattern match [m.call.invite]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/src/hydrogen-view-sdk.d.ts#L1744",
     "note": "pattern match [org.matrix.msc3401]"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/src/ui/hooks/useHomeWorld.ts#L32",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/src/ui/site/archived/BlogSection.tsx#L79",
     "note": "pattern match [voice message]"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/src/ui/hooks/useHomeWorld.ts#L46",
     "note": "pattern match [preview_url]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/src/hydrogen-view-sdk.d.ts#L2240",
     "note": "pattern match [setPusher]"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/packages/websg-types/types/websg.d.ts#L921",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/src/ui/hooks/useHomeWorld.ts#L27",
     "note": "pattern match [m.room.tombstone]"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/package.json#L122",
     "note": "pattern match [a11y]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2023-07-11, so no commits in the last 365 days (HEAD 01bc731b05)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "third-room.svg",
    "source": "https://github.com/thirdroom/thirdroom/blob/01bc731b057bd2a0e01d2152ad4828c05f1f6302/res/svg/logo.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Community room topic: \"Third Room is paused due to lack of funding\". Not a chat client in the usual sense.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 8,
    "authors_by_quarter": {
     "2023-Q1": 3,
     "2023-Q2": 4,
     "2023-Q3": 1,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 2150,
    "first_commit": "2021-09-21T07:47:49+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C": 0.497,
     "C Header": 0.067,
     "CSS": 0.0238,
     "HTML": 0.0014,
     "JavaScript": 0.0313,
     "TypeScript": 0.3573,
     "TypeScript Typings": 0.0215
    },
    "last_commit": "2023-07-10T18:47:25+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "C": 73467,
     "C Header": 9909,
     "CSS": 3514,
     "HTML": 209,
     "JavaScript": 4630,
     "Shell": 116,
     "TypeScript": 52814,
     "TypeScript Typings": 3173
    },
    "loc_total": 147832,
    "main_language": "C",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "threematrix",
   "name": "Threematrix",
   "category": "bridge",
   "kind": "relay bridge",
   "homepage": null,
   "summary": "Work-in-progress Rust bridge between Threema (through the Threema Gateway API) and Matrix, funded by the German Prototype Fund.",
   "repos": [
    {
     "url": "https://github.com/bitbatter/Threematrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Threematrix)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "GPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Threema (Gateway API)",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/bitbatter/Threematrix/blob/db92bb325463b9b5bd43b56d29a092bfd25ca2ab/Cargo.toml",
     "note": "own (Rust)"
    },
    "puppeting": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "e2ee": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "backfill": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "media": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "reactions_edits": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "group_chats": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "login_methods": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "not checked in depth (inactive project)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD db92bb325463; no AI-attributed commits among 0 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Last commit 2024-03-21.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 1,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 15,
    "first_commit": "2022-02-07T20:57:30+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0102,
     "Rust": 0.9898
    },
    "last_commit": "2024-03-21T13:16:56+00:00",
    "last_tag": "v0.1.0",
    "last_tag_date": "2022-07-17T21:19:00+02:00",
    "last_tag_repo": "https://github.com/bitbatter/Threematrix",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Dockerfile": 10,
     "Rust": 975
    },
    "loc_total": 985,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "thunderbird",
   "name": "Thunderbird",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://www.thunderbird.net",
   "summary": "Mozilla's mail client, whose chat module includes a Matrix account type built on matrix-js-sdk.",
   "repos": [
    {
     "url": "https://github.com/thunderbird/thunderbird-desktop",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/thunderbird/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "windows",
    "macos",
    "linux"
   ],
   "apps": [
    {
     "os": "windows",
     "tech": "other",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/thunderbird.md"
    },
    {
     "os": "macos",
     "tech": "other",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/thunderbird.md"
    },
    {
     "os": "linux",
     "tech": "other",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "flathub",
       "url": "https://flathub.org/apps/org.mozilla.thunderbird"
      }
     ],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/thunderbird.md"
    }
   ],
   "licence": "MPL-2.0",
   "fork_of": null,
   "distribution": [
    "flathub"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrix-sdk.sys.mjs",
     "note": "vendored in chat/protocols/matrix/lib with matrix-sdk-crypto-wasm"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrix-sdk.sys.mjs#L105",
     "note": "pattern match [rust-crypto]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrixAccount.sys.mjs#L234",
     "note": "pattern match [cross-signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrix-sdk.sys.mjs#L103",
     "note": "pattern match [keybackup]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrix-sdk.sys.mjs#L34",
     "note": "pattern match [oidc]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrixAccount.sys.mjs#L155",
     "note": "pattern match [threadRoot]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrixAccount.sys.mjs#L653",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrixTextForEvent.sys.mjs#L346",
     "note": "pattern match [m.call.invite]"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrixAccount.sys.mjs#L109",
     "note": "pattern match [ReadPrivate]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrixAccount.sys.mjs#L379",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrixCommands.sys.mjs#L28",
     "note": "pattern match [Tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/chat/protocols/matrix/matrixAccount.sys.mjs#L167",
     "note": "pattern match [reportEvent]"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "not-found",
     "note": "Mozilla telemetry exists in the wider app; not assessed for the Matrix module"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "no",
     "how": "code",
     "note": "MPL-2.0; the Matrix code is a module inside the Thunderbird/Firefox tree (40,000+ files in comm alone)"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "AGENTS.md at the root of the comm repo (a2318b178f)",
      "13 of 3,823 commits in the last 365 days carry Claude co-author trailers (0.3 %, repo-wide, not the Matrix module)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "thunderbird.webp",
    "source": "https://github.com/thunderbird/thunderbird-desktop/blob/a2318b178f8c2a4200cc7e65aff12496cb55f1ab/mail/branding/thunderbird/default256.png",
    "licence": "MPL-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Only chat/protocols/matrix was checked out; features found there by pattern. Activity metrics for this repo describe all of Thunderbird, not its Matrix support. Mozilla-wide AI contribution rules were not checked.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 15,
     "commits_365d": 4126,
     "share_365d": 0.0036,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 13,
      "qwen": 2
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 90,
    "authors_90d": 55,
    "authors_all": 1531,
    "authors_by_quarter": {
     "2023-Q1": 36,
     "2023-Q2": 38,
     "2023-Q3": 29,
     "2023-Q4": 31,
     "2024-Q1": 33,
     "2024-Q2": 34,
     "2024-Q3": 40,
     "2024-Q4": 33,
     "2025-Q1": 34,
     "2025-Q2": 32,
     "2025-Q3": 30,
     "2025-Q4": 32,
     "2026-Q1": 33,
     "2026-Q2": 37,
     "2026-Q3": 48,
     "2026-Q4": 46
    },
    "bus_factor_365d": 6,
    "ci": false,
    "commits_30d": 579,
    "commits_365d": 4126,
    "commits_90d": 1473,
    "commits_all": 171897,
    "first_commit": "1998-03-28T02:44:41+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Assembly": 0.0052,
     "C": 0.0768,
     "C Header": 0.0274,
     "C++": 0.0733,
     "C++ Header": 0.0034,
     "CSS": 0.0097,
     "Document Type Definition": 0.0016,
     "IDL": 0.0013,
     "JavaScript": 0.1632,
     "Python": 0.0092,
     "Rust": 0.6075,
     "Shell": 0.0127,
     "m4": 0.0036
    },
    "last_commit": "2026-11-04T23:29:53+00:00",
    "last_tag": "RELEASE_160_BASE",
    "last_tag_date": "2026-11-04T17:01:38+00:00",
    "last_tag_repo": "https://github.com/thunderbird/thunderbird-desktop",
    "licence_detected": null,
    "loc": {
     "AWK": 333,
     "Assembly": 36981,
     "BASH": 128,
     "Batch": 14,
     "Bazel": 5236,
     "C": 544094,
     "C Header": 193884,
     "C++": 519204,
     "C++ Header": 24426,
     "CMake": 3497,
     "CSS": 68429,
     "Dockerfile": 309,
     "Document Type Definition": 11160,
     "Emacs Lisp": 35,
     "GLSL": 1420,
     "HTML": 5952,
     "Happy": 2178,
     "IDL": 9489,
     "JSON5": 103,
     "JavaScript": 1155995,
     "Jinja": 31,
     "Kotlin": 1917,
     "LALRPOP": 143,
     "LEX": 362,
     "LLVM IR": 720,
     "Lisp": 138,
     "Makefile": 763,
     "Module-Definition": 234,
     "Nix": 26,
     "Objective C++": 1455,
     "Perl": 1381,
     "Powershell": 34,
     "Python": 65034,
     "Ruby": 1935,
     "Rust": 4302344,
     "SQL": 678,
     "Shell": 89904,
     "Smarty Template": 20,
     "Swift": 1827,
     "TypeScript": 3719,
     "WebGPU Shading Language": 370,
     "Windows Resource-Definition Script": 293,
     "m4": 25314,
     "sed": 16
    },
    "loc_total": 7081525,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 343,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     69,
     52,
     66,
     52,
     88,
     57,
     34,
     20,
     38,
     77,
     74,
     60,
     80,
     64,
     55,
     94,
     93,
     64,
     67,
     66,
     66,
     50,
     79,
     82,
     84,
     59,
     62,
     56,
     51,
     93,
     93,
     111,
     75,
     57,
     78,
     69,
     71,
     47,
     69,
     64,
     88,
     136,
     107,
     121,
     108,
     103,
     116,
     133,
     123,
     171,
     86,
     136
    ]
   }
  },
  {
   "slug": "thurim",
   "name": "Thurim",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A Matrix homeserver written in Elixir, at an early stage.",
   "repos": [
    {
     "url": "https://github.com/serra-allgood/thurim",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Servers/Hosting)"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Elixir",
    "database": "PostgreSQL",
    "federation": {
     "value": "not-found"
    },
    "oidc_delegation": {
     "value": "not-found",
     "note": "no reference to MSC3861/2964/2965/2967 found in the code"
    },
    "native_sliding_sync": {
     "value": "not-found",
     "note": "no reference to MSC4186 found in the code"
    },
    "workers_scaling": {
     "value": "not-found"
    },
    "media_auth": {
     "value": "not-found",
     "note": "no reference to MSC3916 found in the code"
    },
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "restricted",
     "quote": "I'm tentatively comfortable with contributors using AI, though I draw the line at unreviewed code and PR summaries that are AI output.",
     "source": "https://github.com/serra-allgood/thurim/blob/95e80ff829451278bbbb55a2253fcd1bb120e8f4/README.md#L52"
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "95e80ff829451278bbbb55a2253fcd1bb120e8f4"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "thurim.webp",
    "source": "https://github.com/serra-allgood/thurim/blob/95e80ff829451278bbbb55a2253fcd1bb120e8f4/thurim-logo.png",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 13,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 13,
    "commits_90d": 0,
    "commits_all": 13,
    "first_commit": "2026-06-11T09:24:01+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Elixir": 1
    },
    "last_commit": "2026-07-03T10:05:14+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Elixir": 4872
    },
    "loc_total": 4872,
    "main_language": "Elixir",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     9,
     3,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "ttm",
   "name": "Time-to-Matrix (ttm)",
   "category": "tool",
   "kind": "cli",
   "homepage": "https://github.com/etkecc/ttm",
   "summary": "A time-like wrapper that runs a command and sends its output tail, timing and exit status to a Matrix room.",
   "repos": [
    {
     "url": "https://github.com/etkecc/ttm",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "notifications (command results to a room)",
     "how": "claimed",
     "source": "https://github.com/etkecc/ttm/blob/624016f96daa2f426fedc8de6daaa2bb39406bb8/README.md"
    },
    "framework": {
     "value": "own",
     "how": "code",
     "source": "https://github.com/etkecc/ttm/blob/624016f96daa2f426fedc8de6daaa2bb39406bb8/go.mod",
     "note": "no Matrix SDK in go.mod"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/etkecc/ttm/blob/624016f96daa2f426fedc8de6daaa2bb39406bb8/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/etkecc/ttm/blob/624016f96daa2f426fedc8de6daaa2bb39406bb8/README.md",
     "note": "CLI"
    },
    "config": {
     "value": "environment variables (TTM_*)",
     "how": "claimed",
     "source": "https://github.com/etkecc/ttm/blob/624016f96daa2f426fedc8de6daaa2bb39406bb8/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://github.com/etkecc/ttm/blob/624016f96daa2f426fedc8de6daaa2bb39406bb8/go.mod"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 5 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at 624016f96daa"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 5,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 5,
    "commits_90d": 2,
    "commits_all": 47,
    "first_commit": "2021-10-18T15:34:11+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Go": 1
    },
    "last_commit": "2026-09-05T17:59:46+00:00",
    "last_tag": "v1.4.5",
    "last_tag_date": "2024-08-13T13:43:38+03:00",
    "last_tag_repo": "https://github.com/etkecc/ttm",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Go": 863
    },
    "loc_total": 863,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "toot-feed-bot",
   "name": "TootFeedBot",
   "category": "bot",
   "kind": "notifications",
   "homepage": "https://codeberg.org/urmaul/toot-feed-bot",
   "summary": "A bot that forwards the toots of a Mastodon or Pleroma home feed to a Matrix room.",
   "repos": [
    {
     "url": "https://codeberg.org/urmaul/toot-feed-bot",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/integrations/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "notifications (Fediverse feed to room)",
     "how": "claimed",
     "source": "https://codeberg.org/urmaul/toot-feed-bot/src/commit/bb450efd595e0ecacbb318e644f86e8aaf71f2eb/README.md"
    },
    "framework": {
     "value": "matrix-bot-sdk",
     "how": "code",
     "source": "https://codeberg.org/urmaul/toot-feed-bot/src/commit/bb450efd595e0ecacbb318e644f86e8aaf71f2eb/deno.json",
     "note": "with matrix-sdk-crypto-nodejs, run on Deno"
    },
    "e2ee": {
     "value": "partial",
     "how": "code",
     "source": "https://codeberg.org/urmaul/toot-feed-bot/src/commit/bb450efd595e0ecacbb318e644f86e8aaf71f2eb/deno.json",
     "note": "pulls matrix-sdk-crypto-nodejs; the README states no room encryption support either way. Stored values are encrypted at rest."
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://codeberg.org/urmaul/toot-feed-bot/src/commit/bb450efd595e0ecacbb318e644f86e8aaf71f2eb/README.md",
     "note": "Docker"
    },
    "config": {
     "value": "environment variables and chat commands (!reg, !auth, !ignore, …)",
     "how": "claimed",
     "source": "https://codeberg.org/urmaul/toot-feed-bot/src/commit/bb450efd595e0ecacbb318e644f86e8aaf71f2eb/README.md"
    },
    "ai_backend": {
     "value": "none-found",
     "how": "code",
     "source": "https://codeberg.org/urmaul/toot-feed-bot/src/commit/bb450efd595e0ecacbb318e644f86e8aaf71f2eb/deno.json"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 7 non-bot commits in the last 365 days carry an AI attribution (0.0%), counted at bb450efd595e"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Maturity is our reading.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 7,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 7,
    "commits_90d": 0,
    "commits_all": 177,
    "first_commit": "2022-11-30T20:38:00+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0089,
     "TypeScript": 0.9911
    },
    "last_commit": "2026-02-19T20:08:45+00:00",
    "last_tag": "v2.4.1",
    "last_tag_date": "2026-02-19T21:08:45+01:00",
    "last_tag_repo": "https://codeberg.org/urmaul/toot-feed-bot",
    "licence_detected": "MIT",
    "loc": {
     "Dockerfile": 13,
     "TypeScript": 1451
    },
    "loc_total": 1464,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "dormant",
    "tags_365d": 2,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     3,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "transform",
   "name": "Transform",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "A Matrix homeserver built with TypeScript and Redis.",
   "repos": [
    {
     "url": "https://github.com/bettiah/transform",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "TypeScript",
    "msc": []
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "note": "no commits since 2018-06-30; not cloned"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "matrix.org labels it \"Obsolete\". Last push 2018-06-30 (GitHub API); not cloned or MSC-scanned.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 96,
    "first_commit": "2018-06-01T10:27:57+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "TypeScript": 1
    },
    "last_commit": "2018-06-30T12:31:19+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "Apache-2.0",
    "loc": {
     "TypeScript": 7073
    },
    "loc_total": 7073,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "trinity-bot",
   "name": "trinity",
   "category": "bot",
   "kind": "framework",
   "homepage": "https://github.com/bnjbvr/trinity",
   "summary": "A Rust bot host whose commands are WebAssembly component modules (link expansion, Mastodon, calendars, an OpenAI module, …).",
   "repos": [
    {
     "url": "https://github.com/bnjbvr/trinity",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search, repositories sorted by stars, 2026-11-05"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "LGPL-2.1-only",
   "fork_of": null,
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "bot framework with WebAssembly modules",
     "how": "claimed",
     "source": "https://github.com/bnjbvr/trinity/blob/c7b373b8eea11442938b15ce64413d3bfb956b83/README.md"
    },
    "framework": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "source": "https://github.com/bnjbvr/trinity/blob/c7b373b8eea11442938b15ce64413d3bfb956b83/Cargo.toml",
     "note": "matrix-sdk 0.19"
    },
    "e2ee": {
     "value": "not-found",
     "how": "claimed",
     "source": "https://github.com/bnjbvr/trinity/blob/c7b373b8eea11442938b15ce64413d3bfb956b83/README.md",
     "note": "built on matrix-rust-sdk; the README says nothing about encrypted rooms"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/bnjbvr/trinity/blob/c7b373b8eea11442938b15ce64413d3bfb956b83/README.md",
     "note": "binary or Docker image"
    },
    "config": {
     "value": "config file and per-room module commands",
     "how": "claimed",
     "source": "https://github.com/bnjbvr/trinity/blob/c7b373b8eea11442938b15ce64413d3bfb956b83/README.md"
    },
    "ai_backend": {
     "value": "OpenAI",
     "how": "code",
     "source": "https://github.com/bnjbvr/trinity/blob/c7b373b8eea11442938b15ce64413d3bfb956b83/modules/openai/src/lib.rs",
     "note": "the openai module calls api.openai.com/v1/completions with text-davinci-003"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "1 of 22 non-bot commits in the last 365 days carry an AI attribution (4.5%), counted at c7b373b8eea1",
      "example: 60198e0b2dc4 (generated with LLM)",
      "1 merged pull request(s) since 2025-11-05 whose description explicitly discloses AI help (squash merges can drop this from git history): https://github.com/bnjbvr/trinity/pull/107 (\"generated with LLMs\")",
      "the one attributed commit (60198e0b2dc4) says the redb migration tool \"has been generated with LLMs\", reviewed by the author"
     ],
     "collector_override": "the attributed commit says the code \"has been generated with LLMs\" in prose, which the collector's pattern does not match; the merged pull request discloses the same."
    },
    "in_product": {
     "value": "optional",
     "note": "An optional openai module answers prompts through OpenAI's completions API.",
     "source": "https://github.com/bnjbvr/trinity/blob/c7b373b8eea11442938b15ce64413d3bfb956b83/modules/openai/src/lib.rs"
    }
   },
   "notes": "Slug trinity-bot to avoid a clash with any client of that name. Check the LGPL variant (-only vs -or-later) in the source headers before reuse.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 22,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 2,
     "2023-Q2": 2,
     "2023-Q3": 2,
     "2023-Q4": 1,
     "2024-Q1": 0,
     "2024-Q2": 1,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 8,
    "commits_365d": 22,
    "commits_90d": 17,
    "commits_all": 125,
    "first_commit": "2022-10-02T14:45:00+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C": 0.0389,
     "C Header": 0.0115,
     "Dockerfile": 0.0076,
     "Java": 0.0473,
     "Makefile": 0.0057,
     "Rust": 0.8883
    },
    "last_commit": "2026-10-22T12:40:38+00:00",
    "last_tag": null,
    "last_tag_date": null,
    "last_tag_repo": null,
    "licence_detected": "LGPL-2.1",
    "loc": {
     "C": 190,
     "C Header": 56,
     "Dockerfile": 37,
     "Java": 231,
     "Makefile": 28,
     "Rust": 4340,
     "Shell": 4
    },
    "loc_total": 4886,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     5,
     0,
     0,
     0,
     0,
     7,
     1,
     1,
     0,
     0,
     0,
     0,
     1,
     5,
     2,
     0
    ]
   }
  },
  {
   "slug": "trixnity",
   "name": "Trixnity",
   "category": "sdk",
   "kind": "Kotlin",
   "homepage": "https://trixnity.connect2x.de",
   "summary": "A multiplatform Kotlin SDK (JVM, Android, iOS, JS, native) by connect2x for clients, bots, appservices and servers.",
   "repos": [
    {
     "url": "https://gitlab.com/connect2x/trixnity/trixnity",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "android",
    "ios",
    "web",
    "windows",
    "macos",
    "linux",
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "maven"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitlab.com/connect2x/trixnity/trixnity/-/blob/2269b0bae464a9be387bf19770d470051923d352/website/docs/client/features.md",
     "note": "exchangeable crypto driver: libolm or vodozemac (with migration from libolm); cross-signing, key backup, dehydrated devices"
    },
    "crypto": "vodozemac or libolm",
    "sliding_sync": {
     "value": "not-found",
     "how": "code",
     "note": "no MSC4186 or MSC3575 code at this commit"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "claimed",
     "source": "https://gitlab.com/connect2x/trixnity/trixnity/-/blob/2269b0bae464a9be387bf19770d470051923d352/website/docs/client/features.md",
     "note": "\"OAuth2-based login\""
    },
    "threads": {
     "value": "partial",
     "how": "claimed",
     "source": "https://gitlab.com/connect2x/trixnity/trixnity/-/blob/2269b0bae464a9be387bf19770d470051923d352/website/docs/client/features.md",
     "note": "\"basic support, no separate timelines or client aggregations yet\""
    },
    "spaces": {
     "value": "partial",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity/trixnity/-/blob/2269b0bae464a9be387bf19770d470051923d352/trixnity-clientserverapi/trixnity-clientserverapi-client/src/commonMain/kotlin/de/connect2x/trixnity/clientserverapi/client/RoomApiClient.kt",
     "note": "hierarchy API in the client-server API module; no space model in trixnity-client found"
    },
    "purpose": {
     "value": "client, bot, bridge, server",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "keryx",
     "matrix-qq-bridge",
     "matrix-sms-bridge",
     "matrix-spring-boot-sdk",
     "tacit",
     "tammy",
     "trixnity-messenger"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 636 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 2269b0bae464"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "icon": {
    "file": "trixnity.webp",
    "source": "https://gitlab.com/connect2x/trixnity/trixnity/-/blob/2269b0bae464a9be387bf19770d470051923d352/website/static/img/logo.png",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"Trixnity\" (Stable, Kotlin, maintainer: connect2x GmbH). Last non-bot commit 2026-11-04, 636 non-bot commits in the last year and 12 authors in the last 90 days by our count at 2269b0bae464 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "trixnity-messenger",
   "name": "Trixnity Messenger",
   "category": "sdk",
   "kind": "Kotlin",
   "homepage": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger",
   "summary": "A headless, UI-agnostic messenger SDK on top of Trixnity (view models for room lists, timelines, settings), the base of Tammy and Tacit.",
   "repos": [
    {
     "url": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger",
     "forge": "gitlab",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/sdks/",
    "other": [
     "matrix.org community space, SDKs section (sources/community-space.tsv)",
     "Lane 3 notes (Tammy, Tacit)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "android",
    "ios",
    "web",
    "windows",
    "macos",
    "linux"
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "maven"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f1a46bb0e09435bea5992bba8569ff49594e8977/trixnity-messenger/src/commonMain/kotlin/de/connect2x/trixnity/messenger/CreateCryptoDriverModule.kt",
     "note": "through Trixnity (vodozemac crypto driver)"
    },
    "crypto": "vodozemac (via Trixnity)",
    "sliding_sync": {
     "value": "not-found",
     "how": "code",
     "note": "none in Trixnity either"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f1a46bb0e09435bea5992bba8569ff49594e8977/trixnity-messenger-compose-app/src/webMain/kotlin/de/connect2x/trixnity/messenger/compose/app/main.kt",
     "note": "OAuth2 login from Trixnity"
    },
    "threads": {
     "value": "not-found",
     "how": "code",
     "note": "no thread view model found"
    },
    "spaces": {
     "value": "not-found",
     "how": "code",
     "note": "no space view model found"
    },
    "purpose": {
     "value": "client",
     "how": "claimed",
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/sdks/sdks.toml"
    },
    "used_by": [
     "tacit",
     "tammy"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 2014 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at f1a46bb0e094"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "icon": {
    "file": "trixnity-messenger.webp",
    "source": "https://gitlab.com/connect2x/trixnity-messenger/trixnity-messenger/-/blob/f1a46bb0e09435bea5992bba8569ff49594e8977/trixnity-messenger-compose-app/src/androidMain/ic_launcher-playstore.png",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "matrix.org lists it as \"Trixnity Messenger\" (Beta, Kotlin, maintainer: connect2x GmbH). Last non-bot commit 2026-11-04, 2014 non-bot commits in the last year and 19 authors in the last 90 days by our count at f1a46bb0e094 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "beeper-tumblr-dms",
   "name": "Tumblr for Beeper",
   "category": "bridge",
   "kind": "puppeting bridge",
   "homepage": null,
   "summary": "Unofficial Tumblr direct-message bridge for Beeper on mautrix-go bridgev2, self-hostable.",
   "repos": [
    {
     "url": "https://github.com/beeper/tumblr-dms",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub search org:beeper"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "network": "Tumblr DMs",
    "framework": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/tumblr-dms/blob/5108ddbcf34b8e606e2f819276088c05c4df9caa/go.mod",
     "note": "mautrix-go bridgev2"
    },
    "puppeting": {
     "value": "not-found"
    },
    "e2ee": {
     "value": "not-found"
    },
    "backfill": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/beeper/tumblr-dms/blob/5108ddbcf34b8e606e2f819276088c05c4df9caa/pkg/connector/backfill.go"
    },
    "media": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/beeper/tumblr-dms/blob/5108ddbcf34b8e606e2f819276088c05c4df9caa/README.md"
    },
    "reactions_edits": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/beeper/tumblr-dms/blob/5108ddbcf34b8e606e2f819276088c05c4df9caa/README.md"
    },
    "group_chats": {
     "value": "no",
     "how": "claimed",
     "source": "https://github.com/beeper/tumblr-dms/blob/5108ddbcf34b8e606e2f819276088c05c4df9caa/README.md"
    },
    "login_methods": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/beeper/tumblr-dms/blob/5108ddbcf34b8e606e2f819276088c05c4df9caa/README.md",
     "note": "username/password with 2FA"
    },
    "network_tos_risk": {
     "value": "not-found",
     "note": "README: not an official integration; web changes may break it"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files at HEAD 5108ddbcf34b; no AI-attributed commits among 51 non-bot commits in the last 365 days"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "no generative-AI features found in the README or dependency manifests",
     "source": null
    }
   },
   "notes": "Found with GitHub search org:beeper.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 51,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 4,
    "authors_90d": 4,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 2,
     "2026-Q3": 1,
     "2026-Q4": 4
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 19,
    "commits_365d": 51,
    "commits_90d": 45,
    "commits_all": 51,
    "first_commit": "2026-06-03T22:16:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0017,
     "Go": 0.9832,
     "SQL": 0.0098,
     "Shell": 0.0053
    },
    "last_commit": "2026-11-03T21:38:57+00:00",
    "last_tag": "v0.1.0",
    "last_tag_date": "2026-06-03T18:17:11-04:00",
    "last_tag_repo": "https://github.com/beeper/tumblr-dms",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Dockerfile": 29,
     "Go": 16393,
     "SQL": 163,
     "Shell": 88
    },
    "loc_total": 16673,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     2,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     1,
     7,
     0,
     9,
     9,
     1,
     0,
     0,
     1,
     1,
     3,
     4,
     7,
     4
    ]
   }
  },
  {
   "slug": "tuwunel",
   "name": "Tuwunel",
   "category": "server",
   "kind": "homeserver",
   "homepage": "https://tuwunel.chat",
   "summary": "A Rust Matrix homeserver, the successor to conduwuit, sponsored in part by the Swiss government.",
   "repos": [
    {
     "url": "https://github.com/matrix-construct/tuwunel",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "stable",
   "platforms": [
    "server"
   ],
   "licence": "Apache-2.0",
   "fork_of": "conduwuit",
   "distribution": [
    "docker",
    "debian",
    "rpm",
    "nix"
   ],
   "funding": [],
   "features": {
    "language": "Rust",
    "database": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/deploying.md#L60",
     "note": "RocksDB (embedded; SQLite support removed)"
    },
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L56",
     "versions": [
      "r0.0.1",
      "r0.1.0",
      "r0.2.0",
      "r0.3.0",
      "r0.4.0",
      "r0.5.0",
      "r0.6.0",
      "r0.6.1",
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.6",
      "v1.7",
      "v1.8",
      "v1.9",
      "v1.10",
      "v1.11",
      "v1.12",
      "v1.13",
      "v1.14",
      "v1.15",
      "v1.16",
      "v1.17",
      "v1.18",
      "v1.19"
     ]
    },
    "appservices": {
     "value": "yes",
     "how": "claimed"
    },
    "admin_api": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/synapse-admin.md",
     "note": "admin room commands, and a Synapse admin API compatibility table"
    },
    "oidc_delegation": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/authentication/oidc-server.md",
     "note": "built-in OIDC server (docs/authentication/oidc-server.md)"
    },
    "native_sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L82",
     "note": "MSC4186: unstable"
    },
    "workers_scaling": {
     "value": "no",
     "how": "claimed"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L110",
     "note": "MSC3916: stable"
    },
    "msc": [
     {
      "msc": 1219,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L262",
      "note": "project self-assessment: yes (82/100); better-key compare in add_key (all PUT routes); 403 M_WRONG_ROOM_KEYS_VERSION"
     },
     {
      "msc": 1227,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L876",
      "note": "project self-assessment: yes (80/90); lazy_load_members supported via filter; service in rooms/lazy_loading"
     },
     {
      "msc": 1236,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L737",
      "note": "project self-assessment: yes (100/100); m.widgets via generic account data; widget API/UI and room state excluded"
     },
     {
      "msc": 1425,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L875",
      "note": "project self-assessment: yes (100/100); room versioning fully present; STABLE_ROOM_VERSIONS in core/config"
     },
     {
      "msc": 1442,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L261",
      "note": "project self-assessment: yes (90/100); state res v2 implemented in src/service/rooms/state_res/resolve.rs"
     },
     {
      "msc": 1466,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L260",
      "note": "project self-assessment: yes (100/100); soft_logout=true returned for expired tokens in 401 responses"
     },
     {
      "msc": 1497,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L874",
      "note": "project self-assessment: yes (100/100); unstable_features map present in /_matrix/client/versions"
     },
     {
      "msc": 1501,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L259",
      "note": "project self-assessment: yes (90/90); upgrade endpoint present; tombstone, predecessor, PL freeze all implemented"
     },
     {
      "msc": 1597,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L873",
      "note": "project self-assessment: partial (20/30); validate_strict is dispatched; ruma admits / and +; ID grammars unenforced"
     },
     {
      "msc": 1659,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L258",
      "note": "project self-assessment: yes (90/100); reference_hash event IDs; v3 in UNSTABLE_ROOM_VERSIONS; auth_events as list-o..."
     },
     {
      "msc": 1692,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L257",
      "note": "project self-assessment: yes (95/100); m.login.terms stage built from registration_terms config; UIA completes it"
     },
     {
      "msc": 1693,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L256",
      "note": "project self-assessment: yes (100/100); rejected event handling in iterative auth check matches MSC1442 amendment"
     },
     {
      "msc": 1708,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L255",
      "note": "project self-assessment: yes (90/100); src/service/resolver/well_known.rs; resolver/actual.rs ordering matches spec"
     },
     {
      "msc": 1711,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L254",
      "note": "project self-assessment: yes (100/100); reqwest+rustls; tls_fingerprints not exposed; standard CA validation"
     },
     {
      "msc": 1721,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L253",
      "note": "project self-assessment: yes (100/100); src/api/client/session/sso.rs and uiaa.rs advertise m.login.sso"
     },
     {
      "msc": 1730,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L252",
      "note": "project self-assessment: yes (100/100); src/api/client/session/mod.rs:176 sets well_known on login response"
     },
     {
      "msc": 1753,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L251",
      "note": "project self-assessment: yes (100/100); src/api/client/capabilities.rs handles GET /capabilities incl m.change_password"
     },
     {
      "msc": 1756,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L250",
      "note": "project self-assessment: yes (90/100); src/api/client/keys/upload_signing_keys.rs and upload_signatures.rs implement..."
     },
     {
      "msc": 1767,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/message.rs#L86",
      "note": "unstable prefix in code"
     },
     {
      "msc": 1772,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L247",
      "note": "project self-assessment: yes (90/90); spaces implemented; src/api/client/space.rs hierarchy + room create with type"
     },
     {
      "msc": 1794,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L246",
      "note": "project self-assessment: yes (100/100); src/api/server/invite.rs:28 implements PUT /federation/v2/invite"
     },
     {
      "msc": 1802,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L245",
      "note": "project self-assessment: yes (100/100); src/api/server/send_join.rs:30 and send_leave.rs:15 handle v2"
     },
     {
      "msc": 1804,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L244",
      "note": "project self-assessment: yes (100/100); src/api/client/capabilities.rs sets RoomVersionsCapability"
     },
     {
      "msc": 1812,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L243",
      "note": "project self-assessment: yes (100/100); src/api/server/make_leave.rs:34 and make_join.rs:52 set room_version"
     },
     {
      "msc": 1819,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L242",
      "note": "project self-assessment: yes (100/100); duplicate of MSC1818; presence lists not implemented"
     },
     {
      "msc": 1831,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L241",
      "note": "project self-assessment: yes (100/100); src/service/resolver/actual.rs:79 well-known before SRV"
     },
     {
      "msc": 1840,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L866",
      "note": "project self-assessment: partial (60/100); room_types filter on sliding sync only; v3 filter API unextended"
     },
     {
      "msc": 1866,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L240",
      "note": "project self-assessment: yes (100/100); client invite maps remote unsupported-version to M_UNSUPPORTED_ROOM_VERSION"
     },
     {
      "msc": 1884,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L239",
      "note": "project self-assessment: yes (100/100); room v4 supported via ruma EventIdFormatVersion::V3 (URL-safe base64)"
     },
     {
      "msc": 1888,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L865",
      "note": "project self-assessment: yes (90/100); [→ MSC2409] appservice receive_ephemeral with EDU push; src/service/sending/s..."
     },
     {
      "msc": 1915,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L238",
      "note": "project self-assessment: partial (60/55); delete + deactivate return id_server_unbind_result; IS unbind out of HS scope"
     },
     {
      "msc": 1929,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L237",
      "note": "project self-assessment: yes (100/100); src/api/client/well_known.rs:42; multiple contacts via support_contact map"
     },
     {
      "msc": 1930,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L236",
      "note": "project self-assessment: yes (100/100); ruma Ruleset::server_default includes ConditionalPushRule::tombstone()"
     },
     {
      "msc": 1935,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L864",
      "note": "project self-assessment: partial (30/40); [→ MSC2076] no valid_until_ts enforcement; v4 and v5 supported but listed uns..."
     },
     {
      "msc": 1943,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L863",
      "note": "project self-assessment: yes (100/100); default room version V12 (&gt;= v3)"
     },
     {
      "msc": 1946,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L235",
      "note": "project self-assessment: yes (80/90); generic account_data + to-device pipe carry secret storage/sharing"
     },
     {
      "msc": 1953,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L862",
      "note": "project self-assessment: yes (100/100); ruma redact() does not retain prev_content"
     },
     {
      "msc": 1954,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L234",
      "note": "project self-assessment: yes (100/100); merged; identical to MSC1953; ruma redact omits prev_content"
     },
     {
      "msc": 1957,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L233",
      "note": "project self-assessment: partial (50/50); account-data passthrough only; no m.integrations key in well-known client"
     },
     {
      "msc": 1958,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L861",
      "note": "project self-assessment: yes (100/100); revised m.widgets stored verbatim; client widget rendering and OpenID excluded"
     },
     {
      "msc": 2002,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L232",
      "note": "project self-assessment: yes (100/100); v4 in supported_room_versions; ruma rules implement v4"
     },
     {
      "msc": 2033,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L231",
      "note": "project self-assessment: yes (100/100); src/api/client/account.rs:74 returns device_id in whoami response"
     },
     {
      "msc": 2061,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L858",
      "note": "project self-assessment: yes (100/100); src/api/router.rs:250 routes both /key/v2/server and /server/{key_id}"
     },
     {
      "msc": 2077,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L229",
      "note": "project self-assessment: yes (100/100); src/core/config/room_version.rs:7; v5 unstable but supported"
     },
     {
      "msc": 2078,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L228",
      "note": "project self-assessment: yes (90/100); HS sends and validates email request tokens itself via magic-link, no id server"
     },
     {
      "msc": 2140,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L226",
      "note": "project self-assessment: partial (50/60); no 3pid/unbind or IS relay; accepted_terms and register cleanup present"
     },
     {
      "msc": 2153,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L857",
      "note": "project self-assessment: yes (100/100); Ruleset::server_default() includes .m.rule.reaction via Ruma"
     },
     {
      "msc": 2174,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L225",
      "note": "project self-assessment: yes (100/100); src/core/matrix/event/redact.rs handles redacts move per room rules"
     },
     {
      "msc": 2175,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L224",
      "note": "project self-assessment: yes (100/100); creator() falls back to sender when use_room_create_sender"
     },
     {
      "msc": 2176,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L223",
      "note": "project self-assessment: yes (100/100); redact_in_place uses room_version_rules.redaction"
     },
     {
      "msc": 2181,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L222",
      "note": "project self-assessment: yes (100/100); M_USER_DEACTIVATED returned by login paths"
     },
     {
      "msc": 2190,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L721",
      "note": "project self-assessment: yes (80/80); appservice token defaults to sender_localpart user"
     },
     {
      "msc": 2197,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L221",
      "note": "project self-assessment: yes (100/100); POST /_matrix/federation/v1/publicRooms with filter implemented"
     },
     {
      "msc": 2209,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L220",
      "note": "project self-assessment: yes (100/100); limit_notifications_power_levels enforced for v6+"
     },
     {
      "msc": 2229,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L219",
      "note": "project self-assessment: partial (0/20); [→ MSC2290] owner exemption at 3pid/add only; requestToken still rejects the ..."
     },
     {
      "msc": 2230,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L218",
      "note": "project self-assessment: yes (100/100); m.identity_server kept verbatim, base_url null too; client IS choice excluded"
     },
     {
      "msc": 2240,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L217",
      "note": "project self-assessment: yes (100/100); V6 in STABLE_ROOM_VERSIONS; v6 auth rules and rules engine implemented"
     },
     {
      "msc": 2246,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L215",
      "note": "project self-assessment: yes (100/100); async media routes wired; create_pending, upload_pending, error codes present"
     },
     {
      "msc": 2249,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L214",
      "note": "project self-assessment: yes (90/100); src/api/client/report.rs:173 verifies sender is room member; PDU lookup gated"
     },
     {
      "msc": 2260,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L855",
      "note": "project self-assessment: partial (50/50); Subsumed by MSC2432/v6 auth rules; aliases sender-domain check enforced"
     },
     {
      "msc": 2261,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L854",
      "note": "project self-assessment: yes (100/100); Subsumed by MSC2432/v6 redaction rules"
     },
     {
      "msc": 2263,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L213",
      "note": "project self-assessment: yes (80/80); HS email registration; binds the address in any UIA stage order"
     },
     {
      "msc": 2264,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L212",
      "note": "project self-assessment: yes (90/100); flag not advertised; r0.6.0 and later advertised instead, as Synapse does"
     },
     {
      "msc": 2265,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L211",
      "note": "project self-assessment: partial (75/100); HS case-folds whole email (ss-fold) before storage; IS migration out of scope"
     },
     {
      "msc": 2270,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L714",
      "note": "project self-assessment: partial (30/30); m.ignored_room_list absent; generic account-data store only, no sync filter"
     },
     {
      "msc": 2285,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L88",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2290,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L209",
      "note": "project self-assessment: partial (65/55); add endpoint (UIA+dupe) + HS email validation; IS-bind half out of scope"
     },
     {
      "msc": 2306,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L852",
      "note": "project self-assessment: yes (100/100); msisdn pw reset endpoint absent; ThreepidDenied on msisdn"
     },
     {
      "msc": 2315,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L710",
      "note": "project self-assessment: yes (100/100); m.integrations kept verbatim incl. unstable name; client rendering excluded"
     },
     {
      "msc": 2324,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L207",
      "note": "project self-assessment: partial (60/100); two MUST misses: unprefixed unstable SSO callback; stable v1/auth_issuer"
     },
     {
      "msc": 2334,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L206",
      "note": "project self-assessment: yes (100/100); Default room version is V12, well past V5"
     },
     {
      "msc": 2367,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L205",
      "note": "project self-assessment: yes (100/100); reason field handled in invite/leave/kick/ban/unban/join membership routes"
     },
     {
      "msc": 2403,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L204",
      "note": "project self-assessment: yes (90/90); Knock CS+SS endpoints, sync key, public-rooms join_rule all wired"
     },
     {
      "msc": 2409,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L203",
      "note": "project self-assessment: partial (70/70); typing+receipt EDUs sent to AS; presence not forwarded"
     },
     {
      "msc": 2414,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L202",
      "note": "project self-assessment: yes (100/100); reason and score are Option in ruma report types; route accepts both"
     },
     {
      "msc": 2416,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L848",
      "note": "project self-assessment: yes (90/100); m.login.jwt fully wired in session module"
     },
     {
      "msc": 2432,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L201",
      "note": "project self-assessment: yes (80/90); alt_aliases wired; canonical_alias resolve check; rooms/{}/aliases route present"
     },
     {
      "msc": 2437,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L700",
      "note": "project self-assessment: yes (100/100); m.tagged_events stored via existing room account_data routes"
     },
     {
      "msc": 2444,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L698",
      "note": "project self-assessment: partial (30/30); world_readable allowed on some federation reads; no /peek subscription API"
     },
     {
      "msc": 2448,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L697",
      "note": "project self-assessment: partial (70/80); blurhash on profile, federation query, media upload, member events"
     },
     {
      "msc": 2451,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L200",
      "note": "project self-assessment: yes (100/100); No /query_auth route registered in src/api/router.rs"
     },
     {
      "msc": 2454,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L199",
      "note": "project self-assessment: yes (90/90); src/api/router/auth/uiaa.rs:53 sso_flow; sso/uiaa.rs serves fallback"
     },
     {
      "msc": 2457,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L198",
      "note": "project self-assessment: yes (100/100); src/api/client/account.rs:41 honors body.logout_devices"
     },
     {
      "msc": 2472,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L197",
      "note": "project self-assessment: yes (100/100); SSSS key metadata and secrets kept verbatim; client crypto and trust excluded"
     },
     {
      "msc": 2474,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L696",
      "note": "project self-assessment: yes (100/100); plaintext version in m.megolm_backup.v1 kept verbatim; client matching excluded"
     },
     {
      "msc": 2499,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L693",
      "note": "project self-assessment: partial (10/30); src/service/resolver/well_known.rs follows redirects; 12288B cap; uses /versions"
     },
     {
      "msc": 2526,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L196",
      "note": "project self-assessment: yes (100/100); src/api/client/backup.rs:134 delete_backup_version_route"
     },
     {
      "msc": 2540,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L195",
      "note": "project self-assessment: yes (80/80); canonical JSON enforced at the parse boundary, not keyed off room version"
     },
     {
      "msc": 2545,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L194",
      "note": "project self-assessment: yes (100/100); image_pack.rooms passthrough; federated packs never grammar-checked; UX excluded"
     },
     {
      "msc": 2579,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L846",
      "note": "project self-assessment: yes (100/100); Generic account-data path carries `m.tag.<tag>`; ordering rules are client-side"
     },
     {
      "msc": 2631,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L844",
      "note": "project self-assessment: yes (80/80); ruma HttpPusherData flattens custom data; default_payload accepted via passth..."
     },
     {
      "msc": 2659,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L192",
      "note": "project self-assessment: yes (95/100); ping surfaces M_CONNECTION_TIMEOUT/FAILED and M_BAD_STATUS per spec"
     },
     {
      "msc": 2663,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L191",
      "note": "project self-assessment: yes (100/100); src/api/client/push.rs all 7 endpoints return NotFound"
     },
     {
      "msc": 2666,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L190",
      "note": "project self-assessment: yes (92/100); v1 stable path + count + cursor pagination; self-query/non-compliant 400"
     },
     {
      "msc": 2674,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L189",
      "note": "project self-assessment: yes (90/100); relates_to handled in append; rel_type tracked"
     },
     {
      "msc": 2675,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L188",
      "note": "project self-assessment: partial (60/75); thread+edit+reference bundled (edit/ref gated); reactions unbundled"
     },
     {
      "msc": 2676,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L187",
      "note": "project self-assessment: partial (50/60); edits accepted/relayed; no m.replace bundle or new_content apply"
     },
     {
      "msc": 2677,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L186",
      "note": "project self-assessment: yes (80/90); Duplicate annotation rejected; reactions plumbed"
     },
     {
      "msc": 2689,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L185",
      "note": "project self-assessment: yes (100/100); Auth treats guests like users; /members open"
     },
     {
      "msc": 2695,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L689",
      "note": "project self-assessment: partial (40/40); Federation /event exists; no client /events/{eventId} revival"
     },
     {
      "msc": 2697,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L841",
      "note": "project self-assessment: partial (40/60); [→ MSC3814] Dehydration served at the MSC3814 prefix; no claim and no token r..."
     },
     {
      "msc": 2700,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L840",
      "note": "project self-assessment: partial (50/50); image crate handles png/jpeg/gif; no svg/video"
     },
     {
      "msc": 2701,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L184",
      "note": "project self-assessment: yes (80/90); Optional Content-Type accepted; stored and returned"
     },
     {
      "msc": 2702,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L183",
      "note": "project self-assessment: yes (100/100); Content-Disposition and inline allowlist enforced for media downloads, thumbn..."
     },
     {
      "msc": 2703,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L839",
      "note": "project self-assessment: yes (100/100); 32-char alphanumeric media IDs; opaque"
     },
     {
      "msc": 2704,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L838",
      "note": "project self-assessment: yes (100/100); Fresh MXC per upload; no dedup"
     },
     {
      "msc": 2705,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L182",
      "note": "project self-assessment: yes (90/90); animated honored and animated GIF generated; webp output preference unmet"
     },
     {
      "msc": 2732,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L181",
      "note": "project self-assessment: yes (100/100); src/api/client/keys/claim_keys.rs:86; upload, claim-fallback, sync-unused-lis..."
     },
     {
      "msc": 2765,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L180",
      "note": "project self-assessment: yes (100/100); avatar_url in m.widgets kept verbatim; rendering and room widget state excluded"
     },
     {
      "msc": 2771,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L836",
      "note": "project self-assessment: yes (100/100); room account data passthrough (m.bookmarks); client selection, UI excluded"
     },
     {
      "msc": 2778,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L179",
      "note": "project self-assessment: yes (100/100); src/api/client/session/appservice.rs implements m.login.application_service"
     },
     {
      "msc": 2782,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L681",
      "note": "project self-assessment: yes (90/90); full_event opt-in works; membership absent, user_is_target now correct"
     },
     {
      "msc": 2788,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L178",
      "note": "project self-assessment: yes (100/100); default_default_room_version is V12 in src/core/config/mod.rs:5752"
     },
     {
      "msc": 2810,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L834",
      "note": "project self-assessment: partial (70/70); ACL and push globs go through wildmatch; the backslash escape is unimplemented"
     },
     {
      "msc": 2815,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L676",
      "note": "project self-assessment: yes (90/100); include_unredacted_content honored; admin or redact PL gates access"
     },
     {
      "msc": 2832,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L177",
      "note": "project self-assessment: yes (100/100); src/service/appservice/request.rs sends Bearer header and query"
     },
     {
      "msc": 2836,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L95",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2844,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L176",
      "note": "project self-assessment: yes (90/90); src/api/client/versions.rs advertises v1.1 through v1.15"
     },
     {
      "msc": 2858,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L175",
      "note": "project self-assessment: yes (100/100); identity_providers in /login flows; /login/sso/redirect/{idpId} routed"
     },
     {
      "msc": 2867,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L174",
      "note": "project self-assessment: yes (100/100); client convention; account data type stored generically"
     },
     {
      "msc": 2870,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L173",
      "note": "project self-assessment: yes (100/100); redaction dispatches on RoomVersionRules.redaction; ruma MSC2870 enabled"
     },
     {
      "msc": 2872,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L669",
      "note": "project self-assessment: yes (100/100); m.widgets account data passthrough; top-level title opaque; client UI excluded"
     },
     {
      "msc": 2874,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L172",
      "note": "project self-assessment: yes (100/100); SSSS key and default_key account data passthrough; client key choice excluded"
     },
     {
      "msc": 2895,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L666",
      "note": "project self-assessment: partial (20/30); membership filter present but single valued; no /rooms, joined_* not deprecated"
     },
     {
      "msc": 2918,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L171",
      "note": "project self-assessment: yes (90/100); /refresh, expires_in_ms, refresh_token in /login and /register"
     },
     {
      "msc": 2946,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L99",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2949,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L662",
      "note": "project self-assessment: yes (100/100); own auth and rate policy diverges from spec annotations; client advice excluded"
     },
     {
      "msc": 2964,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L135",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2965,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L137",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2966,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L139",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2967,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L141",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2970,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L659",
      "note": "project self-assessment: partial (40/50); path/scheme constraints relaxed; lacks fragment/userinfo/8000-char checks"
     },
     {
      "msc": 2998,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L165",
      "note": "project self-assessment: yes (100/100); V7 listed in STABLE_ROOM_VERSIONS; full knock support present"
     },
     {
      "msc": 3008,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L658",
      "note": "project self-assessment: yes (100/100); m.widgets account data passthrough; auth.scopes opaque; OAuth, client excluded"
     },
     {
      "msc": 3009,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L657",
      "note": "project self-assessment: yes (100/100); m.widgets account data passthrough; transports field opaque; client ws excluded"
     },
     {
      "msc": 3015,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L655",
      "note": "project self-assessment: yes (100/100); override.* room account data rides the generic per-room endpoint and sync"
     },
     {
      "msc": 3026,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L101",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3030,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L97",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3069,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L163",
      "note": "project self-assessment: yes (80/100); whoami returns is_guest; uses is_deactivated heuristic"
     },
     {
      "msc": 3083,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L162",
      "note": "project self-assessment: yes (100/100); restricted_join_rule auth via RoomVersionRules; v8/v9"
     },
     {
      "msc": 3137,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L817",
      "note": "project self-assessment: yes (100/100); type:m.space in m.room.create accepted; used in directory and spaces"
     },
     {
      "msc": 3173,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L161",
      "note": "project self-assessment: yes (100/100); summary_stripped includes recommended events incl create"
     },
     {
      "msc": 3202,
      "state": "experimental",
      "flag": "msc3202_transaction_extensions",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/core/config/mod.rs#L2467",
      "note": "behind a config option"
     },
     {
      "msc": 3214,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L644",
      "note": "project self-assessment: yes (90/100); initial_state PL effectively replaces default via later append"
     },
     {
      "msc": 3226,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L160",
      "note": "project self-assessment: yes (100/100); room account data passthrough (m.input_language, fractal type); UI excluded"
     },
     {
      "msc": 3230,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L641",
      "note": "project self-assessment: yes (100/100); room account data passthrough (m.space_order); ordering logic client-side"
     },
     {
      "msc": 3231,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L159",
      "note": "project self-assessment: yes (100/100); registration token UIA + validity endpoint implemented"
     },
     {
      "msc": 3245,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/Cargo.toml#L395",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3266,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L158",
      "note": "project self-assessment: yes (100/100); summary endpoint routed at unstable and (via Ruma) stable paths"
     },
     {
      "msc": 3267,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L157",
      "note": "project self-assessment: partial (60/80); m.reference bundle added; gated default-off; no ignore/visibility filter"
     },
     {
      "msc": 3270,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L814",
      "note": "project self-assessment: yes (100/100); backup algorithm, auth_data, session_data kept raw; SSSS secret via account data"
     },
     {
      "msc": 3283,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L156",
      "note": "project self-assessment: yes (100/100); src/api/client/capabilities.rs explicitly emits m.set_displayname, m.set_avat..."
     },
     {
      "msc": 3289,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L154",
      "note": "project self-assessment: yes (100/100); room v8 listed stable; restricted join rule auth implemented"
     },
     {
      "msc": 3302,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L813",
      "note": "project self-assessment: yes (100/100); m.stories.blocklist and m.stories.ignore ride the generic account-data path"
     },
     {
      "msc": 3316,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L153",
      "note": "project self-assessment: yes (100/100); appservice ts honored on /send and /state"
     },
     {
      "msc": 3375,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L152",
      "note": "project self-assessment: yes (100/100); room v9 stable; redaction keeps join_authorised_via_users_server"
     },
     {
      "msc": 3381,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/Cargo.toml#L396",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3383,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L151",
      "note": "project self-assessment: yes (100/100); X-Matrix destination field validated on inbound federation"
     },
     {
      "msc": 3385,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L631",
      "note": "project self-assessment: partial (30/40); upgrade copies fixed list of state, not all m.* state nor account_data"
     },
     {
      "msc": 3391,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L811",
      "note": "project self-assessment: yes (100/100); Both DELETE routes reject protected keys before mutation"
     },
     {
      "msc": 3401,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/room/create.rs#L845",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3419,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L150",
      "note": "project self-assessment: yes (100/100); no guest-specific gate on state-event send path; PL/auth_check applies unifor..."
     },
     {
      "msc": 3440,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L160",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3442,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L148",
      "note": "project self-assessment: yes (100/100); prev_content placed under unsigned in created/appended PDUs"
     },
     {
      "msc": 3489,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/Cargo.toml#L398",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3567,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L146",
      "note": "project self-assessment: yes (100/100); from is optional; defaults to start/end based on dir"
     },
     {
      "msc": 3575,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L103",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3585,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L807",
      "note": "project self-assessment: yes (100/100); event_auth handler omits the requested event itself per MSC"
     },
     {
      "msc": 3588,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L806",
      "note": "project self-assessment: yes (100/100); msc3588.stories.block-list rides the generic account-data store and sync"
     },
     {
      "msc": 3589,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L145",
      "note": "project self-assessment: yes (100/100); default_room_version defaults to V12 (exceeds V9)"
     },
     {
      "msc": 3604,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L144",
      "note": "project self-assessment: yes (100/100); V10 supported; integer_power_levels and knock_restricted enforced"
     },
     {
      "msc": 3644,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L616",
      "note": "project self-assessment: partial (50/100); Edits fold with no m.new_content, but a type-changing edit is dropped"
     },
     {
      "msc": 3664,
      "state": "experimental",
      "flag": "msc3664_related_event_match",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/core/config/push.rs#L73",
      "note": "behind a config option"
     },
     {
      "msc": 3666,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L143",
      "note": "project self-assessment: yes (90/100); result + context events bundled; thread always, edit/ref gated default-off"
     },
     {
      "msc": 3667,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L142",
      "note": "project self-assessment: yes (100/100); integer_power_levels enforced via RoomVersionRules from V10+"
     },
     {
      "msc": 3672,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/message.rs#L93",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3706,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L141",
      "note": "project self-assessment: yes (90/100); send_join supports omit_members, members_omitted, servers_in_room"
     },
     {
      "msc": 3715,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L140",
      "note": "project self-assessment: yes (100/100); dir parameter on /relations is parsed and used"
     },
     {
      "msc": 3743,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L139",
      "note": "project self-assessment: yes (90/100); M_UNRECOGNIZED 404/405 fallback wired in router"
     },
     {
      "msc": 3754,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L801",
      "note": "project self-assessment: yes (95/100); [→ MSC4133?] DELETE profile field route serves avatar_url and displayname; ke..."
     },
     {
      "msc": 3758,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L138",
      "note": "project self-assessment: yes (90/100); event_property_is dispatched via Ruma Ruleset::get_actions"
     },
     {
      "msc": 3765,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L137",
      "note": "project self-assessment: yes (90/100); reader prefers m.topic text/plain; topic text now indexed for search"
     },
     {
      "msc": 3771,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L156",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3773,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L158",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3786,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L134",
      "note": "project self-assessment: yes (100/100); server_acl predefined push rule via Ruma defaults"
     },
     {
      "msc": 3787,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L133",
      "note": "project self-assessment: yes (100/100); Knock-restricted fully wired; remote re-knock reconciles the room server"
     },
     {
      "msc": 3803,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L605",
      "note": "project self-assessment: yes (100/100); m.widgets account data passthrough; widget protocol and room state excluded"
     },
     {
      "msc": 3814,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L604",
      "note": "project self-assessment: partial (75/90); All four routes wired; events endpoint is the deprecated POST, not the GET"
     },
     {
      "msc": 3815,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L603",
      "note": "project self-assessment: yes (100/100); m.world.profile global account data passthrough; 3D and world state excluded"
     },
     {
      "msc": 3816,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L132",
      "note": "project self-assessment: yes (100/100); current_user_participated recomputed per requester at read time on all paths"
     },
     {
      "msc": 3818,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L131",
      "note": "project self-assessment: yes (100/100); upgrade reuses old m.room.create content; type preserved by default"
     },
     {
      "msc": 3820,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L130",
      "note": "project self-assessment: yes (90/100); v11 stable; redaction and auth rules dispatch via Ruma RoomVersionRules"
     },
     {
      "msc": 3821,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L129",
      "note": "project self-assessment: yes (90/100); redact_in_place uses Ruma RedactionRules.V11 with keep third_party_invite.signed"
     },
     {
      "msc": 3823,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L128",
      "note": "project self-assessment: yes (100/100); M_USER_SUSPENDED maps to 403; route and handler suspension gates remain"
     },
     {
      "msc": 3824,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L143",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3827,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L107",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3828,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L125",
      "note": "project self-assessment: yes (100/100); media endpoints return Cross-Origin-Resource-Policy: cross-origin"
     },
     {
      "msc": 3856,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L124",
      "note": "project self-assessment: yes (90/100); src/api/client/threads.rs:81 roots retained; full API, residual fallbacks"
     },
     {
      "msc": 3860,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L123",
      "note": "project self-assessment: yes (95/100); Emits 307 to presigned object-store URL on allow_redirect; default-off gate"
     },
     {
      "msc": 3861,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L133",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3864,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L594",
      "note": "project self-assessment: yes (100/100); client-side; uses generic account_data endpoints already implemented"
     },
     {
      "msc": 3865,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L593",
      "note": "project self-assessment: yes (100/100); client-side; uses generic account_data endpoints already implemented"
     },
     {
      "msc": 3873,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L121",
      "note": "project self-assessment: yes (100/100); dotted-key escape semantics handled in ruma flattened JSON"
     },
     {
      "msc": 3881,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/admin/users/pushers.rs#L18",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3882,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L120",
      "note": "project self-assessment: yes (90/100); POST /login/get_token implemented with UIA"
     },
     {
      "msc": 3884,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L586",
      "note": "project self-assessment: yes (90/100); sliding sync e2ee extension implemented"
     },
     {
      "msc": 3885,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L585",
      "note": "project self-assessment: partial (70/80); to_device extension uses its own opaque since token in v5 sync"
     },
     {
      "msc": 3890,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L584",
      "note": "project self-assessment: yes (100/100); device removal deletes local_notification_settings via MSC3391 tombstone"
     },
     {
      "msc": 3904,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L119",
      "note": "project self-assessment: yes (100/100); default is V12, at or above the v10 the MSC suggests"
     },
     {
      "msc": 3905,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L118",
      "note": "project self-assessment: yes (100/100); src/service/appservice/append.rs:66; local-user guard at the three event-inte..."
     },
     {
      "msc": 3916,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L110",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3925,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L116",
      "note": "project self-assessment: partial (70/70); Full m.replace fold; off by default (bundle_edit_relations); backfill unindexed"
     },
     {
      "msc": 3930,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L115",
      "note": "project self-assessment: yes (100/100); Default poll push rules via ruma server_default; seeded at registration"
     },
     {
      "msc": 3938,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L114",
      "note": "project self-assessment: yes (100/100); only the keyless /key/v2/server is routed; no notary /query left to change"
     },
     {
      "msc": 3939,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L113",
      "note": "project self-assessment: yes (90/90); Login and refresh gates implemented; OIDC account-state gates remain pending"
     },
     {
      "msc": 3943,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L112",
      "note": "project self-assessment: yes (100/100); send_join partial-state response includes hero memberships and their auth chains"
     },
     {
      "msc": 3945,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L787",
      "note": "project self-assessment: partial (50/50); Federation hides device names by default; CSAPI /keys/query still leaks them ..."
     },
     {
      "msc": 3952,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L112",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3958,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L110",
      "note": "project self-assessment: yes (100/100); SuppressEdits push rule provided via Ruma server_default ruleset"
     },
     {
      "msc": 3959,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L566",
      "note": "project self-assessment: yes (90/100); sliding sync account_data extension implemented"
     },
     {
      "msc": 3960,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L565",
      "note": "project self-assessment: yes (90/100); sliding sync receipts extension implemented"
     },
     {
      "msc": 3961,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L786",
      "note": "project self-assessment: yes (90/100); sliding sync typing extension implemented"
     },
     {
      "msc": 3966,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L109",
      "note": "project self-assessment: yes (100/100); event_property_contains supported via Ruma push conditions"
     },
     {
      "msc": 3967,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L108",
      "note": "project self-assessment: yes (100/100); keys/device_signing/upload skips UIA when user has no existing cross-signing ..."
     },
     {
      "msc": 3970,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L107",
      "note": "project self-assessment: partial (70/80); txn key is user, device, txn with no path; redact untracked; echo user scoped"
     },
     {
      "msc": 3980,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L106",
      "note": "project self-assessment: yes (90/90); event_fields trim on /sync; dotted paths use the MSC3873 escape grammar"
     },
     {
      "msc": 3981,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L105",
      "note": "project self-assessment: yes (100/100); /relations recurse parameter implemented with depth 3"
     },
     {
      "msc": 3987,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L104",
      "note": "project self-assessment: yes (90/90); unknown push actions ignored as no-ops"
     },
     {
      "msc": 3989,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L103",
      "note": "project self-assessment: yes (100/100); V11 redaction drops origin via Ruma RedactionRules"
     },
     {
      "msc": 4009,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L102",
      "note": "project self-assessment: yes (100/100); E.164 + character allowed via Ruma localpart validation"
     },
     {
      "msc": 4010,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L101",
      "note": "project self-assessment: yes (100/100); m.push_rules and m.fully_read rejected on /account_data"
     },
     {
      "msc": 4015,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L783",
      "note": "project self-assessment: partial (70/70); MSC4133 profile serves the bot key; no copy into m.room.member on join"
     },
     {
      "msc": 4025,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L100",
      "note": "project self-assessment: yes (85/85); phase B landed: erased senders serve pruned to clients and federation"
     },
     {
      "msc": 4026,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L99",
      "note": "project self-assessment: yes (80/90); versions endpoint accepts optional auth via Ruma"
     },
     {
      "msc": 4029,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L538",
      "note": "project self-assessment: partial (40/50); X-Matrix verification covers basics; canonicalization rules not fully specified"
     },
     {
      "msc": 4032,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L536",
      "note": "project self-assessment: yes (100/100); account-data passthrough (2026-06-22 ruling); both keys stored, served, synced"
     },
     {
      "msc": 4037,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L781",
      "note": "project self-assessment: yes (90/100); Receipts allowed for thread roots; spec wording is mostly client-facing."
     },
     {
      "msc": 4040,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L98",
      "note": "project self-assessment: yes (100/100); Tuwunel queries _matrix-fed first then falls back to _matrix."
     },
     {
      "msc": 4041,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L97",
      "note": "project self-assessment: yes (90/90); Ruma error type emits Retry-After header for LimitExceeded responses."
     },
     {
      "msc": 4051,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L780",
      "note": "project self-assessment: yes (80/80); V12 RoomVersionRules.room_create_event_id_as_room_id dispatched."
     },
     {
      "msc": 4062,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L520",
      "note": "project self-assessment: partial (50/50); Custom tweak round trips through ruma; no email pusher to honour dont_email"
     },
     {
      "msc": 4075,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/Cargo.toml#L402",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4076,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L517",
      "note": "project self-assessment: partial (60/100); disable_badge_count honored when sending push notifications"
     },
     {
      "msc": 4108,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L45",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4115,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L96",
      "note": "project self-assessment: yes (85/85); src/core/matrix/pdu/unsigned.rs add_membership; src/service/rooms/state_acces..."
     },
     {
      "msc": 4121,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L497",
      "note": "project self-assessment: yes (100/100); m.role.moderator served via Ruma ContactRole alias and config"
     },
     {
      "msc": 4125,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L496",
      "note": "project self-assessment: yes (90/100); federation invite via field used both inbound and outbound"
     },
     {
      "msc": 4128,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L495",
      "note": "project self-assessment: yes (100/100); invalid token returns error even on optional auth endpoints"
     },
     {
      "msc": 4133,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L94",
      "note": "project self-assessment: yes (85/95); endpoints + caps/errcodes; unset legacy 200 omit by choice, 404 key-scoped"
     },
     {
      "msc": 4138,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L93",
      "note": "project self-assessment: yes (100/100); CORS METHODS list includes HEAD and PATCH; excludes CONNECT/TRACE"
     },
     {
      "msc": 4140,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/core/utils/url.rs#L162",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4143,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L492",
      "note": "project self-assessment: partial (60/60); GET rtc/transports served; slots and sticky membership are client and MSC4354"
     },
     {
      "msc": 4149,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L490",
      "note": "project self-assessment: yes (100/100); MSC policy available; frame denial defaults off for attachment compatibility"
     },
     {
      "msc": 4151,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L91",
      "note": "project self-assessment: yes (100/100); POST /rooms/{roomId}/report implemented and routed"
     },
     {
      "msc": 4154,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L488",
      "note": "project self-assessment: yes (100/100); max_request_size default 24MB, M_TOO_LARGE returns 413"
     },
     {
      "msc": 4155,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L147",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4156,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L90",
      "note": "project self-assessment: yes (100/100); via parameter handled via Ruma"
     },
     {
      "msc": 4158,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L769",
      "note": "project self-assessment: yes (80/100); rtc_foci exposed in .well-known/matrix/client"
     },
     {
      "msc": 4163,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L89",
      "note": "project self-assessment: yes (100/100); ACLs applied on receipt and typing EDUs"
     },
     {
      "msc": 4164,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L485",
      "note": "project self-assessment: yes (100/100); deactivation leaves all joined/invited/knocked rooms"
     },
     {
      "msc": 4165,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L484",
      "note": "project self-assessment: yes (100/100); power level entry removed for self on deactivation"
     },
     {
      "msc": 4166,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L483",
      "note": "project self-assessment: yes (100/100); turnServer returns 404 M_NOT_FOUND when no TURN URIs configured"
     },
     {
      "msc": 4168,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L481",
      "note": "project self-assessment: partial (30/40); src/api/client/room/upgrade.rs:447; copies m.space.parent always plus m.space..."
     },
     {
      "msc": 4169,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L88",
      "note": "project self-assessment: yes (100/100); src/api/client/send.rs:42; lifts content.redacts into PduBuilder.redacts; adv..."
     },
     {
      "msc": 4170,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L87",
      "note": "project self-assessment: yes (100/100); profile lookup unrestricted; MUST minimum satisfied"
     },
     {
      "msc": 4175,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L86",
      "note": "project self-assessment: yes (100/100); timezone PUT/DELETE/GET routes; m.tz aliased in profile and over federation"
     },
     {
      "msc": 4178,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L85",
      "note": "project self-assessment: partial (75/90); msisdn returns M_THREEPID_MEDIUM_NOT_SUPPORTED; bad email returns M_INVALID_P..."
     },
     {
      "msc": 4180,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L123",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4186,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L82",
      "note": "project self-assessment: yes (85/88); sync v5 served with lists, filters, extensions; no expanded_timeline or stubs"
     },
     {
      "msc": 4189,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L81",
      "note": "project self-assessment: yes (80/100); guest tokens accepted on authenticated media routes"
     },
     {
      "msc": 4190,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L80",
      "note": "project self-assessment: yes (100/100); 201 on create; M_APPSERVICE_LOGIN_UNSUPPORTED on AS login+register"
     },
     {
      "msc": 4191,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L79",
      "note": "project self-assessment: yes (100/100); all six actions advertised and handled; stable names alias prototypes"
     },
     {
      "msc": 4195,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L472",
      "note": "project self-assessment: partial (10/10); MSC4143 transport advertised; no get_token, derivation, salt or delayed leave"
     },
     {
      "msc": 4203,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L468",
      "note": "project self-assessment: yes (95/100); to_device in AS txns with to_user_id/to_device_id; retain (dual /sync)"
     },
     {
      "msc": 4208,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L465",
      "note": "project self-assessment: partial (40/50); MSC4133 fields carry u.* generically; no 512B cap, no disallowed list"
     },
     {
      "msc": 4210,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L78",
      "note": "project self-assessment: yes (100/100); deprecated mention push rules removed at /pushrules read time"
     },
     {
      "msc": 4213,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L77",
      "note": "project self-assessment: yes (90/90); join/knock use via; server_name still accepted via Ruma fallback"
     },
     {
      "msc": 4222,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L162",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4225,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L75",
      "note": "project self-assessment: yes (100/100); OTKs issued in upload order via count_be prefix; src/service/users/keys.rs:99"
     },
     {
      "msc": 4231,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L765",
      "note": "project self-assessment: partial (0/100); thread-root check exists, but reply-bearing fallback parses as Reply; accepted"
     },
     {
      "msc": 4238,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L455",
      "note": "project self-assessment: yes (100/100); room account-data passthrough (2026-06-22 ruling); stored, served, synced"
     },
     {
      "msc": 4239,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L74",
      "note": "project self-assessment: yes (100/100); default is V12, at or above the v11 the MSC suggests"
     },
     {
      "msc": 4249,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L449",
      "note": "project self-assessment: yes (100/100); allow_legacy_media defaults to false; legacy disabled"
     },
     {
      "msc": 4254,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L73",
      "note": "project self-assessment: yes (95/100); src/api/oidc/revoke.rs:37; RFC7009 form-urlencoded; revokes both tokens; 200 ..."
     },
     {
      "msc": 4260,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L72",
      "note": "project self-assessment: yes (85/90); src/api/client/report.rs:63; admin notification, 404 M_NOT_FOUND on unknown u..."
     },
     {
      "msc": 4261,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L442",
      "note": "project self-assessment: yes (80/100); DeviceKeys stored and served raw, so do_not_encrypt survives upload and query"
     },
     {
      "msc": 4262,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L441",
      "note": "project self-assessment: partial (70/70); Visible updates and selected initial bases; no atomic snapshots or user drops."
     },
     {
      "msc": 4265,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/Cargo.toml#L411",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4266,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L437",
      "note": "project self-assessment: partial (75/75); multi-lang policies reachable from config; wire key not unstable-prefixed"
     },
     {
      "msc": 4267,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L71",
      "note": "project self-assessment: yes (90/100); auto-forget on Leave/Ban; stable + unstable capability advertised"
     },
     {
      "msc": 4277,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L70",
      "note": "project self-assessment: yes (100/100); all 3 wired; score removed; user report 200 regardless to deter enumeration"
     },
     {
      "msc": 4278,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L69",
      "note": "project self-assessment: yes (100/100); global+room passthrough ok; seeded-value mutability met; no content validation"
     },
     {
      "msc": 4284,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L68",
      "note": "project self-assessment: partial (70/90); outbound /sign, inbound verify, fetch-on-missing, reversible soft-fail"
     },
     {
      "msc": 4287,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L67",
      "note": "project self-assessment: yes (100/100); global account-data passthrough (2026-06-22 ruling); m.key_backup round-trips"
     },
     {
      "msc": 4289,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L66",
      "note": "project self-assessment: yes (100/100); Room v12 creator privilege; complement 22 pass, 0 fail across six named tests"
     },
     {
      "msc": 4291,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L65",
      "note": "project self-assessment: yes (100/100); v12 upgrade create event omits deprecated predecessor.event_id"
     },
     {
      "msc": 4297,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L64",
      "note": "project self-assessment: yes (100/100); src/service/rooms/state_res/resolve.rs:257 conflicted state subgraph; tests pass"
     },
     {
      "msc": 4299,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L762",
      "note": "project self-assessment: yes (100/100); Generic account data stores and syncs m.trusted_users; no trust logic to break"
     },
     {
      "msc": 4304,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L63",
      "note": "project self-assessment: yes (100/100); V12 stable and the default room version"
     },
     {
      "msc": 4307,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L62",
      "note": "project self-assessment: yes (100/100); auth_event room_id mismatch rejected"
     },
     {
      "msc": 4310,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/Cargo.toml#L413",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4311,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L61",
      "note": "project self-assessment: yes (85/95); full-PDU invite/knock state; create-event validation + M_MISSING_PARAM + 5xx"
     },
     {
      "msc": 4312,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L60",
      "note": "project self-assessment: yes (85/85); cross-signing reset via OAuth account deep-link; dual-stage advertise deferred"
     },
     {
      "msc": 4319,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L59",
      "note": "project self-assessment: partial (50/50); state/mod.rs:464 puts inviter member in stripped state; no `state` key"
     },
     {
      "msc": 4323,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L58",
      "note": "project self-assessment: yes (100/100); src/api/client/admin.rs four routes at stable v1 paths; m.account_moderation ..."
     },
     {
      "msc": 4324,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L759",
      "note": "project self-assessment: yes (80/80); tombstone PL=150 set; matches highest-anchored intent for default config"
     },
     {
      "msc": 4326,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L57",
      "note": "project self-assessment: yes (100/100); appservice query device_id asserted; M_UNKNOWN_DEVICE-equivalent on missing"
     },
     {
      "msc": 4330,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L423",
      "note": "project self-assessment: partial (50/50); HTTP/2 via axum/hyper available; TLS 1.2+ via rustls; not enforced as MUST"
     },
     {
      "msc": 4341,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L55",
      "note": "project self-assessment: yes (95/100); src/api/oidc/device.rs:62; RFC 8628 device grant advertised, minted, polled"
     },
     {
      "msc": 4351,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L413",
      "note": "project self-assessment: yes (100/100); Context handler biases remainder to events_after via div_ceil(2)"
     },
     {
      "msc": 4356,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L54",
      "note": "project self-assessment: yes (100/100); global account-data passthrough (2026-06-22 ruling); m.recent_emoji round-trips"
     },
     {
      "msc": 4359,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L407",
      "note": "project self-assessment: partial (50/50); DnD account data passes through; device removal leaves the per device key"
     },
     {
      "msc": 4361,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L405",
      "note": "project self-assessment: yes (100/100); src/service/rooms/state_res/event_auth/room_member.rs:56; reject m.room.membe..."
     },
     {
      "msc": 4376,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L53",
      "note": "project self-assessment: yes (100/100); v1 send_join and v1 send_leave routes are not registered"
     },
     {
      "msc": 4377,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L396",
      "note": "project self-assessment: yes (100/100); account-data passthrough (2026-06-22 ruling); nested order keys kept verbatim"
     },
     {
      "msc": 4380,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L149",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4383,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L394",
      "note": "project self-assessment: yes (100/100); versions.rs:30 server object; :149 advertises net.zemos.msc4383"
     },
     {
      "msc": 4384,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L755",
      "note": "project self-assessment: partial (?/50); Largest-first sort is hardcoded; no alt-sort hook"
     },
     {
      "msc": 4388,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L392",
      "note": "project self-assessment: yes (90/100); router.rs:471 five MSC4388 routes; TTL default 600s exceeds SHOULD 300s"
     },
     {
      "msc": 4397,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L390",
      "note": "project self-assessment: yes (100/100); global account-data passthrough (2026-06-22 ruling); m.tag_space round-trips"
     },
     {
      "msc": 4402,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L51",
      "note": "project self-assessment: yes (100/100); [→ MSC2499?] Global CORS layer covers any 30x; well-known client returns 200 ..."
     },
     {
      "msc": 4406,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L388",
      "note": "project self-assessment: partial (50/55); src/api/client/{room/event.rs:74,context.rs:86,relations.rs:175}; M_SENDER_IG..."
     },
     {
      "msc": 4415,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L751",
      "note": "project self-assessment: partial (0/50); whois is served, but a non admin may still look up their own user"
     },
     {
      "msc": 4418,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L750",
      "note": "project self-assessment: yes (100/100); destination required on inbound and outbound; cited verbatim in MSC."
     },
     {
      "msc": 4423,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L50",
      "note": "project self-assessment: yes (100/100); directory.rs:331 member-count order stays valid once ordering is undefined"
     },
     {
      "msc": 4426,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L383",
      "note": "project self-assessment: yes (90/90); Both budgets enforced with 400 M_TOO_LARGE; no rate limiting anywhere in the ..."
     },
     {
      "msc": 4429,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/src/api/client/versions.rs#L129",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4436,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L49",
      "note": "project self-assessment: yes (100/100); acl_check.rs:39 uses ruma is_allowed, which matches case insensitively"
     },
     {
      "msc": 4438,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L374",
      "note": "project self-assessment: yes (100/100); Pure account-data convention; existing endpoints store arbitrary types"
     },
     {
      "msc": 4439,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L373",
      "note": "project self-assessment: partial (70/85); check.rs:780 validates URI and rejects raw keys; new https MUST unenforced"
     },
     {
      "msc": 4441,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L371",
      "note": "project self-assessment: yes (100/100); Account-data passthrough; owner-only global store, GET, v3 and v5 sync"
     },
     {
      "msc": 4446,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L369",
      "note": "project self-assessment: yes (90/100); Fully-read gated; allow_backward on both routes; racing writes unordered"
     },
     {
      "msc": 4452,
      "state": "stable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L364",
      "note": "project self-assessment: yes (100/100); capabilities.rs:89 advertises io.element.msc4452.preview_url"
     },
     {
      "msc": 4458,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L360",
      "note": "project self-assessment: yes (90/100); Federation JSON parsed first; signatures checked on the parsed object"
     },
     {
      "msc": 4461,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L359",
      "note": "project self-assessment: yes (100/100); Pure account data passthrough; generic CS account-data covers it"
     },
     {
      "msc": 4466,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L356",
      "note": "project self-assessment: yes (90/100); profile.rs:20 resolve_propagation; key-copy rules met via build.rs:184"
     },
     {
      "msc": 4476,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L350",
      "note": "project self-assessment: yes (100/100); Account-data passthrough; m.image_pack.rooms stored, served, synced opaque"
     },
     {
      "msc": 4482,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L348",
      "note": "project self-assessment: yes (100/100); Account-data passthrough; m.bookmarks_room stored, served, synced opaque"
     },
     {
      "msc": 4483,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L347",
      "note": "project self-assessment: yes (100/100); Account-data passthrough; ADK secret and encrypted envelopes stored opaque"
     },
     {
      "msc": 4492,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L341",
      "note": "project self-assessment: yes (90/100); PduCount tokens already directionless and shared across the named endpoints"
     },
     {
      "msc": 4499,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L335",
      "note": "project self-assessment: partial (40/50); keys cached and persisted, but extend() overwrites so last seen wins"
     },
     {
      "msc": 4504,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L330",
      "note": "project self-assessment: partial (50/100); Drops spec removals in Y%6 releases it advertises (v1.6, v1.18); not yet live"
     },
     {
      "msc": 4508,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L326",
      "note": "project self-assessment: partial (50/70); typing extension present, but in the pre-MSC m.typing shape and unadvertised"
     },
     {
      "msc": 4513,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L322",
      "note": "project self-assessment: yes (90/90); central kind to status map emits 413, 429, 502, 504 with Matrix error bodies"
     },
     {
      "msc": 4519,
      "state": "partial",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L319",
      "note": "project self-assessment: partial (60/80); src/api/client/rtc.rs:7 serves the MSC4143-prefixed unstable transports route"
     },
     {
      "msc": 4522,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L317",
      "note": "project self-assessment: yes (100/100); Custom profile field passthrough; object value stored and served via MSC4133"
     },
     {
      "msc": 4526,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L314",
      "note": "project self-assessment: yes (80/100); invalid_grant on refresh failures, but every 4xx maps to it, bad params too"
     },
     {
      "msc": 4529,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L311",
      "note": "project self-assessment: yes (100/100); Account-data passthrough; m.profile_overrides map stored, served, synced"
     },
     {
      "msc": 4534,
      "state": "unstable",
      "source": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/docs/development/compliance/msc.md#L309",
      "note": "project self-assessment: yes (100/100); Account-data passthrough; m.room.rules.accepted room data stored and synced"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "5 of 2643 non-bot commits in the last 365 days (0.2 %) carry an AI co-author trailer or similar",
      "https://github.com/matrix-construct/tuwunel/commit/a9c0cf3a49691a1c8aacf81994e19f0a4ce785d1",
      "https://github.com/matrix-construct/tuwunel/commit/0d62d0514e92c0040a4c0454fb18cbed44e7ef49",
      "https://github.com/matrix-construct/tuwunel/commit/fee9b46e8a3b9d6a961cd441d5c19db9d61098f2"
     ],
     "note": "attributed share is below the 1 % threshold; marked occasional because attributed commits exist",
     "checked_at": "b8901152479bea0a4f33fac67d715fea52bca2d0"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "Publishes its own per-MSC compliance table (docs/development/compliance/msc.md); states taken from it are marked \"project self-assessment\" in the msc notes.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 5,
     "commits_365d": 2530,
     "share_365d": 0.002,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 5
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 65,
    "authors_90d": 19,
    "authors_all": 219,
    "authors_by_quarter": {
     "2023-Q1": 9,
     "2023-Q2": 10,
     "2023-Q3": 13,
     "2023-Q4": 9,
     "2024-Q1": 14,
     "2024-Q2": 20,
     "2024-Q3": 14,
     "2024-Q4": 15,
     "2025-Q1": 13,
     "2025-Q2": 10,
     "2025-Q3": 11,
     "2025-Q4": 10,
     "2026-Q1": 29,
     "2026-Q2": 25,
     "2026-Q3": 16,
     "2026-Q4": 13
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 273,
    "commits_365d": 2530,
    "commits_90d": 1011,
    "commits_all": 7667,
    "first_commit": "2020-02-15T21:42:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0023,
     "HCL": 0.011,
     "Nix": 0.0055,
     "Python": 0.0031,
     "Rust": 0.9664,
     "Shell": 0.0088,
     "Systemd": 0.0012
    },
    "last_commit": "2026-11-03T02:28:19+00:00",
    "last_tag": "v1.9.4",
    "last_tag_date": "2026-10-10T12:15:34+00:00",
    "last_tag_repo": "https://github.com/matrix-construct/tuwunel",
    "licence_detected": "Apache-2.0",
    "loc": {
     "BASH": 132,
     "CSS": 466,
     "HCL": 2268,
     "HTML": 42,
     "JavaScript": 12,
     "Makefile": 13,
     "Nix": 1144,
     "Python": 648,
     "Rust": 200156,
     "Shell": 1813,
     "Systemd": 255,
     "TypeScript": 158
    },
    "loc_total": 207107,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://github.com/matrix-construct/tuwunel/blob/b8901152479bea0a4f33fac67d715fea52bca2d0/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 20,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     9,
     13,
     20,
     20,
     0,
     13,
     18,
     20,
     5,
     10,
     51,
     37,
     39,
     14,
     50,
     26,
     37,
     49,
     3,
     24,
     39,
     31,
     11,
     44,
     74,
     82,
     53,
     47,
     63,
     66,
     29,
     34,
     71,
     37,
     89,
     94,
     89,
     29,
     77,
     69,
     147,
     100,
     13,
     109,
     98,
     70,
     71,
     89,
     80,
     50,
     66,
     51
    ]
   }
  },
  {
   "slug": "tuwunel-admin",
   "name": "tuwunel-admin",
   "category": "tool",
   "kind": "admin UI",
   "homepage": null,
   "summary": "A self-contained web admin UI for Tuwunel that drives the server's !admin room commands.",
   "repos": [
    {
     "url": "https://github.com/knadh/tuwunel-admin",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (Servers/Hosting)",
     "notes/04.md"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server",
    "web"
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "purpose": {
     "value": "Tuwunel administration: rooms, users, media, registration tokens",
     "how": "claimed",
     "source": "https://github.com/knadh/tuwunel-admin/blob/74fce42a8519bd696806582b8055a1919b1d834e/README.md"
    },
    "framework": {
     "value": "own (Rust)",
     "how": "claimed",
     "source": "https://github.com/knadh/tuwunel-admin/blob/74fce42a8519bd696806582b8055a1919b1d834e/README.md"
    },
    "hosting": {
     "value": "self-host",
     "how": "claimed",
     "source": "https://github.com/knadh/tuwunel-admin/blob/74fce42a8519bd696806582b8055a1919b1d834e/README.md"
    },
    "config": {
     "value": "web UI",
     "how": "claimed",
     "source": "https://github.com/knadh/tuwunel-admin/blob/74fce42a8519bd696806582b8055a1919b1d834e/README.md"
    },
    "ai_backend": {
     "value": "none-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 43 non-merge commits since 2025-11-05 attributed; no agent files, counted at 74fce42a"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "The README says it is \"sub-v1.0.0\" and was built for personal use. Added in the integration pass from lane 4's notes.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 43,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 2,
    "authors_90d": 0,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 2,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 43,
    "commits_90d": 0,
    "commits_all": 43,
    "first_commit": "2026-04-13T11:01:45+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0241,
     "Dockerfile": 0.0018,
     "HTML": 0.3562,
     "Makefile": 0.0035,
     "Rust": 0.6137
    },
    "last_commit": "2026-06-07T09:02:24+00:00",
    "last_tag": "v0.1.0",
    "last_tag_date": "2026-04-17T10:45:44+05:30",
    "last_tag_repo": "https://github.com/knadh/tuwunel-admin",
    "licence_detected": "Apache-2.0",
    "loc": {
     "CSS": 145,
     "Dockerfile": 11,
     "HTML": 2141,
     "JavaScript": 4,
     "Makefile": 21,
     "Rust": 3689
    },
    "loc_total": 6011,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     23,
     19,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "umatriks",
   "name": "uMatriks",
   "category": "client",
   "kind": "mobile",
   "homepage": null,
   "summary": "Matrix client for Ubuntu Touch; the README marks it unmaintained.",
   "repos": [
    {
     "url": "https://github.com/uMatriks/uMatriks",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [],
   "apps": [
    {
     "os": "ubuntu-touch",
     "tech": "qt",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/uMatriks/uMatriks/blob/27eab5ba21c96f8dabc243d87950c7860ead7552/README.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "libQuotient",
     "how": "claimed",
     "note": "libqmatrixclient (now libQuotient), per its history"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/uMatriks/uMatriks/blob/27eab5ba21c96f8dabc243d87950c7860ead7552/pushhelper/pushhelper.cpp#L71",
     "note": "pattern match [m.call.invite]"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2020-03-09, so no commits in the last 365 days (HEAD 27eab5ba21)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "umatriks.svg",
    "source": "https://github.com/uMatriks/uMatriks/blob/27eab5ba21c96f8dabc243d87950c7860ead7552/uMatriks/resources/umatriks.svg",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 8,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": false,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 161,
    "first_commit": "2017-07-21T02:07:50+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0026,
     "C Header": 0.0638,
     "C++": 0.3595,
     "Dockerfile": 0.0068,
     "JavaScript": 0.0313,
     "Prolog": 0.0309,
     "Python": 0.0218,
     "QML": 0.4832
    },
    "last_commit": "2020-03-09T12:51:43+00:00",
    "last_tag": "v0.10",
    "last_tag_date": "2018-04-13T19:08:58+02:00",
    "last_tag_repo": "https://github.com/uMatriks/uMatriks",
    "licence_detected": "GPL-3.0",
    "loc": {
     "BASH": 8,
     "C Header": 196,
     "C++": 1104,
     "Dockerfile": 21,
     "JavaScript": 96,
     "Prolog": 95,
     "Python": 67,
     "QML": 1484
    },
    "loc_total": 3071,
    "main_language": "QML",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "venator",
   "name": "Venator",
   "category": "server",
   "kind": "homeserver",
   "homepage": null,
   "summary": "An experimental Matrix homeserver written from scratch in Go using mautrix-go.",
   "repos": [
    {
     "url": "https://codeberg.org/matrix-venator/venator",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "server"
   ],
   "licence": "MPL-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "language": "Go",
    "database": {
     "value": "yes",
     "how": "claimed",
     "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/docs/configuration-reference/database.md#L3",
     "note": "PostgreSQL"
    },
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/config/consts.go#L53",
     "versions": [
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.7",
      "v1.8",
      "v1.9",
      "v1.10",
      "v1.11",
      "v1.12",
      "v1.13",
      "v1.14",
      "v1.15",
      "v1.16",
      "v1.17",
      "v1.18",
      "v1.19"
     ]
    },
    "appservices": {
     "value": "yes",
     "how": "claimed"
    },
    "admin_api": {
     "value": "yes",
     "how": "claimed",
     "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/docs/administration/admin-api.md"
    },
    "oidc_delegation": {
     "value": "yes",
     "how": "code",
     "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/config/consts.go#L53",
     "note": "implied: the server advertises spec v1.15, where MSC3861 landed; no MSC reference in the code"
    },
    "native_sliding_sync": {
     "value": "not-found",
     "note": "no reference to MSC4186 found in the code"
    },
    "workers_scaling": {
     "value": "not-found"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/config/consts.go#L53",
     "note": "implied: the server advertises spec v1.11, where MSC3916 landed; no MSC reference in the code"
    },
    "msc": [
     {
      "msc": 3030,
      "state": "stable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/config/consts.go#L58",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3414,
      "state": "unstable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/api/client/profile/profile.go#L569",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4069,
      "state": "unstable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/api/client/profile/profile.go#L336",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4169,
      "state": "stable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/api/client/rooms/event.go#L56",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4293,
      "state": "unstable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/api/client/profile/profile.go#L570",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4323,
      "state": "stable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/api/client/admin/lock.go#L29",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4342,
      "state": "unstable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/api/client/account/login.go#L150",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4380,
      "state": "stable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/db/account-data.go#L236",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4383,
      "state": "unstable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/api/client/versions.go#L26",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4420,
      "state": "unstable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/api/client/keys/upload.go#L186",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4437,
      "state": "unstable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/api/client/profile/profile.go#L85",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4449,
      "state": "unstable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/api/client/rooms/members.go#L78",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4494,
      "state": "unstable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/config/experiments.go#L39",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4509,
      "state": "unstable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/config/experiments.go#L43",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4560,
      "state": "unstable",
      "source": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/internal/venatord/api/client/rooms/stripped_state.go#L45",
      "note": "referenced in code, no flag found; extent not checked"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "87027ca417db62846ff627f51d8396eaeff1847a"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "matrix.org links codeberg.org/timedout/venator, which redirects to codeberg.org/matrix-venator/venator.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 820,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 6,
    "authors_90d": 2,
    "authors_all": 8,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 1,
     "2025-Q3": 2,
     "2025-Q4": 3,
     "2026-Q1": 1,
     "2026-Q2": 5,
     "2026-Q3": 3,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 32,
    "commits_365d": 820,
    "commits_90d": 142,
    "commits_all": 1078,
    "first_commit": "2025-05-21T02:20:20+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0011,
     "Dockerfile": 0.0013,
     "Go": 0.9669,
     "HTML": 0.0024,
     "Nix": 0.0119,
     "SQL": 0.0095,
     "Shell": 0.0047,
     "Systemd": 0.0021
    },
    "last_commit": "2026-11-01T23:22:30+00:00",
    "last_tag": "0.1.0a4",
    "last_tag_date": "2026-09-18T22:35:44+01:00",
    "last_tag_repo": "https://codeberg.org/matrix-venator/venator",
    "licence_detected": "MPL-2.0",
    "loc": {
     "CSS": 37,
     "Dockerfile": 46,
     "Go": 33846,
     "HTML": 85,
     "Nix": 418,
     "SQL": 334,
     "Shell": 166,
     "Systemd": 73
    },
    "loc_total": 35005,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://codeberg.org/matrix-venator/venator/src/commit/87027ca417db62846ff627f51d8396eaeff1847a/SECURITY.md",
    "stars": null,
    "status": "small-team",
    "tags_365d": 4,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     19,
     11,
     9,
     11,
     3,
     15,
     1,
     38,
     6,
     7,
     0,
     13,
     2,
     60,
     25,
     0,
     2,
     40,
     26,
     19,
     28,
     15,
     24,
     38,
     41,
     22,
     30,
     8,
     0,
     13,
     2,
     7,
     38,
     9,
     17,
     21,
     42,
     0,
     16,
     10,
     6,
     22,
     40,
     8,
     0,
     3,
     19,
     3,
     5,
     0,
     21,
     5
    ]
   }
  },
  {
   "slug": "vodozemac",
   "name": "vodozemac",
   "category": "sdk",
   "kind": "Rust",
   "homepage": "https://github.com/matrix-org/vodozemac",
   "summary": "A pure-Rust implementation of Olm and Megolm, Matrix's end-to-end encryption ratchets, audited in 2022 and the successor to libolm.",
   "repos": [
    {
     "url": "https://github.com/matrix-org/vodozemac",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": []
   },
   "maturity": "stable",
   "platforms": [],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [
    "crates.io"
   ],
   "funding": [],
   "features": {
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/matrix-org/vodozemac/blob/508613d14441ceff4bf8c62c6b693b700536828f/README.md",
     "note": "it is the crypto primitive itself: Olm, Megolm, SAS, ECIES (MSC4108)"
    },
    "crypto": "own (vodozemac)",
    "sliding_sync": {
     "value": "not-found",
     "note": "not applicable"
    },
    "oidc_auth": {
     "value": "not-found",
     "note": "not applicable"
    },
    "threads": {
     "value": "not-found",
     "note": "not applicable"
    },
    "spaces": {
     "value": "not-found",
     "note": "not applicable"
    },
    "purpose": {
     "value": "crypto",
     "how": "claimed",
     "source": "https://github.com/matrix-org/vodozemac"
    },
    "used_by": [
     "commet",
     "fluffychat",
     "libkazv",
     "matrix-dart-sdk",
     "matrix-nio",
     "matrix-rust-sdk",
     "trixnity"
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 86 non-bot commits in the last 365 days carry an AI attribution (0.0 %), counted at 508613d14441"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "A library: no LLM or generative AI feature found in its code or docs.",
     "source": null
    }
   },
   "notes": "Not on the matrix.org SDK list; maturity is our reading of the repo. Last non-bot commit 2026-11-03, 86 non-bot commits in the last year and 3 authors in the last 90 days by our count at 508613d14441 (the collector recounts).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": null
  },
  {
   "slug": "vommet",
   "name": "Vommet",
   "category": "client",
   "kind": "desktop, mobile, web",
   "homepage": "https://vommet.app",
   "summary": "A downstream, LLM-assisted soft fork of Commet (Flutter), aimed at Discord-like papercuts and the Nether voice bridges.",
   "repos": [
    {
     "url": "https://nether.codes/nether/vommet",
     "forge": "forgejo",
     "role": "main",
     "first_parent": true
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "PLAN.md (https://vommet.app)"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "linux",
    "android",
    "windows",
    "macos",
    "ios",
    "web"
   ],
   "apps": [
    {
     "os": "linux",
     "tech": "flutter",
     "min_os": "glibc 2.39 (Ubuntu 24.04, Debian 13)",
     "status": "alpha",
     "stores": [],
     "source": "https://vommet.app"
    },
    {
     "os": "android",
     "tech": "flutter",
     "min_os": null,
     "status": "alpha",
     "stores": [
      {
       "name": "apk",
       "url": "https://vommet.app"
      }
     ],
     "source": "https://vommet.app",
     "note": "arm64 APK; Play, F-Droid and Flathub listings \"on the way\""
    },
    {
     "os": "windows",
     "tech": "flutter",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://vommet.app"
    },
    {
     "os": "macos",
     "tech": "flutter",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://vommet.app"
    },
    {
     "os": "ios",
     "tech": "flutter",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://vommet.app",
     "note": "unsigned .ipa for AltStore/SideStore; TestFlight planned"
    },
    {
     "os": "web",
     "tech": "flutter",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://vommet.app",
     "note": "web.vommet.app"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": "commet",
   "distribution": [
    "apk"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-dart-sdk",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/pubspec.yaml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/pubspec.yaml#L98",
     "note": "pattern match [vodozemac]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/lib/ui/pages/settings/categories/account/security/matrix/matrix_security_tab.dart#L15",
     "note": "pattern match [cross_signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/lib/ui/pages/settings/categories/account/security/matrix/cross_signing/cross_signing_view.dart#L18",
     "note": "pattern match [recoveryKey]"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/integration_test/synapse/data/homeserver.yaml#L1845",
     "note": "pattern match [OIDC]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/lib/ui/organisms/chat/chat.dart#L145",
     "note": "pattern match [threadRoot]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/lib/ui/organisms/space_summary/space_summary.dart#L8",
     "note": "pattern match [space_child]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/pubspec.yaml#L90",
     "note": "pattern match [webrtc]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/pubspec.yaml#L89",
     "note": "pattern match [livekit]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/lib/ui/pages/developer/benchmarks/benchmark_utils.dart#L89",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/lib/client/matrix/matrix_room.dart#L559",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/lib/ui/organisms/chat/chat.dart#L253",
     "note": "pattern match [inReplyTo]"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/lib/client/matrix/components/polls/matrix_poll_component.dart#L21",
     "note": "pattern match [org.matrix.msc3381]"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/lib/ui/organisms/chat/chat.dart#L8",
     "note": "pattern match [emoticon]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/lib/ui/pages/settings/categories/app/advanced_settings_page.dart#L31",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/lib/ui/pages/settings/categories/developer/developer_settings_page.dart#L64",
     "note": "pattern match [rich text editor]"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/integration_test/benchmark/benchmarks/timeline_viewer_benchmark.dart#L58",
     "note": "pattern match [Url Preview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/pubspec.yaml#L46",
     "note": "pattern match [unifiedpush]"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/integration_test/synapse/data/homeserver.yaml#L93",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/integration_test/synapse/data/homeserver.yaml#L1508",
     "note": "pattern match [/report]"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "opt-in",
     "how": "claimed",
     "source": "https://vommet.app",
     "note": "asks once after sign-in; \"Pseudonymous, never message content\""
    },
    "default_homeserver": {
     "value": "matrix.org",
     "how": "code",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/commet/assets/config/global_config.json#L2"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "claimed",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/README.md#L22",
     "note": "AGPL-3.0; a patch stack on top of Commet main; Flutter build"
    }
   },
   "ai": {
    "policy": {
     "value": "allowed",
     "quote": "Most code here was written with the help of an LLM.",
     "source": "https://nether.codes/nether/vommet/src/commit/246a6e35df96f4ae8489fb5ccad87ec8f053e6dc/README.md#L15"
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "AGENTS.md (\"instructions for AI coding agents (Codex, Claude Code, opencode and others)\") and CLAUDE.md at 246a6e35df",
      "246 of 549 first-parent commits in the last 365 days (45 %) carry AI co-author trailers; the rest of the first-parent history is mostly Commet's own upstream commits",
      "homepage: \"Most of Vommet's code is written with the help of an LLM.\""
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "vommet.svg",
    "source": "https://vommet.app/assets/vommet.svg",
    "licence": null,
    "note": "from the project site, vommet.app",
    "checked": "2026-11-05"
   },
   "notes": "Third-party requests (GIF search, sticker import) go through the project's own proxy (README). The README says Commet's contribution policy prohibits LLM-written code, so nothing from the fork is submitted upstream.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 2,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 247,
     "commits_365d": 550,
     "share_365d": 0.4491,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 247
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 18,
    "authors_90d": 8,
    "authors_all": 26,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 2,
     "2023-Q4": 3,
     "2024-Q1": 2,
     "2024-Q2": 3,
     "2024-Q3": 1,
     "2024-Q4": 2,
     "2025-Q1": 3,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 11,
     "2026-Q2": 5,
     "2026-Q3": 4,
     "2026-Q4": 6
    },
    "bus_factor_365d": 2,
    "ci": true,
    "commits_30d": 289,
    "commits_365d": 550,
    "commits_90d": 319,
    "commits_all": 1049,
    "first_commit": "2023-02-07T09:20:30+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C": 0.0033,
     "C Header": 0.0039,
     "C++": 0.0131,
     "CMake": 0.0097,
     "Dart": 0.9273,
     "GLSL": 0.0015,
     "Gradle": 0.0045,
     "HTML": 0.0109,
     "JavaScript": 0.0013,
     "Kotlin": 0.0032,
     "Nix": 0.001,
     "Python": 0.0012,
     "Rust": 0.0055,
     "Shell": 0.0077,
     "Swift": 0.0017,
     "Windows Resource-Definition Script": 0.0016
    },
    "last_commit": "2026-11-05T05:12:23+00:00",
    "last_tag": "pre-sync/20261105-035443/feat/whats-new",
    "last_tag_date": "2026-11-05T01:30:36+00:00",
    "last_tag_repo": "https://nether.codes/nether/vommet",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 66,
     "C": 278,
     "C Header": 327,
     "C++": 1109,
     "CMake": 823,
     "Dart": 78657,
     "Dockerfile": 30,
     "GLSL": 131,
     "Gradle": 383,
     "HTML": 926,
     "Java": 26,
     "JavaScript": 110,
     "Kotlin": 273,
     "Nix": 88,
     "Powershell": 27,
     "Python": 99,
     "Rust": 467,
     "Shell": 650,
     "Swift": 142,
     "Systemd": 16,
     "Windows Resource-Definition Script": 138,
     "Xcode Config": 56
    },
    "loc_total": 84822,
    "main_language": "Dart",
    "open_issues": null,
    "open_prs": null,
    "security_policy": "https://nether.codes/nether/vommet/src/commit/75419a8f502374d6b88a12b4d95a1bd443b17c42/SECURITY.md",
    "stars": null,
    "status": "active",
    "tags_365d": 41333,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     4,
     1,
     5,
     5,
     0,
     1,
     6,
     3,
     6,
     10,
     1,
     22,
     12,
     13,
     21,
     25,
     14,
     5,
     12,
     1,
     1,
     3,
     6,
     0,
     4,
     1,
     0,
     10,
     1,
     0,
     11,
     11,
     5,
     1,
     5,
     0,
     2,
     0,
     2,
     1,
     0,
     2,
     0,
     5,
     1,
     9,
     4,
     9,
     6,
     4,
     228,
     51
    ]
   }
  },
  {
   "slug": "wanchat",
   "name": "WanChat",
   "category": "client",
   "kind": "mobile",
   "homepage": "https://wanchat.info",
   "summary": "Element X Android fork adapted to China's network environment, with ntfy notifications and auto-delete.",
   "repos": [
    {
     "url": "https://github.com/lj92458/wanchat-android",
     "forge": "github",
     "role": "android"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/wanchat/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "android"
   ],
   "apps": [
    {
     "os": "android",
     "tech": "native",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/README.md#L3"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": "element-x",
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/gradle/libs.versions.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/item/event/MessageShield.kt#L32",
     "note": "pattern match [Megolm]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClientFactory.kt#L119",
     "note": "pattern match [CrossSigning]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/.github/workflows/maestro-local.yml#L89",
     "note": "pattern match [RECOVERY_KEY]"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/session-storage/api/src/main/kotlin/io/element/android/libraries/sessionstorage/api/SessionData.kt#L28",
     "note": "pattern match [Sliding Sync]"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/app/src/main/AndroidManifest.xml#L81",
     "note": "pattern match [Oidc]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/mediaupload/api/src/main/kotlin/io/element/android/libraries/mediaupload/api/MediaSender.kt#L216",
     "note": "pattern match [threadRoot]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/AlertDialogContent.kt#L290",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/eventformatter/impl/src/main/kotlin/io/element/android/libraries/eventformatter/impl/DefaultTimelineEventFormatter.kt#L21",
     "note": "pattern match [CallInvite]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/.github/workflows/build.yml#L49",
     "note": "pattern match [ELEMENT_CALL]"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/mediaupload/api/src/main/kotlin/io/element/android/libraries/mediaupload/api/MediaSender.kt#L64",
     "note": "pattern match [inReplyTo]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/location/AssetType.kt#L8",
     "note": "pattern match [m.location]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/mediaupload/api/src/main/kotlin/io/element/android/libraries/mediaupload/api/MediaSender.kt#L105",
     "note": "pattern match [VoiceMessage]"
    },
    "rich_text_editor": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/textcomposer/impl/build.gradle.kts#L36",
     "note": "pattern match [richtexteditor]"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/textcomposer/impl/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposerLinkDialog.kt#L195",
     "note": "pattern match [LinkPreview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/README.md#L3",
     "note": "ntfy (UnifiedPush) and periodic wake-ups"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/ReceiptType.kt#L12",
     "note": "pattern match [READ_PRIVATE]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/preferences/impl/src/main/kotlin/io/element/android/libraries/preferences/impl/store/SessionPreferencesStoreMigration.kt#L24",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/avatar/Avatar.kt#L90",
     "note": "pattern match [Tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/.github/workflows/quality.yml#L104",
     "note": "pattern match [/report]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/appicon/element/src/main/kotlin/io/element/android/appicon/element/IconPreview.kt#L29",
     "note": "pattern match [contentDescription]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "not-found",
     "how": "code",
     "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/services/analyticsproviders/posthog/build.gradle.kts",
     "note": "PostHog module inherited from Element X; build use not checked"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "note": "AGPL-3.0; Element X's large Gradle project"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (9 non-bot commits in the last 365 days) at a20cdb70b3"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "wanchat.webp",
    "source": "https://github.com/lj92458/wanchat-android/blob/a20cdb70b3c270edd9a9f8bf70b64eb746736170/fastlane/metadata/android/en-US/images/icon.png",
    "licence": "AGPL-3.0-only",
    "note": "ships Element's logo (a fork of Element X)",
    "checked": "2026-11-05"
   },
   "notes": "The Google Play badge in the README links to Element X's own listing (io.element.android.x), not a WanChat listing.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 9,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 58,
    "authors_by_quarter": {
     "2023-Q1": 12,
     "2023-Q2": 18,
     "2023-Q3": 19,
     "2023-Q4": 10,
     "2024-Q1": 11,
     "2024-Q2": 11,
     "2024-Q3": 14,
     "2024-Q4": 15,
     "2025-Q1": 13,
     "2025-Q2": 10,
     "2025-Q3": 14,
     "2025-Q4": 7,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 0
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 9,
    "commits_90d": 1,
    "commits_all": 8548,
    "first_commit": "2022-10-06T07:59:25+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "HTML": 0.0038,
     "JavaScript": 0.0075,
     "Kotlin": 0.9789,
     "Python": 0.0052,
     "Shell": 0.0034
    },
    "last_commit": "2026-09-29T15:41:54+00:00",
    "last_tag": "v1.0.4",
    "last_tag_date": "2026-04-10T21:08:36+08:00",
    "last_tag_repo": "https://github.com/lj92458/wanchat-android",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 73,
     "CSS": 130,
     "Gemfile": 2,
     "HTML": 934,
     "JavaScript": 1838,
     "Kotlin": 239983,
     "Prolog": 92,
     "Python": 1272,
     "Shell": 840
    },
    "loc_total": 245164,
    "main_language": "Kotlin",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "slowing",
    "tags_365d": 1,
    "telemetry_sdks": [
     "PostHog",
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     1,
     0,
     0,
     0,
     1,
     4,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "watch-the-matrix",
   "name": "Watch The Matrix",
   "category": "client",
   "kind": "mobile (watch)",
   "homepage": null,
   "summary": "watchOS Matrix client: view rooms and send messages and reactions on Apple Watch.",
   "repos": [
    {
     "url": "https://github.com/pixlwave/Watch-The-Matrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/watch-the-matrix/",
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "alpha",
   "platforms": [
    "ios"
   ],
   "apps": [
    {
     "os": "other",
     "tech": "native",
     "min_os": "watchOS 10",
     "status": "alpha",
     "stores": [
      {
       "name": "testflight",
       "url": "https://testflight.apple.com/join/a06n3gN4"
      }
     ],
     "source": "https://github.com/pixlwave/Watch-The-Matrix/blob/ceafed898f94adfa83a9cc7f93d42879b1253961/README.md#L3"
    }
   ],
   "licence": "MPL-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "own",
     "how": "claimed",
     "source": "https://github.com/pixlwave/Watch-The-Matrix/blob/ceafed898f94adfa83a9cc7f93d42879b1253961/README.md#L2",
     "note": "pixlwave/Matrix Swift package"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/pixlwave/Watch-The-Matrix/blob/ceafed898f94adfa83a9cc7f93d42879b1253961/Sources/Views/RootView.swift#L16",
     "note": "pattern match [isSpace]"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "MPL-2.0; small Xcode project, about 90 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files and no AI-attributed commits (7 non-bot commits in the last 365 days) at ceafed898f"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "watch-the-matrix.webp",
    "source": "https://github.com/pixlwave/Watch-The-Matrix/blob/ceafed898f94adfa83a9cc7f93d42879b1253961/Watch%20App/Assets.xcassets/AppIcon.appiconset/Icon_AppStore.png",
    "licence": "MPL-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": null,
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 7,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 2,
    "authors_by_quarter": {
     "2023-Q1": 1,
     "2023-Q2": 1,
     "2023-Q3": 1,
     "2023-Q4": 1,
     "2024-Q1": 1,
     "2024-Q2": 1,
     "2024-Q3": 1,
     "2024-Q4": 1,
     "2025-Q1": 1,
     "2025-Q2": 1,
     "2025-Q3": 1,
     "2025-Q4": 1,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 1,
    "commits_365d": 7,
    "commits_90d": 3,
    "commits_all": 242,
    "first_commit": "2021-02-24T19:31:21+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Swift": 1
    },
    "last_commit": "2026-10-24T18:59:53+00:00",
    "last_tag": "testflight/39",
    "last_tag_date": "2026-09-20T09:35:24+01:00",
    "last_tag_repo": "https://github.com/pixlwave/Watch-The-Matrix",
    "licence_detected": "MPL-2.0",
    "loc": {
     "Swift": 2118
    },
    "loc_total": 2118,
    "main_language": "Swift",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 4,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     0,
     0,
     0,
     0,
     1,
     0
    ]
   }
  },
  {
   "slug": "weechat-matrix",
   "name": "weechat-matrix",
   "category": "client",
   "kind": "terminal (WeeChat plugin)",
   "homepage": null,
   "summary": "Python Matrix plugin for the WeeChat IRC client, on matrix-nio.",
   "repos": [
    {
     "url": "https://github.com/poljar/weechat-matrix",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "sources/community-space.tsv (#community:matrix.org)"
    ]
   },
   "maturity": "unmaintained",
   "platforms": [
    "terminal"
   ],
   "apps": [
    {
     "os": "terminal",
     "tech": "tui",
     "min_os": null,
     "status": "discontinued",
     "stores": [],
     "source": "https://github.com/poljar/weechat-matrix/blob/feae9fda26ea9de98da9cd6733980a203115537e/README.md"
    }
   ],
   "licence": "ISC",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-nio",
     "how": "code",
     "source": "https://github.com/poljar/weechat-matrix/blob/feae9fda26ea9de98da9cd6733980a203115537e/requirements.txt"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/poljar/weechat-matrix/blob/feae9fda26ea9de98da9cd6733980a203115537e/main.py#L74",
     "note": "pattern match [olm_]"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "not-found"
    },
    "spaces": {
     "value": "not-found"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "not-found"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/poljar/weechat-matrix/blob/feae9fda26ea9de98da9cd6733980a203115537e/matrix/commands.py#L1394",
     "note": "pattern match [in_reply_to]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "not-found"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "not-found"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "no agent files; last commit 2023-07-23, so no commits in the last 365 days (HEAD feae9fda26)"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "notes": "The maintainer moved on to matrix-rust-sdk; a Rust rewrite (weechat-matrix-rs) exists.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 0,
     "share_365d": null,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 0,
    "authors_90d": 0,
    "authors_all": 50,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 1,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 0
    },
    "bus_factor_365d": null,
    "ci": true,
    "commits_30d": 0,
    "commits_365d": 0,
    "commits_90d": 0,
    "commits_all": 776,
    "first_commit": "2017-12-30T13:03:03+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Dockerfile": 0.0025,
     "Makefile": 0.0034,
     "Python": 0.9942
    },
    "last_commit": "2023-07-23T08:57:02+00:00",
    "last_tag": "0.3.0",
    "last_tag_date": "2021-07-03T13:25:16+02:00",
    "last_tag_repo": "https://github.com/poljar/weechat-matrix",
    "licence_detected": null,
    "loc": {
     "Dockerfile": 21,
     "Makefile": 29,
     "Python": 8505
    },
    "loc_total": 8555,
    "main_language": "Python",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "abandoned",
    "tags_365d": 0,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "wizardchat",
   "name": "WizardChat",
   "category": "client",
   "kind": "web, desktop, mobile",
   "homepage": "https://wizardchat.org",
   "summary": "Matrix client that moved from a web/desktop app to a new Rust core with native apps for web, desktop, iOS and Android.",
   "repos": [
    {
     "url": "https://gitlab.com/wizardchat/wizardchat",
     "forge": "gitlab",
     "role": "main"
    },
    {
     "url": "https://gitlab.com/wizardchat/wizardchat-web",
     "forge": "gitlab",
     "role": "other"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/wizardchat/",
    "other": []
   },
   "maturity": "beta",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux",
    "ios",
    "android"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/wizardchat.md",
     "note": "app.wizardchat.org"
    },
    {
     "os": "android",
     "tech": "native",
     "min_os": "8.0",
     "status": "beta",
     "stores": [],
     "source": "https://gitlab.com/wizardchat/wizardchat-web/-/blob/9b85b14389ebcc8da9d72b6b5837696bd2923d41/README.md#L3",
     "note": "minSdk 26 in the new repo"
    },
    {
     "os": "ios",
     "tech": "native",
     "min_os": "18",
     "status": "beta",
     "stores": [],
     "source": "https://gitlab.com/wizardchat/wizardchat-web/-/blob/9b85b14389ebcc8da9d72b6b5837696bd2923d41/README.md#L3",
     "note": "Package.swift .iOS(.v18)"
    }
   ],
   "licence": "AGPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "not-found",
     "note": "own Rust core (\"a new Rust core\"); its Matrix library was not checked in this pass; the old web app used matrix-js-sdk"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/Cargo.toml#L11",
     "note": "pattern match [matrix-sdk-crypto]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/encryption.rs#L35",
     "note": "pattern match [cross-signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/encryption.rs#L30",
     "note": "pattern match [recovery key]"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/features.rs#L130",
     "note": "pattern match [Sliding sync]"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/auth.rs#L34",
     "note": "pattern match [MSC3861]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/rooms.rs#L730",
     "note": "pattern match [m.thread]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/features.rs#L183",
     "note": "pattern match [m.space.parent]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/rooms.rs#L265",
     "note": "pattern match [m.call.invite]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/calls.rs#L1",
     "note": "pattern match [MatrixRTC]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/calls.rs#L1249",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/content.rs#L315",
     "note": "pattern match [m.new_content]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/features.rs#L405",
     "note": "pattern match [m.in_reply_to]"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/content.rs#L490",
     "note": "pattern match [m.poll]"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/features.rs#L62",
     "note": "pattern match [emoticon]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/rooms.rs#L631",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/content.rs#L56",
     "note": "pattern match [geo:]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/content.rs#L115",
     "note": "pattern match [voice message]"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/extras.rs#L1",
     "note": "pattern match [Link preview]"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/rooms.rs#L683",
     "note": "pattern match [ReadPrivate]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/packages/design-tokens/src/themes/garnet.json#L109",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/rooms.rs#L55",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/crates/core/src/room_admin.rs#L504",
     "note": "pattern match [report_event]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/eslint.config.js#L7",
     "note": "pattern match [a11y]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "note": "AGPL-3.0; Rust core with generated bindings and native shells"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "config-only",
     "evidence": [
      "AGENTS.md at 2c82b13172 (points agents to the README and docs)",
      "docs/CONTRIBUTING.md: \"No AI attribution in commits.\" so trailer counts say nothing here"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "wizardchat.svg",
    "source": "https://gitlab.com/wizardchat/wizardchat/-/blob/2c82b131724bc984b7f48c6a2fcda02062d2050a/apps/web/public/assets/images/logo.svg",
    "licence": "AGPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "wizardchat-web README: \"This repository has moved.\" The sdk note is unverified (the new core's Cargo.toml was not read in this pass).",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 1612,
     "share_365d": 0,
     "suggested_dev_usage": "config-only",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 1,
    "authors_90d": 1,
    "authors_all": 1,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 1,
     "2026-Q4": 1
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 209,
    "commits_365d": 816,
    "commits_90d": 414,
    "commits_all": 816,
    "first_commit": "2026-05-09T08:59:06+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "HTML": 0.0013,
     "JavaScript": 0.0072,
     "Kotlin": 0.1577,
     "Rust": 0.1499,
     "Shell": 0.0014,
     "Swift": 0.131,
     "TypeScript": 0.5498
    },
    "last_commit": "2026-11-05T00:28:28+00:00",
    "last_tag": "v26.11.2",
    "last_tag_date": "2026-11-04T21:51:51+00:00",
    "last_tag_repo": "https://gitlab.com/wizardchat/wizardchat-web",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Batch": 146,
     "CloudFormation (YAML)": 65,
     "Dockerfile": 41,
     "Gradle": 104,
     "HTML": 342,
     "Java": 147,
     "JavaScript": 1175,
     "Kotlin": 20693,
     "Prolog": 7,
     "Rust": 19678,
     "Shell": 286,
     "Swift": 17466,
     "TypeScript": 145379,
     "TypeScript Typings": 213,
     "Xcode Config": 7
    },
    "loc_total": 205749,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "small-team",
    "tags_365d": 114,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     45,
     40,
     57,
     8,
     32,
     37,
     36,
     38,
     13,
     24,
     22,
     42,
     4,
     13,
     66,
     20,
     13,
     15,
     9,
     15,
     32,
     34,
     43,
     38,
     72,
     48
    ]
   }
  },
  {
   "slug": "xmatic",
   "name": "xmatic",
   "category": "client",
   "kind": "mobile",
   "homepage": null,
   "summary": "A native Sailfish OS client with a Silica (Qt) interface over matrix-rust-sdk.",
   "repos": [
    {
     "url": "https://github.com/JimKnopfIoT/harbour-xmatic",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "notes/02.md (GitHub search)"
    ]
   },
   "maturity": "beta",
   "platforms": [],
   "apps": [
    {
     "os": "sailfish",
     "tech": "qt",
     "min_os": "5",
     "status": "beta",
     "stores": [],
     "source": "https://github.com/JimKnopfIoT/harbour-xmatic/blob/82f529c36fbdd4d3783dfbf02a033a01de140da9/README.md"
    }
   ],
   "licence": "Apache-2.0",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "claimed",
     "source": "https://github.com/JimKnopfIoT/harbour-xmatic/blob/82f529c36fbdd4d3783dfbf02a033a01de140da9/README.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/JimKnopfIoT/harbour-xmatic/blob/82f529c36fbdd4d3783dfbf02a033a01de140da9/README.md",
     "note": "from matrix-rust-sdk"
    },
    "cross_signing": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/JimKnopfIoT/harbour-xmatic/blob/82f529c36fbdd4d3783dfbf02a033a01de140da9/README.md"
    },
    "key_backup": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/JimKnopfIoT/harbour-xmatic/blob/82f529c36fbdd4d3783dfbf02a033a01de140da9/README.md"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/JimKnopfIoT/harbour-xmatic/blob/82f529c36fbdd4d3783dfbf02a033a01de140da9/README.md",
     "note": "Simplified Sliding Sync (MSC4186)"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/JimKnopfIoT/harbour-xmatic/blob/82f529c36fbdd4d3783dfbf02a033a01de140da9/README.md",
     "note": "OAuth 2.0 / MAS sign-in, device code, or password"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [
      "0 of 105 non-merge commits since 2025-11-05 attributed, no agent files, counted at 82f529c3"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "xmatic.svg",
    "source": "https://github.com/JimKnopfIoT/harbour-xmatic/blob/82f529c36fbdd4d3783dfbf02a033a01de140da9/icons/xmatic-logo.svg",
    "licence": "Apache-2.0",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "Added in the integration pass from lane 2's notes; only the README was read. \"Sailfish OS 5 still ships Qt 5.6\" (README) is why it links the Rust core.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 105,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 3,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 2,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": false,
    "commits_30d": 35,
    "commits_365d": 105,
    "commits_90d": 103,
    "commits_all": 105,
    "first_commit": "2026-07-31T20:04:04+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C Header": 0.0123,
     "C++": 0.0672,
     "JavaScript": 0.0059,
     "Prolog": 0.0019,
     "Python": 0.0031,
     "QML": 0.0769,
     "Rust": 0.097,
     "TypeScript": 0.7349
    },
    "last_commit": "2026-10-30T06:17:15+00:00",
    "last_tag": "v0.47.5",
    "last_tag_date": "2026-10-30T07:17:15+01:00",
    "last_tag_repo": "https://github.com/JimKnopfIoT/harbour-xmatic",
    "licence_detected": "Apache-2.0",
    "loc": {
     "C Header": 2361,
     "C++": 12861,
     "JavaScript": 1137,
     "Prolog": 370,
     "Python": 601,
     "QML": 14731,
     "Rust": 18571,
     "Shell": 118,
     "Systemd": 31,
     "TypeScript": 140740
    },
    "loc_total": 191521,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 1,
    "telemetry_sdks": [],
    "tests_present": false,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     2,
     1,
     11,
     15,
     11,
     8,
     4,
     7,
     6,
     6,
     26,
     3,
     4,
     1
    ]
   }
  },
  {
   "slug": "yapfast",
   "name": "Yapfast",
   "category": "client",
   "kind": "desktop",
   "homepage": "https://yapfast.com",
   "summary": "Native Rust Discord client that started as a Matrix client and still supports Matrix (encrypted rooms, spaces, MatrixRTC voice).",
   "repos": [
    {
     "url": "https://github.com/yapfast/yapfast",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "GitHub topic matrix-client"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "windows",
    "linux"
   ],
   "apps": [
    {
     "os": "windows",
     "tech": "native",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/README.md"
    },
    {
     "os": "linux",
     "tech": "native",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/README.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-rust-sdk",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/Cargo.toml"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/Cargo.toml#L133",
     "note": "pattern match [matrix-sdk-crypto]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/crates/yapfast-core/src/calls.rs#L122",
     "note": "pattern match [cross_signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/crates/yapfast-core/src/matrix_chat.rs#L841",
     "note": "pattern match [recovery key]"
    },
    "sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/crates/yapfast-core/src/experiment.rs#L159",
     "note": "pattern match [Sliding Sync]"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/crates/yapfast-core/src/application.rs#L3427",
     "note": "pattern match [OAuthAuthoriz]"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/crates/yapfast-core/src/application.rs#L95",
     "note": "pattern match [ThreadList]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/crates/yapfast-core/src/voice_demo.rs#L91",
     "note": "pattern match [m.space.child]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/Cargo.toml#L16",
     "note": "pattern match [webrtc]"
    },
    "group_calls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/Cargo.toml#L16",
     "note": "pattern match [livekit]"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/crates/yapfast-core/src/matrix_chat.rs#L3045",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "not-found"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/crates/yapfast-core/src/matrix_chat.rs#L2014",
     "note": "pattern match [in_reply_to]"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/crates/yapfast-core/src/application/server_settings/audit_log.rs#L1657",
     "note": "pattern match [emoticon]"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/crates/yapfast-core/src/application/threads.rs#L483",
     "note": "pattern match [m.location]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/crates/yapfast-core/src/application/server_settings/audit_log.rs#L152",
     "note": "pattern match [Voice Message]"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/src/ui.rs#L965",
     "note": "pattern match [Link preview]"
    },
    "push_notifications": {
     "value": "not-found"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/src/ui/refresh.rs#L953",
     "note": "pattern match [read_private]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/src/ui.rs#L2563",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "not-found"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "not-found"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "note": "GPL-3.0; Rust workspace, about 1,700 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "occasional",
     "evidence": [
      "2 of 640 commits in the last 365 days carry Claude co-author trailers (0.3 %) at 03862f6394",
      "no agent files"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "yapfast.svg",
    "source": "https://github.com/yapfast/yapfast/blob/03862f6394fad09b541d731181b819a3c9713d3f/ui/icons/logo.svg",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05",
    "backing": "dark"
   },
   "notes": "README (line 320 on): Matrix \"still works\" but is available \"from source, for now\"; the main target is Discord.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 1,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 2,
     "commits_365d": 542,
     "share_365d": 0.0037,
     "suggested_dev_usage": "occasional",
     "tools": {
      "claude": 2
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 10,
    "authors_90d": 10,
    "authors_all": 10,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 0,
     "2026-Q3": 0,
     "2026-Q4": 10
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 513,
    "commits_365d": 542,
    "commits_90d": 542,
    "commits_all": 542,
    "first_commit": "2026-10-02T18:25:54+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "BASH": 0.0027,
     "C": 0.0093,
     "Nix": 0.0022,
     "Python": 0.0327,
     "Rust": 0.8055,
     "Slint": 0.105,
     "TypeScript": 0.0416
    },
    "last_commit": "2026-11-05T03:09:17+00:00",
    "last_tag": "v0.3.0",
    "last_tag_date": "2026-11-05T04:09:22+01:00",
    "last_tag_repo": "https://github.com/yapfast/yapfast",
    "licence_detected": "GPL-3.0",
    "loc": {
     "BASH": 469,
     "C": 1603,
     "C++": 136,
     "Nix": 377,
     "PKGBUILD": 22,
     "Python": 5646,
     "Rust": 138962,
     "Slint": 18116,
     "TypeScript": 7177,
     "Windows Resource-Definition Script": 1,
     "jq": 15
    },
    "loc_total": 172524,
    "main_language": "Rust",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 3,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     112,
     136,
     144,
     105,
     45
    ]
   }
  },
  {
   "slug": "zam",
   "name": "Zam",
   "category": "client",
   "kind": "web, desktop, mobile",
   "homepage": "https://matrix.crafty.moe",
   "summary": "Svelte Matrix client on matrix-js-sdk for web (PWA), Electron desktop and Android (Capacitor), with a long feature list; the hosted copy is matrix.crafty.moe.",
   "repos": [
    {
     "url": "https://github.com/az4521/Zam",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/zam/",
    "other": [
     "PLAN.md (https://matrix.crafty.moe/)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "web",
    "windows",
    "macos",
    "linux",
    "android",
    "ios"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "pwa",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/README.md#L5"
    },
    {
     "os": "android",
     "tech": "webview",
     "min_os": "7.0",
     "status": "beta",
     "stores": [
      {
       "name": "apk",
       "url": "https://github.com/az4521/Zam/releases/latest"
      }
     ],
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/README.md#L3",
     "note": "Capacitor; minSdkVersion 24"
    },
    {
     "os": "ios",
     "tech": "pwa",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/README.md#L5",
     "note": "README recommends installing the PWA on iOS; no native iOS app"
    },
    {
     "os": "linux",
     "tech": "electron",
     "min_os": null,
     "status": "beta",
     "stores": [
      {
       "name": "flatpak",
       "url": "https://az4521.github.io/Zam/"
      }
     ],
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/README.md#L7"
    },
    {
     "os": "windows",
     "tech": "electron",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/zam.md"
    },
    {
     "os": "macos",
     "tech": "electron",
     "min_os": null,
     "status": "beta",
     "stores": [],
     "source": "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/clients/zam.md"
    }
   ],
   "licence": "GPL-3.0-only",
   "fork_of": null,
   "distribution": [
    "flatpak",
    "apk"
   ],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/package.json"
    },
    "e2ee": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/vite.config.ts#L81",
     "note": "pattern match [rust-crypto]"
    },
    "cross_signing": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/stores/identityAlerts.svelte.ts#L2",
     "note": "pattern match [cross-signing]"
    },
    "key_backup": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/logCapture.ts#L93",
     "note": "pattern match [recovery_key]"
    },
    "sliding_sync": {
     "value": "partial",
     "how": "claimed",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/README.md#L47",
     "note": "optional, in Debug settings, alongside classic sync"
    },
    "oidc_auth": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/README.md#L64",
     "note": "native OAuth 2.0 / OIDC (MAS); no QR login or device-code grant yet"
    },
    "multi_account": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/README.md#L45",
     "note": "one account open at a time; all get notifications"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/components/layout/MessageArea.svelte#L256",
     "note": "pattern match [threadRoot]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/stores/notifications.svelte.ts#L2",
     "note": "pattern match [SpaceChild]"
    },
    "voip_1to1": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/matrix/webrtcRealm.test.ts#L3",
     "note": "pattern match [webrtc]"
    },
    "group_calls": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/README.md",
     "note": "MatrixRTC (MSC4143) with LiveKit; needs server-side infrastructure"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/matrix/client.ts#L7204",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/components/debug/DebugPanel.svelte#L128",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/components/messages/MessageItem.svelte#L1085",
     "note": "pattern match [m.in_reply_to]"
    },
    "polls": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/matrix/client.ts#L4791",
     "note": "pattern match [org.matrix.msc3381]"
    },
    "custom_emoji": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/components/layout/AppShell.svelte#L2339",
     "note": "pattern match [im.ponies]"
    },
    "stickers": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/components/debug/DebugPanel.svelte#L87",
     "note": "pattern match [m.sticker]"
    },
    "location": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/stores/liveLocation.svelte.ts#L344",
     "note": "pattern match [m.beacon]"
    },
    "voice_messages": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/components/layout/MessageSearchPanel.svelte#L212",
     "note": "pattern match [org.matrix.msc3245.voice]"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/svelte.config.js#L13",
     "note": "pattern match [link preview]"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/push.ts#L4",
     "note": "pattern match [UnifiedPush]"
    },
    "private_read_receipts": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/nativeSession.ts#L174",
     "note": "pattern match [private read receipt]"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/app.d.ts#L137",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/components/layout/MessageArea.svelte#L41",
     "note": "pattern match [Tombstone]"
    },
    "moderation_tools": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/components/messages/MessageReportAction.svelte#L3",
     "note": "pattern match [reportEvent]"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/components/ui/ModalDialog.test.ts#L89",
     "note": "pattern match [aria-label]"
    },
    "translations": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/README.md#L48",
     "note": "English, French, German, Assyrian Neo-Aramaic"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "matrix.org",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/src/lib/config.ts#L4"
    },
    "fork_friendliness": {
     "value": "partial",
     "how": "code",
     "source": "https://github.com/az4521/Zam/blob/e5f33ef253ee320dcb03a857bc9ec9a2020e4963/package.json",
     "note": "GPL-3.0; npm + Vite/SvelteKit, Capacitor for Android, Electron for desktop; plugins run unsandboxed"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "1,989 of 2,449 commits in the last 365 days (81 %) carry Claude co-author trailers (Claude Opus 4.8, 5, 5.5), at e5f33ef253",
      "no agent files (CLAUDE.md, AGENTS.md, .claude/) in the tree"
     ]
    },
    "in_product": {
     "value": "none-found",
     "note": "No LLM SDKs or endpoints in the code; GIFs come from KLIPY and plugins run third-party code.",
     "source": null
    }
   },
   "icon": {
    "file": "zam.webp",
    "source": "https://github.com/az4521/Zam/blob/de78428a43512b7b58e26dfccf12f6eb24947d6c/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png",
    "licence": "GPL-3.0-only",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "PLAN.md says matrix.crafty.moe \"uses AI\". Found: the AI use is in development, shown by commit trailers on most commits (both authors use them); no AI feature in the product was found, and no written statement about AI was found in the README. The hosted page is the app itself (a single-page app) with no text to read without JavaScript.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 1915,
     "commits_365d": 2168,
     "share_365d": 0.8833,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 1915
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 3,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 1,
     "2026-Q2": 1,
     "2026-Q3": 2,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 420,
    "commits_365d": 2168,
    "commits_90d": 1145,
    "commits_all": 2168,
    "first_commit": "2026-03-23T13:46:01+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "C": 0.0104,
     "C++": 0.0029,
     "CSS": 0.0023,
     "Java": 0.0229,
     "JavaScript": 0.0159,
     "Rust": 0.0028,
     "Shell": 0.0012,
     "Svelte": 0.2459,
     "TypeScript": 0.6923,
     "TypeScript Typings": 0.001
    },
    "last_commit": "2026-11-05T04:17:43+00:00",
    "last_tag": "v1.51.1",
    "last_tag_date": "2026-11-04T23:17:43-05:00",
    "last_tag_repo": "https://github.com/az4521/Zam",
    "licence_detected": "GPL-3.0",
    "loc": {
     "Batch": 73,
     "C": 2238,
     "C++": 624,
     "CSS": 488,
     "Gradle": 139,
     "HTML": 160,
     "Java": 4931,
     "JavaScript": 3435,
     "Prolog": 18,
     "Python": 143,
     "Rust": 605,
     "Shell": 264,
     "Svelte": 53057,
     "TypeScript": 149359,
     "TypeScript Typings": 224
    },
    "loc_total": 215758,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 224,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     36,
     41,
     3,
     0,
     0,
     0,
     0,
     0,
     0,
     1,
     29,
     15,
     5,
     0,
     0,
     0,
     171,
     151,
     308,
     263,
     46,
     92,
     123,
     259,
     0,
     1,
     0,
     144,
     112,
     73,
     51,
     94,
     150
    ]
   }
  },
  {
   "slug": "zendrite",
   "name": "Zendrite",
   "category": "server",
   "kind": "homeserver",
   "homepage": "https://zendrite.pat-s.me/",
   "summary": "A fork of Dendrite (February 2026) adding recent spec features, high availability and fixes.",
   "repos": [
    {
     "url": "https://codefloe.com/pat-s/zendrite",
     "forge": "forgejo",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/servers/",
    "other": [
     "https://github.com/matrix-org/matrix.org/blob/041599b0dc5a34f904704a42522e090273278bde/content/ecosystem/servers/servers.toml"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "AGPL-3.0-or-later OR LicenseRef-Element-Commercial",
   "fork_of": "dendrite",
   "distribution": [
    "docker"
   ],
   "funding": [],
   "features": {
    "language": "Go",
    "database": {
     "value": "yes",
     "how": "claimed",
     "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/.forgejo/ISSUE_TEMPLATE/BUG_REPORT.md#L21",
     "note": "PostgreSQL, SQLite"
    },
    "federation": {
     "value": "yes",
     "how": "claimed"
    },
    "spec_versions": {
     "value": "yes",
     "how": "code",
     "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L211",
     "versions": [
      "r0.0.1",
      "r0.1.0",
      "r0.2.0",
      "r0.3.0",
      "r0.4.0",
      "r0.5.0",
      "r0.6.1",
      "v1.0",
      "v1.1",
      "v1.2",
      "v1.3",
      "v1.4",
      "v1.5",
      "v1.6",
      "v1.7",
      "v1.8",
      "v1.9",
      "v1.10",
      "v1.11",
      "v1.12",
      "v1.13",
      "v1.14",
      "v1.15",
      "v1.16",
      "v1.17",
      "v1.18",
      "v1.19"
     ]
    },
    "appservices": {
     "value": "yes",
     "how": "claimed"
    },
    "admin_api": {
     "value": "yes",
     "how": "claimed",
     "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/website/src/content/docs/administration/adminapi.md"
    },
    "oidc_delegation": {
     "value": "yes",
     "how": "code",
     "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/setup/mscs/mscs.go#L57",
     "note": "MSC3861: experimental, flag mscs.mscs: [msc3861]"
    },
    "native_sliding_sync": {
     "value": "yes",
     "how": "code",
     "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L105",
     "note": "MSC4186: unstable"
    },
    "workers_scaling": {
     "value": "yes",
     "how": "claimed",
     "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/website/src/content/docs/administration/high-availability.md",
     "note": "high-availability mode"
    },
    "media_auth": {
     "value": "yes",
     "how": "code",
     "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L104",
     "note": "MSC3916: stable"
    },
    "msc": [
     {
      "msc": 1234,
      "state": "experimental",
      "flag": "msc12345",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/setup/config/config_mscs.go#L244",
      "note": "behind a config option"
     },
     {
      "msc": 1692,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/auth/authtypes/logintypes.go#L18",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 1772,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/roomserver/internal/query/query_room_hierarchy.go#L574",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 1929,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L189",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2174,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/syncapi/synctypes/clientevent.go#L160",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2246,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/mediaapi/routing/routing.go#L76",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2265,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/auth/authtypes/threepid.go#L25",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2285,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L103",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2409,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/appservice/appservice.go#L70",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2432,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/sendevent.go#L680",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2444,
      "state": "experimental",
      "flag": "mscs.mscs: [msc2444]",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/setup/mscs/mscs.go#L55",
      "note": "opt-in via the mscs config list"
     },
     {
      "msc": 2625,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/are-we-synapse-yet.list#L914",
      "note": "unstable prefix in code"
     },
     {
      "msc": 2659,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/appservice_ping.go#L49",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2666,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L120",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2677,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/sendevent.go#L654",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2701,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/mediaapi/routing/download.go#L107",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2702,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/mediaapi/routing/download.go#L1202",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2705,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/mediaapi/routing/download.go#L59",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2713,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/threepid/identity_auth.go#L27",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2732,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/syncapi/types/v4types.go#L472",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2753,
      "state": "experimental",
      "flag": "mscs.mscs: [msc2753]",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/setup/mscs/mscs.go#L56",
      "note": "opt-in via the mscs config list"
     },
     {
      "msc": 2836,
      "state": "experimental",
      "flag": "mscs.mscs: [msc2836]",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/setup/mscs/mscs.go#L51",
      "note": "opt-in via the mscs config list"
     },
     {
      "msc": 2918,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/auth/user_interactive.go#L67",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2946,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/roomserver/internal/query/query_room_hierarchy.go#L590",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 2965,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L132",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 2967,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L133",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3030,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/syncapi/routing/timestamp_to_event.go#L111",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3202,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/auth/auth.go#L59",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3231,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/register.go#L1412",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3266,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/room_summary.go#L44",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3288,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/threepid/invites.go#L227",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3316,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/httputil/parse.go#L18",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3575,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L54",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3706,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/joinroom.go#L33",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3765,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/internal/eventutil/eventcontent.go#L22",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3773,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/syncapi/types/types.go#L555",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3814,
      "state": "experimental",
      "flag": "mscs.mscs: [msc3814]",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/setup/mscs/mscs.go#L53",
      "note": "opt-in via the mscs config list"
     },
     {
      "msc": 3823,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/auth/auth.go#L139",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3827,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/directory_public.go#L74",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3860,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/mediaapi/routing/download.go#L1174",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3861,
      "state": "experimental",
      "flag": "mscs.mscs: [msc3861]",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/setup/mscs/mscs.go#L57",
      "note": "opt-in via the mscs config list"
     },
     {
      "msc": 3882,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/login_token.go#L25",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3884,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/syncapi/sync/v4_extensions.go#L131",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3895,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/federationapi/routing/routing.go#L663",
      "note": "unstable prefix in code"
     },
     {
      "msc": 3902,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/federationapi/internal/partialstate.go#L704",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3905,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/appservice/consumers/roomserver.go#L300",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3916,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L104",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 3938,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/federationapi/routing/routing.go#L93",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3939,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/auth/auth.go#L122",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3959,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/syncapi/sync/v4_extensions.go#L30",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3960,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/syncapi/sync/v4_extensions.go#L30",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3961,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/syncapi/sync/v4_extensions.go#L30",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 3970,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/internal/transactions/transactions.go#L27",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 3981,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/syncapi/routing/relations.go#L71",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4010,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/account_data.go#L91",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4025,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/admin_mas.go#L677",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4108,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L139",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4115,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/roomserver/types/headered_event.go#L26",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4133,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L112",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4140,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L106",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4143,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L56",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4151,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/admin.go#L532",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4169,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L114",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4178,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/password_reset.go#L83",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4186,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L105",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4190,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/device.go#L162",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4210,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/internal/pushrules/condition.go#L52",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4222,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L111",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4260,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/admin.go#L559",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4262,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L109",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4284,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/federationapi/api/api.go#L59",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4289,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/roomserver/internal/perform/perform_create_room.go#L171",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4306,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L117",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4308,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/syncapi/routing/routing.go#L60",
      "note": "unstable prefix in code"
     },
     {
      "msc": 4311,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/federationapi/api/api.go#L216",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4323,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/admin_moderation.go#L23",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4326,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/auth/auth.go#L58",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4354,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L110",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4380,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L115",
      "note": "advertised in unstable_features"
     },
     {
      "msc": 4388,
      "state": "experimental",
      "flag": "MSC4388",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/setup/config/config_mscs.go#L33",
      "note": "behind a config option"
     },
     {
      "msc": 4436,
      "state": "stable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/roomserver/acls/acls.go#L100",
      "note": "referenced in code; MSC is in the spec"
     },
     {
      "msc": 4480,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/syncapi/sync/v4_extensions.go#L305",
      "note": "referenced in code, no flag found; extent not checked"
     },
     {
      "msc": 4486,
      "state": "unstable",
      "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/clientapi/routing/routing.go#L537",
      "note": "referenced in code, no flag found; extent not checked"
     }
    ]
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "none-found",
     "evidence": [],
     "checked_at": "c68f55c60d89a91b4532e6b7a2da9d8edbba8174"
    },
    "in_product": {
     "value": "none-found",
     "note": null,
     "source": null
    }
   },
   "icon": {
    "file": "zendrite.svg",
    "source": "https://codefloe.com/pat-s/zendrite/src/commit/c68f55c60d89a91b4532e6b7a2da9d8edbba8174/website/public/logo-light.svg",
    "licence": "AGPL-3.0-or-later OR LicenseRef-Element-Commercial",
    "note": null,
    "checked": "2026-11-05",
    "backing": "light"
   },
   "notes": "matrix.org lists the licence as AGPL-3.0-or-later; the repo keeps Dendrite's LICENSE-COMMERCIAL file.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 0,
     "commits_365d": 431,
     "share_365d": 0,
     "suggested_dev_usage": "none-found",
     "tools": {},
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 12,
    "authors_90d": 4,
    "authors_all": 207,
    "authors_by_quarter": {
     "2023-Q1": 17,
     "2023-Q2": 14,
     "2023-Q3": 10,
     "2023-Q4": 11,
     "2024-Q1": 9,
     "2024-Q2": 3,
     "2024-Q3": 12,
     "2024-Q4": 4,
     "2025-Q1": 4,
     "2025-Q2": 4,
     "2025-Q3": 5,
     "2025-Q4": 1,
     "2026-Q1": 4,
     "2026-Q2": 7,
     "2026-Q3": 5,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 87,
    "commits_365d": 431,
    "commits_90d": 209,
    "commits_all": 3398,
    "first_commit": "2017-01-20T18:25:51+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "Astro": 0.001,
     "Go": 0.974,
     "JavaScript": 0.0237
    },
    "last_commit": "2026-11-04T10:34:47+00:00",
    "last_tag": "v3.7.0",
    "last_tag_date": "2026-11-03T07:51:45+00:00",
    "last_tag_repo": "https://codefloe.com/pat-s/zendrite",
    "licence_detected": "AGPL-3.0",
    "loc": {
     "Astro": 219,
     "CSS": 73,
     "Dockerfile": 41,
     "Go": 205095,
     "HTML": 53,
     "JavaScript": 4992,
     "MDX": 21,
     "Shell": 41,
     "TypeScript": 26
    },
    "loc_total": 210561,
    "main_language": "Go",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 29,
    "telemetry_sdks": [
     "Sentry"
    ],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     1,
     0,
     2,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     6,
     101,
     18,
     6,
     10,
     4,
     5,
     8,
     4,
     1,
     0,
     0,
     0,
     0,
     7,
     5,
     10,
     0,
     6,
     3,
     10,
     6,
     1,
     2,
     0,
     6,
     0,
     0,
     0,
     0,
     4,
     25,
     14,
     4,
     60,
     38,
     2,
     10,
     8,
     44
    ]
   }
  },
  {
   "slug": "zooid",
   "name": "Zooid",
   "category": "client",
   "kind": "web",
   "homepage": "https://zooid.dev",
   "summary": "Web Matrix client built for collaborating with AI agents; the human-facing half of the Zooid agent platform, whose daemon bridges agents onto Matrix.",
   "repos": [
    {
     "url": "https://github.com/zooid-ai/clients",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": "https://matrix.org/ecosystem/clients/zooid/",
    "other": []
   },
   "maturity": "alpha",
   "platforms": [
    "web"
   ],
   "apps": [
    {
     "os": "web",
     "tech": "other",
     "min_os": null,
     "status": "alpha",
     "stores": [],
     "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/README.md#L3",
     "note": "no mobile app found"
    }
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [],
   "funding": [],
   "features": {
    "sdk": {
     "value": "matrix-js-sdk",
     "how": "code",
     "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/package.json"
    },
    "e2ee": {
     "value": "not-found"
    },
    "cross_signing": {
     "value": "not-found"
    },
    "key_backup": {
     "value": "not-found"
    },
    "sliding_sync": {
     "value": "not-found"
    },
    "oidc_auth": {
     "value": "not-found"
    },
    "multi_account": {
     "value": "not-found"
    },
    "threads": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/packages/web/src/components/rooms/composer.tsx#L20",
     "note": "pattern match [threadRoot]"
    },
    "spaces": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/packages/web/src/components/structures/left-panel.test.tsx#L46",
     "note": "pattern match [m.space.child]"
    },
    "voip_1to1": {
     "value": "not-found"
    },
    "group_calls": {
     "value": "not-found"
    },
    "reactions": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/packages/web/src/components/timeline/reaction-picker.test.tsx#L46",
     "note": "pattern match [m.reaction]"
    },
    "edits": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/packages/web/src/components/timeline/edit-delete.integration.test.tsx#L39",
     "note": "pattern match [m.replace]"
    },
    "replies": {
     "value": "not-found"
    },
    "polls": {
     "value": "not-found"
    },
    "custom_emoji": {
     "value": "not-found"
    },
    "stickers": {
     "value": "not-found"
    },
    "location": {
     "value": "not-found"
    },
    "voice_messages": {
     "value": "not-found"
    },
    "rich_text_editor": {
     "value": "not-found"
    },
    "url_previews": {
     "value": "not-found"
    },
    "push_notifications": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/packages/web/src/components/settings/notification-section.test.tsx#L116",
     "note": "pattern match [setPusher]"
    },
    "private_read_receipts": {
     "value": "not-found"
    },
    "presence": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/packages/web/src/components/user-avatar.test.tsx#L53",
     "note": "pattern match [presence]"
    },
    "room_upgrades": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/packages/web/src/components/timeline/edit-delete.integration.test.tsx#L113",
     "note": "pattern match [tombstone]"
    },
    "moderation_tools": {
     "value": "not-found"
    },
    "accessibility": {
     "value": "yes",
     "how": "code",
     "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/packages/web/package.json#L56",
     "note": "pattern match [a11y]"
    },
    "translations": {
     "value": "not-found"
    },
    "telemetry": {
     "value": "none-found"
    },
    "default_homeserver": {
     "value": "not-found"
    },
    "fork_friendliness": {
     "value": "yes",
     "how": "code",
     "note": "MIT; Node 22 / Vite monorepo, about 420 files"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "109 of 146 commits in the last 365 days (75 %) carry Claude co-author trailers; a zooidbot account also commits",
      "no agent files in the tree at 2b8a626eda"
     ]
    },
    "in_product": {
     "value": "core",
     "note": "A chat client for working with AI agents run by the Zooid daemon (ACP harnesses such as Claude Code, Codex, opencode).",
     "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/README.md#L3"
    }
   },
   "icon": {
    "file": "zooid.svg",
    "source": "https://github.com/zooid-ai/clients/blob/2b8a626eda46aaeccdc0c5059469d73824731c7c/packages/web/public/favicon.svg",
    "licence": "MIT",
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "The Zooid daemon (agents as a Matrix application service) is a bot/tool for lane 5: https://github.com/zooid-ai/zooid.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 107,
     "commits_365d": 130,
     "share_365d": 0.8231,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 107
     },
     "workflows": 0
    },
    "archived": false,
    "authors_365d": 3,
    "authors_90d": 3,
    "authors_all": 3,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 1,
     "2026-Q3": 3,
     "2026-Q4": 2
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 8,
    "commits_365d": 130,
    "commits_90d": 43,
    "commits_all": 130,
    "first_commit": "2026-05-05T18:13:18+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "CSS": 0.0037,
     "JavaScript": 0.0023,
     "Shell": 0.0012,
     "TypeScript": 0.9923
    },
    "last_commit": "2026-10-14T16:18:19+00:00",
    "last_tag": "@zooid/web@0.16.0",
    "last_tag_date": "2026-10-14T18:20:09+02:00",
    "last_tag_repo": "https://github.com/zooid-ai/clients",
    "licence_detected": "MIT",
    "loc": {
     "CSS": 121,
     "HTML": 13,
     "JavaScript": 74,
     "Shell": 40,
     "TypeScript": 32163
    },
    "loc_total": 32411,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 13,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     11,
     5,
     2,
     13,
     2,
     5,
     26,
     13,
     5,
     0,
     2,
     0,
     0,
     0,
     5,
     0,
     0,
     4,
     17,
     0,
     0,
     9,
     6,
     5,
     0,
     0,
     0
    ]
   }
  },
  {
   "slug": "zooid-daemon",
   "name": "Zooid (daemon and CLI)",
   "category": "bot",
   "kind": "AI agent platform",
   "homepage": "https://zooid.dev",
   "summary": "Runs ACP-compatible coding agents (Claude Code, opencode, Codex, …) in containers as Matrix users, declared in a zooid.yaml workforce file.",
   "repos": [
    {
     "url": "https://github.com/zooid-ai/zooid",
     "forge": "github",
     "role": "main"
    }
   ],
   "sources": {
    "matrix_org_listing": null,
    "other": [
     "notes/03.md (lane 3, from the Zooid client)"
    ]
   },
   "maturity": "beta",
   "platforms": [
    "server"
   ],
   "licence": "MIT",
   "fork_of": null,
   "distribution": [
    "npm"
   ],
   "funding": [],
   "features": {
    "purpose": {
     "value": "AI coding agents as Matrix users, multi-agent collaboration",
     "how": "claimed",
     "source": "https://github.com/zooid-ai/zooid/blob/dc3b677061c9682edf1f46fe7431e64841ec6810/README.md"
    },
    "framework": {
     "value": "own (Node.js); Matrix for transport, ACP for the agent contract",
     "how": "claimed",
     "source": "https://github.com/zooid-ai/zooid/blob/dc3b677061c9682edf1f46fe7431e64841ec6810/README.md"
    },
    "e2ee": {
     "value": "yes",
     "how": "claimed",
     "source": "https://github.com/zooid-ai/zooid/blob/dc3b677061c9682edf1f46fe7431e64841ec6810/README.md",
     "note": "\"Matrix for transport (E2E encryption, federation)\""
    },
    "hosting": {
     "value": "self-host (Docker or Podman per agent)",
     "how": "claimed",
     "source": "https://github.com/zooid-ai/zooid/blob/dc3b677061c9682edf1f46fe7431e64841ec6810/README.md"
    },
    "config": {
     "value": "zooid.yaml file and CLI",
     "how": "claimed",
     "source": "https://github.com/zooid-ai/zooid/blob/dc3b677061c9682edf1f46fe7431e64841ec6810/README.md"
    },
    "ai_backend": {
     "value": "any ACP agent: Claude Code, opencode, Codex, pi, GitHub Copilot CLI, Cursor",
     "how": "claimed",
     "source": "https://github.com/zooid-ai/zooid/blob/dc3b677061c9682edf1f46fe7431e64841ec6810/README.md"
    }
   },
   "ai": {
    "policy": {
     "value": "none-found",
     "quote": null,
     "source": null
    },
    "dev_usage": {
     "value": "regular",
     "evidence": [
      "175 of 224 non-merge commits since 2025-11-05 carry an AI co-author trailer or \"Generated with\" line (78 %), counted at dc3b6770"
     ]
    },
    "in_product": {
     "value": "core",
     "note": "Orchestrates AI coding agents; agents are the product.",
     "source": "https://github.com/zooid-ai/zooid/blob/dc3b677061c9682edf1f46fe7431e64841ec6810/README.md"
    }
   },
   "icon": {
    "file": "zooid-daemon.svg",
    "source": "https://zooid.dev/favicon.svg",
    "licence": null,
    "note": null,
    "checked": "2026-11-05"
   },
   "notes": "The daemon behind the Zooid client (client file zooid); added in the integration pass from lane 3's notes.",
   "checked": "2026-11-05",
   "status": "unknown",
   "metrics": {
    "fetched_at": "2026-11-05T05:29:27+00:00",
    "ai": {
     "agent_files": 0,
     "ai_bot_commits_365d": 0,
     "attributed_commits_365d": 163,
     "commits_365d": 224,
     "share_365d": 0.7277,
     "suggested_dev_usage": "regular",
     "tools": {
      "claude": 163
     },
     "workflows": 1
    },
    "archived": false,
    "authors_365d": 4,
    "authors_90d": 3,
    "authors_all": 4,
    "authors_by_quarter": {
     "2023-Q1": 0,
     "2023-Q2": 0,
     "2023-Q3": 0,
     "2023-Q4": 0,
     "2024-Q1": 0,
     "2024-Q2": 0,
     "2024-Q3": 0,
     "2024-Q4": 0,
     "2025-Q1": 0,
     "2025-Q2": 0,
     "2025-Q3": 0,
     "2025-Q4": 0,
     "2026-Q1": 0,
     "2026-Q2": 2,
     "2026-Q3": 3,
     "2026-Q4": 3
    },
    "bus_factor_365d": 1,
    "ci": true,
    "commits_30d": 31,
    "commits_365d": 224,
    "commits_90d": 97,
    "commits_all": 224,
    "first_commit": "2026-04-11T17:59:03+00:00",
    "forks": null,
    "issue_first_response_median_days": null,
    "languages": {
     "JavaScript": 0.0041,
     "TypeScript": 0.9954
    },
    "last_commit": "2026-10-20T06:11:09+00:00",
    "last_tag": "@zooid/acp-client@0.18.0",
    "last_tag_date": "2026-10-14T18:22:33+02:00",
    "last_tag_repo": "https://github.com/zooid-ai/zooid",
    "licence_detected": "MIT",
    "loc": {
     "Dockerfile": 20,
     "JavaScript": 169,
     "TypeScript": 40784
    },
    "loc_total": 40973,
    "main_language": "TypeScript",
    "open_issues": null,
    "open_prs": null,
    "security_policy": null,
    "stars": null,
    "status": "active",
    "tags_365d": 242,
    "telemetry_sdks": [],
    "tests_present": true,
    "weekly_commits": [
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     0,
     10,
     0,
     3,
     23,
     19,
     8,
     21,
     8,
     1,
     13,
     13,
     1,
     0,
     6,
     0,
     0,
     0,
     1,
     1,
     0,
     1,
     30,
     5,
     2,
     15,
     17,
     19,
     7,
     0,
     0
    ]
   }
  }
 ]
}