{"adoption": {"forks": 309, "observed_at": "2026-08-28T04:07:48.242907+00:00", "stars": 3193}, "canonical_url": "https://ross.abutalabs.com/products/sherloq", "card": {"archived": false, "artifact_type": "application", "description": "An open-source digital image forensic toolset", "domain": ["computer-vision", "image-processing", "security", "privacy"], "enriched": true, "function": ["image-processing", "gui", "developer-tools"], "health_score": 76, "homepage": null, "language": "Perl", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["GuidoBartoli/sherloq"], "name": "GuidoBartoli/sherloq", "platform": ["cross-platform", "python"], "pushed_at": "2026-07-16T11:39:56+00:00", "repo": "GuidoBartoli/sherloq", "stars": 3193, "tags": ["image-forensics", "forensic-analysis", "image-authentication", "tamper-detection", "error-level-analysis", "opencv", "pyside2", "desktop"], "topics": ["image-forensics", "image-processing", "gui", "toolkit", "digital-image-forensics", "forensic-image-analysis"], "urls": [], "use_cases": ["detect if a photo has been edited or forged", "analyze image authenticity for legal matters", "run error level analysis on a jpeg", "experiment with image forensics algorithms from research papers", "investigate manipulated images without expensive commercial tools", "learn digital image forensics hands-on"], "what_it_is": "Sherloq is an open-source digital image forensic toolset providing an integrated GUI environment for analyzing images for tampering and authenticity. It implements algorithms from recent research papers as an extensible framework for experimentation rather than an automatic forgery verdict tool.", "when_to_avoid": ["you need an automated tool that definitively declares an image forged or authentic", "you need certified, court-admissible forensic evidence from a validated tool", "you need a command-line tool for batch processing pipelines"], "when_to_choose": ["you need an open-source alternative to expensive commercial forensic suites", "you want to experiment with state-of-the-art image forensics algorithms interactively", "you need a GUI to visually inspect multiple forensic analyses side by side"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sherloq", "repo": "GuidoBartoli/sherloq", "role": "main", "score": 74}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.242907+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:24:54.895924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5dd5c3d33f8be4744c1d49af9ee53e3f00c8bbf01a2cf96c5a2e9476b55bbe66", "fetched_at": "2026-08-28T04:07:48.242907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GuidoBartoli/sherloq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.242907+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:24:54.895924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5dd5c3d33f8be4744c1d49af9ee53e3f00c8bbf01a2cf96c5a2e9476b55bbe66", "fetched_at": "2026-08-28T04:07:48.242907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GuidoBartoli/sherloq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:24:54.895924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5dd5c3d33f8be4744c1d49af9ee53e3f00c8bbf01a2cf96c5a2e9476b55bbe66", "fetched_at": "2026-08-28T04:07:48.242907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GuidoBartoli/sherloq"}], "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:48.242907+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.242907+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.242907+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:24:54.895924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5dd5c3d33f8be4744c1d49af9ee53e3f00c8bbf01a2cf96c5a2e9476b55bbe66", "fetched_at": "2026-08-28T04:07:48.242907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GuidoBartoli/sherloq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.242907+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.242907+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:24:54.895924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5dd5c3d33f8be4744c1d49af9ee53e3f00c8bbf01a2cf96c5a2e9476b55bbe66", "fetched_at": "2026-08-28T04:07:48.242907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GuidoBartoli/sherloq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.242907+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.242907+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.242907+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:24:54.895924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5dd5c3d33f8be4744c1d49af9ee53e3f00c8bbf01a2cf96c5a2e9476b55bbe66", "fetched_at": "2026-08-28T04:07:48.242907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GuidoBartoli/sherloq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.242907+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:48.242907+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:24:54.895924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5dd5c3d33f8be4744c1d49af9ee53e3f00c8bbf01a2cf96c5a2e9476b55bbe66", "fetched_at": "2026-08-28T04:07:48.242907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GuidoBartoli/sherloq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:24:54.895924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5dd5c3d33f8be4744c1d49af9ee53e3f00c8bbf01a2cf96c5a2e9476b55bbe66", "fetched_at": "2026-08-28T04:07:48.242907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GuidoBartoli/sherloq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:24:54.895924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5dd5c3d33f8be4744c1d49af9ee53e3f00c8bbf01a2cf96c5a2e9476b55bbe66", "fetched_at": "2026-08-28T04:07:48.242907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GuidoBartoli/sherloq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:24:54.895924+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5dd5c3d33f8be4744c1d49af9ee53e3f00c8bbf01a2cf96c5a2e9476b55bbe66", "fetched_at": "2026-08-28T04:07:48.242907+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GuidoBartoli/sherloq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 92, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3357, "days_push": 48, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 74, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}