{"adoption": {"forks": 119, "observed_at": "2026-08-28T04:05:25.906987+00:00", "stars": 1712}, "canonical_url": "https://ross.abutalabs.com/products/mokuro", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Read Japanese manga inside browser with selectable text.", "domain": ["computer-vision", "education", "image-processing"], "enriched": true, "function": ["ocr", "computer-vision", "image-processing", "nlp"], "health_score": 96, "homepage": null, "language": "HTML", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["kha-white/mokuro"], "name": "kha-white/mokuro", "platform": ["python", "cross-platform", "browser"], "pushed_at": "2026-07-20T07:18:29+00:00", "repo": "kha-white/mokuro", "stars": 1712, "tags": ["japanese", "manga", "manga-reader", "yomitan", "language-learning", "selectable-text", "natural-language-processing"], "topics": ["japanese", "manga", "ocr", "comics", "comics-reader", "manga-reader"], "urls": [], "use_cases": ["read japanese manga with selectable text in browser", "ocr manga pages for japanese learning", "make manga text copyable for yomitan popup dictionary", "process manga volumes into mokuro files for web reader", "convert manga images to searchable text overlays", "set up manga reading workflow with dictionary lookups"], "what_it_is": "mokuro is a Python tool that performs text detection and OCR on Japanese manga pages and generates overlay files (.mokuro or HTML) enabling selectable text in a browser-based reader. It is designed for Japanese learners who want to read manga with pop-up dictionaries like Yomitan.", "when_to_avoid": ["you need OCR for non-Japanese or non-comic documents", "you want a fully automatic online reader without preprocessing", "you cannot run Python or lack GPU/CPU resources for OCR models"], "when_to_choose": ["you are a Japanese learner wanting to read manga with a popup dictionary", "you need offline OCR processing of manga volumes", "you want selectable/searchable text overlaid on manga images in a browser"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mokuro", "repo": "kha-white/mokuro", "role": "main", "score": 86}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.906987+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.782190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b9f9c5a95319c5b9c991c3c757ace0447ba87469bd211e9efd1c8052ec75994f", "fetched_at": "2026-08-28T04:05:25.906987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kha-white/mokuro"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.906987+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.782190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b9f9c5a95319c5b9c991c3c757ace0447ba87469bd211e9efd1c8052ec75994f", "fetched_at": "2026-08-28T04:05:25.906987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kha-white/mokuro"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.782190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b9f9c5a95319c5b9c991c3c757ace0447ba87469bd211e9efd1c8052ec75994f", "fetched_at": "2026-08-28T04:05:25.906987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kha-white/mokuro"}], "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:05:25.906987+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.906987+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.906987+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.782190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b9f9c5a95319c5b9c991c3c757ace0447ba87469bd211e9efd1c8052ec75994f", "fetched_at": "2026-08-28T04:05:25.906987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kha-white/mokuro"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.906987+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.906987+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.782190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b9f9c5a95319c5b9c991c3c757ace0447ba87469bd211e9efd1c8052ec75994f", "fetched_at": "2026-08-28T04:05:25.906987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kha-white/mokuro"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.906987+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.906987+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.906987+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.782190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b9f9c5a95319c5b9c991c3c757ace0447ba87469bd211e9efd1c8052ec75994f", "fetched_at": "2026-08-28T04:05:25.906987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kha-white/mokuro"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.906987+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.906987+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.782190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b9f9c5a95319c5b9c991c3c757ace0447ba87469bd211e9efd1c8052ec75994f", "fetched_at": "2026-08-28T04:05:25.906987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kha-white/mokuro"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.782190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b9f9c5a95319c5b9c991c3c757ace0447ba87469bd211e9efd1c8052ec75994f", "fetched_at": "2026-08-28T04:05:25.906987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kha-white/mokuro"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.782190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b9f9c5a95319c5b9c991c3c757ace0447ba87469bd211e9efd1c8052ec75994f", "fetched_at": "2026-08-28T04:05:25.906987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kha-white/mokuro"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:34:52.782190+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b9f9c5a95319c5b9c991c3c757ace0447ba87469bd211e9efd1c8052ec75994f", "fetched_at": "2026-08-28T04:05:25.906987+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kha-white/mokuro"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 100, "rhythm": 69}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1600, "days_push": 44, "days_rel": 44, "gap_med": 147, "n_releases_24m": 4}, "score": 86, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}