{"adoption": {"forks": 180, "observed_at": "2026-08-28T04:05:57.920021+00:00", "stars": 1947}, "canonical_url": "https://ross.abutalabs.com/products/blobsaver", "card": {"archived": false, "artifact_type": "application", "description": "A cross-platform GUI and CLI app for automatically saving SHSH blobs", "domain": ["mobile-development", "security", "developer-tools", "cross-platform"], "enriched": true, "function": ["gui", "cli", "workflow-automation", "scheduling"], "health_score": 50, "homepage": null, "language": "Java", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["airsquared/blobsaver"], "name": "airsquared/blobsaver", "platform": ["windows", "cli", "jvm"], "pushed_at": "2025-10-06T16:04:10+00:00", "repo": "airsquared/blobsaver", "stars": 1947, "tags": ["shsh-blobs", "jailbreak", "ios-downgrades", "javafx", "apnonce", "macos", "linux", "desktop"], "topics": ["java", "javafx", "javafx-application", "blobs", "ios", "jailbreak"], "urls": [], "use_cases": ["automatically save SHSH blobs for my iPhone in the background", "save iOS blobs for beta versions without a URL", "read apnonce and generator on jailbroken and unjailbroken devices", "manage SHSH blobs for multiple Apple devices", "automate blob saving from the command line", "upload saved blobs to TSS Saver or SHSH Host"], "what_it_is": "blobsaver is a cross-platform GUI and CLI application for automatically saving SHSH blobs for iOS devices, useful for future downgrades and jailbreaking. It supports background saving, reading apnonce/generator and ECID, unlimited devices, and uploading to TSS Saver and SHSH Host.", "when_to_avoid": ["you need to actually downgrade or jailbreak a device - this only saves blobs", "you need a headless server-side solution without Java", "you work with non-Apple devices"], "when_to_choose": ["you need scheduled or background SHSH blob saving across macOS, Windows, or Linux", "you want a GUI plus scriptable CLI for blob management", "you manage blobs for many devices or beta firmware versions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/blobsaver", "repo": "airsquared/blobsaver", "role": "main", "score": 43}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.920021+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:07:06.130482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4e3bd3d22525b6b3de0ef7ebe5f9122625b13a1591864f57f8526637b252e5ae", "fetched_at": "2026-08-28T04:05:57.920021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/airsquared/blobsaver"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.920021+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:07:06.130482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4e3bd3d22525b6b3de0ef7ebe5f9122625b13a1591864f57f8526637b252e5ae", "fetched_at": "2026-08-28T04:05:57.920021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/airsquared/blobsaver"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:07:06.130482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4e3bd3d22525b6b3de0ef7ebe5f9122625b13a1591864f57f8526637b252e5ae", "fetched_at": "2026-08-28T04:05:57.920021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/airsquared/blobsaver"}], "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:57.920021+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.920021+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.920021+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:07:06.130482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4e3bd3d22525b6b3de0ef7ebe5f9122625b13a1591864f57f8526637b252e5ae", "fetched_at": "2026-08-28T04:05:57.920021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/airsquared/blobsaver"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.920021+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.920021+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:07:06.130482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4e3bd3d22525b6b3de0ef7ebe5f9122625b13a1591864f57f8526637b252e5ae", "fetched_at": "2026-08-28T04:05:57.920021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/airsquared/blobsaver"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.920021+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.920021+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.920021+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:07:06.130482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4e3bd3d22525b6b3de0ef7ebe5f9122625b13a1591864f57f8526637b252e5ae", "fetched_at": "2026-08-28T04:05:57.920021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/airsquared/blobsaver"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.920021+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:57.920021+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:07:06.130482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4e3bd3d22525b6b3de0ef7ebe5f9122625b13a1591864f57f8526637b252e5ae", "fetched_at": "2026-08-28T04:05:57.920021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/airsquared/blobsaver"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:07:06.130482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4e3bd3d22525b6b3de0ef7ebe5f9122625b13a1591864f57f8526637b252e5ae", "fetched_at": "2026-08-28T04:05:57.920021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/airsquared/blobsaver"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:07:06.130482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4e3bd3d22525b6b3de0ef7ebe5f9122625b13a1591864f57f8526637b252e5ae", "fetched_at": "2026-08-28T04:05:57.920021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/airsquared/blobsaver"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:07:06.130482+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4e3bd3d22525b6b3de0ef7ebe5f9122625b13a1591864f57f8526637b252e5ae", "fetched_at": "2026-08-28T04:05:57.920021+00:00", "kind": "readme", "missing": false, "url": "https://github.com/airsquared/blobsaver"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 45, "longevity": 100, "rhythm": 8}, "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": 3006, "days_push": 331, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 43, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}