Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add OpenMinis/MinisSkills --skill appstoreprice-hubgit clone --depth 1 https://github.com/OpenMinis/MinisSkillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/openminis/minisskills/appstoreprice-hub)<a href="https://agentmods.dev/skills/openminis/minisskills/appstoreprice-hub"><img src="https://agentmods.dev/badge/skills/openminis/minisskills/appstoreprice-hub/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/openminis/minisskills/appstoreprice-hub"><img src="https://agentmods.dev/badge/skills/openminis/minisskills/appstoreprice-hub.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high System Prompt Leakage · line 111 Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.Fix: Remove any instructions that reveal, print, or output system prompts or internal rules. System instructions should never be exposed to end users.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00166 | $0.01818 |
| Opus 5 | $0.00083 | $0.00909 |
| Sonnet 5 | $0.00033 | $0.00364 |
| Haiku 4.5 | $0.00017 | $0.00182 |
Grade A, and why
appstoreprice-hub scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
2. **RSC page stream** (price details): directly parse `fetch(url, { headers: { RSC: '1' } })` How it starts
The opening of the file, as written. The whole thing — 144 lines — stays where its author put it; the contents beside it link to each section on GitHub.
appstoreprice-hub
Query App Store global pricing data from appstoreprice.org.
Data source: appstoreprice.org, an unofficial price comparison website maintained by @qingnianxiaozhe. It scrapes and compares App Store prices across regions worldwide in real time. This is not official Apple data. Prices are updated daily.
How It Works
The website uses the Next.js App Router and accesses data in two ways:
- REST API (search/list): requires the FNV-1a signature headers
X-Timestamp+X-Signature - RSC page stream (price details): directly parse
fetch(url, { headers: { RSC: '1' } })
The signing function is embedded in the page's webpack module (currently 22463). Reuse it directly in the website page context instead of implementing it yourself. The module ID may change when the website is deployed or updated. See Troubleshooting.
Execution Method: minis-browser-use CLI
Always use the minis-browser-use CLI + shell script. Do not use the browser_use tool call.
Benefit: JS code is read from a file and passed directly to the process, so it does not occupy the agent context.
Standard Template
All steps must be completed in the same shell_execute call to prevent tab state from becoming invalid across calls.
Write business logic to a temporary file with file_write and then concatenate it. Do not use a heredoc, because BusyBox ash can easily parse braces or quotes incorrectly.
# Prerequisite: use file_write to write the business logic to /tmp/asp_logic.js, then:
minis-browser-use navigate --url "https://appstoreprice.org/zh/apps" \
&& minis-browser-use wait_for_dom_stable --timeout 8 \
&& minis-browser-use execute_js --script "$(cat /var/minis/skills/appstoreprice-hub/scripts/api.js /tmp/asp_logic.js)"
Why combine everything into one
shell_execute? Theminis-browser-usebrowser tab may become invalid between twoshell_executecalls (the tab may be recycled), and the second call may reportwebpackChunk_N_E not found. Serial execution in the same process keeps the tab state stable.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 144 lines · 166 tokens per session scan A e0cb405e73fe
appstoreprice-hub is a skill published in the GitHub repository OpenMinis/MinisSkills (409 stars, last pushed 7d ago), licensed MIT. It adds 166 tokens to every session and 1,818 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
ebay-search-listing
Extracts product listings from any eBay search or category page URL, returning per-item cards (itemNumber, url, title, subtitle, caption, price, priceWithCurrency, currency, wasPrice, bids, shipping, seller, sellerFeedbackCount, sellerPositiveRating, reviewsCount, starRating, image) plus pagination state (currentPage…
amazon-bestseller-listing
Amazon Best Sellers listing scraper: extract product cards from any Amazon Best Sellers (zgbs) or /gp/bestsellers/ category page — returns rank (position on chart), asin, title, url, image, imageAlt, price, stars, reviewCount, ratingRaw per item, plus category metadata (categoryName, categoryFullName, categoryUrl) and…
amazon-search-listing
Amazon search and category listing scraper: extract product listings from any Amazon search results page, keyword search URL, or category browse page and return per-item cards (asin, title, url, image, price, listPrice, stars, reviewCount, badges, isAmazonChoice, isBestSeller, isSponsored, delivery, boughtInPast…
etsy-category-listing
Etsy category page scraper: given an Etsy category URL (e.g. https://www.etsy.com/c/jewelry) and optional page number, returns paginated product listings with listingId, shopId, title, url, image, salePrice, originalPrice, currency, rating, reviewCount, shopName, isAd, freeShipping, badge from category and subcategory…
etsy-product-detail
Etsy product detail scraper: given an Etsy listing URL, returns full product detail including listingId, title, priceCurrent, priceOriginal, currency, images (all), description, shopName, shopUrl, rating, reviewCount, favorites, inCartCount, variations (with per-option price ranges), highlights, listedDate…
walmart-product-detail
Walmart product detail page extractor: given a walmart.com product URL (walmart.com/ip/...), extract full product data including itemId, title, brand, model, UPC, price, wasPrice, currency, availability, category path, seller info, all images, shortDescription, longDescription, product highlights, full specifications…