{"adoption": {"forks": 436, "observed_at": "2026-08-28T04:06:27.401227+00:00", "stars": 2219}, "canonical_url": "https://ross.abutalabs.com/products/istore", "card": {"archived": false, "artifact_type": "application", "description": "一个 Openwrt 标准的软件中心，纯脚本实现，只依赖Openwrt标准组件。支持其它固件开发者集成到自己的固件里面。更方便入门用户搜索安装插件。The iStore is a app store for OpenWRT", "domain": ["embedded-systems", "self-hosted", "developer-tools", "networking"], "enriched": true, "function": ["package-manager", "gui", "cli", "self-hosted"], "health_score": 80, "homepage": null, "language": "Shell", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["linkease/istore"], "name": "linkease/istore", "platform": ["embedded"], "pushed_at": "2026-08-26T12:45:19+00:00", "repo": "linkease/istore", "stars": 2219, "tags": ["openwrt", "app-store", "luci", "router", "shell-scripts", "firmware-integration", "linux"], "topics": ["openwrt", "appstore", "luci", "istoreos", "istore"], "urls": [], "use_cases": ["install an app store on an OpenWrt router", "search and install LuCI plugins on OpenWrt", "integrate a software center into a custom OpenWrt firmware", "give beginner users guided plugin installation with tutorials", "manage plugin updates independently on iStoreOS"], "what_it_is": "iStore is an open-source app store for OpenWrt implemented purely in shell scripts using only standard OpenWrt components. It lets users search and install plugins easily and allows firmware developers to integrate it into their own builds.", "when_to_avoid": ["your device architecture is not x86_64 or arm64", "your OpenWrt version or platform lacks the dependencies for the plugins you need", "you need a graphical package manager outside the OpenWrt/LuCI ecosystem"], "when_to_choose": ["you run OpenWrt on x86_64 or arm64 hardware and want easy plugin installation", "you build OpenWrt firmware and want to ship a lean image with an on-demand app store", "you want a standards-based software center instead of legacy KoolShare-style plugin centers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/istore", "repo": "linkease/istore", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.401227+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:45:52.303111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "126ff09df9a6491866b1c9f06532a49ff6f844ffbf29213190d3baa60f69cdf9", "fetched_at": "2026-08-28T04:06:27.401227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linkease/istore"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.401227+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:45:52.303111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "126ff09df9a6491866b1c9f06532a49ff6f844ffbf29213190d3baa60f69cdf9", "fetched_at": "2026-08-28T04:06:27.401227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linkease/istore"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:45:52.303111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "126ff09df9a6491866b1c9f06532a49ff6f844ffbf29213190d3baa60f69cdf9", "fetched_at": "2026-08-28T04:06:27.401227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linkease/istore"}], "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:06:27.401227+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.401227+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.401227+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:45:52.303111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "126ff09df9a6491866b1c9f06532a49ff6f844ffbf29213190d3baa60f69cdf9", "fetched_at": "2026-08-28T04:06:27.401227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linkease/istore"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.401227+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.401227+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:45:52.303111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "126ff09df9a6491866b1c9f06532a49ff6f844ffbf29213190d3baa60f69cdf9", "fetched_at": "2026-08-28T04:06:27.401227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linkease/istore"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.401227+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.401227+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.401227+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:45:52.303111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "126ff09df9a6491866b1c9f06532a49ff6f844ffbf29213190d3baa60f69cdf9", "fetched_at": "2026-08-28T04:06:27.401227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linkease/istore"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.401227+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.401227+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:45:52.303111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "126ff09df9a6491866b1c9f06532a49ff6f844ffbf29213190d3baa60f69cdf9", "fetched_at": "2026-08-28T04:06:27.401227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linkease/istore"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:45:52.303111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "126ff09df9a6491866b1c9f06532a49ff6f844ffbf29213190d3baa60f69cdf9", "fetched_at": "2026-08-28T04:06:27.401227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linkease/istore"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:45:52.303111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "126ff09df9a6491866b1c9f06532a49ff6f844ffbf29213190d3baa60f69cdf9", "fetched_at": "2026-08-28T04:06:27.401227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linkease/istore"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:45:52.303111+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "126ff09df9a6491866b1c9f06532a49ff6f844ffbf29213190d3baa60f69cdf9", "fetched_at": "2026-08-28T04:06:27.401227+00:00", "kind": "readme", "missing": false, "url": "https://github.com/linkease/istore"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "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": 1835, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}