{"adoption": {"forks": 362, "observed_at": "2026-08-28T04:07:32.136983+00:00", "stars": 2954}, "canonical_url": "https://ross.abutalabs.com/products/malsync", "card": {"archived": false, "artifact_type": "plugin", "description": "Integrates MyAnimeList/AniList/Kitsu/Simkl into various sites, with auto episode tracking.", "domain": ["entertainment", "media", "browser-extensions", "social-media"], "enriched": true, "function": ["browser-extension", "web-scraping", "workflow-automation", "sdk"], "health_score": 100, "homepage": "https://malsync.moe", "language": "TypeScript", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["MALSync/MALSync"], "name": "MALSync/MALSync", "platform": ["browser", "browser-extension", "cross-platform"], "pushed_at": "2026-08-26T22:10:41+00:00", "repo": "MALSync/MALSync", "stars": 2954, "tags": ["anime", "manga", "myanimelist", "anilist", "kitsu", "simkl", "userscript", "scrobbling", "episode-tracking", "plex", "jellyfin", "crunchyroll"], "topics": ["myanimelist", "crunchyroll", "gogoanime", "sync", "anime", "manga", "mal", "scrobble", "mangadex", "userscript", "anilist", "plex", "kitsu", "simkl", "hacktoberfest", "mal-sync"], "urls": [], "use_cases": ["automatically track anime episodes on streaming sites to MyAnimeList", "sync my anime list between AniList and MyAnimeList", "scrobble anime watching from Plex or Jellyfin to tracking sites", "use my anime list as bookmarks across streaming websites", "track manga reading progress on manga sites automatically", "show what I'm watching in Discord rich presence"], "what_it_is": "MAL-Sync is a browser extension and userscript that integrates MyAnimeList, AniList, Kitsu, Simkl, Shikimori, and MangaBaka into hundreds of anime and manga streaming sites with automatic episode tracking. It also supports media servers like Plex, Emby, and Jellyfin, and offers list management, bookmarks, and Discord rich presence.", "when_to_avoid": ["you don't use any anime/manga tracking services", "you need tracking for sites not in the supported list", "you want a mobile app rather than a browser extension or userscript"], "when_to_choose": ["you watch or read on supported streaming sites and want automatic progress syncing", "you use MyAnimeList, AniList, Kitsu, Simkl, Shikimori, or MangaBaka and want centralized tracking", "you want list management and bookmarks across many anime/manga sites from one extension"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/malsync", "repo": "MALSync/MALSync", "role": "main", "score": 89}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:32:36.265956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bcded0b7e1d9f40b2405266078cd9cc4cbd87164e41976be079ab783e81883f", "fetched_at": "2026-08-28T04:07:32.136983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MALSync/MALSync"}, {"content_hash": "bd85a62e7debbb0fc727f3369835a98b61560fbbe7b05e01fd3fbe37d6fd38bf", "fetched_at": "2026-08-29T09:48:01.429154+00:00", "kind": "homepage", "missing": false, "url": "https://malsync.moe"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:32:36.265956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bcded0b7e1d9f40b2405266078cd9cc4cbd87164e41976be079ab783e81883f", "fetched_at": "2026-08-28T04:07:32.136983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MALSync/MALSync"}, {"content_hash": "bd85a62e7debbb0fc727f3369835a98b61560fbbe7b05e01fd3fbe37d6fd38bf", "fetched_at": "2026-08-29T09:48:01.429154+00:00", "kind": "homepage", "missing": false, "url": "https://malsync.moe"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:32:36.265956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bcded0b7e1d9f40b2405266078cd9cc4cbd87164e41976be079ab783e81883f", "fetched_at": "2026-08-28T04:07:32.136983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MALSync/MALSync"}, {"content_hash": "bd85a62e7debbb0fc727f3369835a98b61560fbbe7b05e01fd3fbe37d6fd38bf", "fetched_at": "2026-08-29T09:48:01.429154+00:00", "kind": "homepage", "missing": false, "url": "https://malsync.moe"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:32:36.265956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bcded0b7e1d9f40b2405266078cd9cc4cbd87164e41976be079ab783e81883f", "fetched_at": "2026-08-28T04:07:32.136983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MALSync/MALSync"}, {"content_hash": "bd85a62e7debbb0fc727f3369835a98b61560fbbe7b05e01fd3fbe37d6fd38bf", "fetched_at": "2026-08-29T09:48:01.429154+00:00", "kind": "homepage", "missing": false, "url": "https://malsync.moe"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:32:36.265956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bcded0b7e1d9f40b2405266078cd9cc4cbd87164e41976be079ab783e81883f", "fetched_at": "2026-08-28T04:07:32.136983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MALSync/MALSync"}, {"content_hash": "bd85a62e7debbb0fc727f3369835a98b61560fbbe7b05e01fd3fbe37d6fd38bf", "fetched_at": "2026-08-29T09:48:01.429154+00:00", "kind": "homepage", "missing": false, "url": "https://malsync.moe"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:32:36.265956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bcded0b7e1d9f40b2405266078cd9cc4cbd87164e41976be079ab783e81883f", "fetched_at": "2026-08-28T04:07:32.136983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MALSync/MALSync"}, {"content_hash": "bd85a62e7debbb0fc727f3369835a98b61560fbbe7b05e01fd3fbe37d6fd38bf", "fetched_at": "2026-08-29T09:48:01.429154+00:00", "kind": "homepage", "missing": false, "url": "https://malsync.moe"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:32.136983+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:32:36.265956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bcded0b7e1d9f40b2405266078cd9cc4cbd87164e41976be079ab783e81883f", "fetched_at": "2026-08-28T04:07:32.136983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MALSync/MALSync"}, {"content_hash": "bd85a62e7debbb0fc727f3369835a98b61560fbbe7b05e01fd3fbe37d6fd38bf", "fetched_at": "2026-08-29T09:48:01.429154+00:00", "kind": "homepage", "missing": false, "url": "https://malsync.moe"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:32:36.265956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bcded0b7e1d9f40b2405266078cd9cc4cbd87164e41976be079ab783e81883f", "fetched_at": "2026-08-28T04:07:32.136983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MALSync/MALSync"}, {"content_hash": "bd85a62e7debbb0fc727f3369835a98b61560fbbe7b05e01fd3fbe37d6fd38bf", "fetched_at": "2026-08-29T09:48:01.429154+00:00", "kind": "homepage", "missing": false, "url": "https://malsync.moe"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:32:36.265956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bcded0b7e1d9f40b2405266078cd9cc4cbd87164e41976be079ab783e81883f", "fetched_at": "2026-08-28T04:07:32.136983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MALSync/MALSync"}, {"content_hash": "bd85a62e7debbb0fc727f3369835a98b61560fbbe7b05e01fd3fbe37d6fd38bf", "fetched_at": "2026-08-29T09:48:01.429154+00:00", "kind": "homepage", "missing": false, "url": "https://malsync.moe"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:32:36.265956+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0bcded0b7e1d9f40b2405266078cd9cc4cbd87164e41976be079ab783e81883f", "fetched_at": "2026-08-28T04:07:32.136983+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MALSync/MALSync"}, {"content_hash": "bd85a62e7debbb0fc727f3369835a98b61560fbbe7b05e01fd3fbe37d6fd38bf", "fetched_at": "2026-08-29T09:48:01.429154+00:00", "kind": "homepage", "missing": false, "url": "https://malsync.moe"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 69}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2943, "days_push": 7, "days_rel": 49, "gap_med": 95.0, "n_releases_24m": 7}, "score": 89, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}