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 ggg123124/vrchat-assistant --skill booth-purchase-automationgit clone --depth 1 https://github.com/ggg123124/vrchat-assistantWrote 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/ggg123124/vrchat-assistant/booth-purchase-automation)<a href="https://agentmods.dev/skills/ggg123124/vrchat-assistant/booth-purchase-automation"><img src="https://agentmods.dev/badge/skills/ggg123124/vrchat-assistant/booth-purchase-automation/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/ggg123124/vrchat-assistant/booth-purchase-automation"><img src="https://agentmods.dev/badge/skills/ggg123124/vrchat-assistant/booth-purchase-automation.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00030 | $0.03708 |
| Opus 5 | $0.00015 | $0.01854 |
| Sonnet 5 | $0.00006 | $0.00742 |
| Haiku 4.5 | $0.00003 | $0.00371 |
Grade A, and why
booth-purchase-automation scanned grade A with 0 findings 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 6d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.
BOOTH 真实购买自动化 Skill — 搜索定位 / 加购 / 结账 / 支付 / 素材下载
当使用者明确要求真实购买 BOOTH(booth.pm)商品时使用。本 skill 覆盖「搜索定位 → 加购 → 结账 → 支付 → 素材下载」完整闭环。纯查询/展示(封面、人民币价、热度榜)另见 booth-query-display。
注意:真实扣款。 涉及用户真实货币,每一步推进前必须让用户明确确认,尤其支付方式选择与最后的「进行支付」。支付凭据由用户绑定在账号里,代理不应也不应尝试触碰。
🔽 警告缩减条款(全自动购买授权):若用户主动明确要求全自动购买(如说「直接买」「直接」「全自动」「不用问我」等),分散的逐步警告缩减为一次最终确认——仅在「加入购物车 + 支付」前一次性确认 商品(名称/变体/价格) + 支付方式 + 总金额,确认后连续执行 加购→结账→支付,不再逐步打断。仅此一种缩减;未获该明确授权前始终按逐步 警告→确认 执行。任何情况下都不触碰用户支付凭据。
前置条件(环境)
- 受控浏览器常开调试端口(如 Edge
--remote-debugging-port=9222+ 独立持久 profile),browser.cdp_url指向该端口 browser_exec附着该浏览器,登录态持久- 登录:BOOTH 登录走 pixiv 账号(浏览器窗口内用户本人登录,代理不碰密码)。若用户提到 passkey / 密码管理器扩展,先确认受控浏览器里对应扩展是否存在,否则让用户直接在该窗口手动登录 pixiv 更快。
第一步:搜索定位商品
搜索页解析(拿商品 ID)
GET https://booth.pm/ja/search/{encodeURIComponent(关键词)}?page={1..N}
- 商品链接正则:
/href="(?:https:\/\/booth\.pm)?\/ja\/items\/(\d+)"[^>]*>([\s\S]*?)<\/a>/g - 跳过空链接块(缩略图
<a></a>),取含文本的链接,去重 ID - 默认综合排序,热门商品集中在前列,取前 3 页足够
商品详情(拿价格/热度/变体)
GET https://booth.pm/ja/items/{id}.json # 匿名可访问;间隔 ~0.4s 防限流
关键字段:name、price、wish_lists_count(收藏数=热度,BOOTH 唯一公开热度信号)、shop.name、tags、is_sold_out、url。下载量/销量不可查(past_purchase_count 匿名恒 0,仅卖家后台可见)。
变体与金额确认
商品可能有多档变体(素体/尺寸/单件-全套等)。加购前向用户确认要哪一档,并核对对应金额。
第二步:登录态判断(关键)
BOOTH 界面语言随账号 locale 变化(中文/日文/英文等,不一定是中文),判断登录态不能用单一语言硬编码。可先读页面 <html lang>,并覆盖常见语言变体:
- 已登录 → 页头出现用户名 + 登出/ログアウト/Log out + 购买的商品・资料库/購入した商品・ライブラリ/Purchases・Library
- 未登录 → 页头是 登录/ログイン/Login 按钮
# browser_exec 里
lang = js("document.documentElement.lang") # 'zh-CN' / 'ja' / 'en' ...
# 只扫页头导航区(header),避免页脚/引导区「登录后购买」诱导链接造成误判
header_txt = js("(document.querySelector('header')||document.body).innerText || ''")
logged_out_keys = ['登录', 'ログイン', 'Login', 'Sign in'] # 出现则未登录
logged_in_keys = ['登出','我的页面','购买的商品','ログアウト','購入した商品','Log out','Purchases','Library']
# 结构锚点优先:页头有登出按钮=已登录;有登录按钮=未登录;判定冲突时以登出按钮为准
has_logout = js("!!(document.querySelector('header') && /登出|ログアウト|Log\\s*out/i.test(document.querySelector('header').innerText))")
has_login = js("!!(document.querySelector('header') && /登录|ログイン|Login|Sign\\s*in/i.test(document.querySelector('header').innerText))")
logged = has_logout or (not has_login and any(k in header_txt for k in logged_in_keys))
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.
- 6d ago First seen · 130 lines · 30 tokens per session scan A fe5017178166
booth-purchase-automation is a skill published in the GitHub repository ggg123124/vrchat-assistant (21 stars, last pushed yesterday), licensed MIT. It adds 30 tokens to every session and 3,708 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.
Other skills, from other repositories
pebble-setup
Install, update, launch, and talk to Pebble — the PWA chat interface — from a Hermes agent.
playwright-browser-automation
Run automated headless browser testing, scrape dynamic SPAs, capture high-resolution full-page screenshots, and perform visual regression testing with Playwright.
dogfood
Exploratory QA of web apps: find bugs, evidence, reports.
scrapling
Web scraping with Scrapling - HTTP fetching, stealth browser automation, Cloudflare bypass, and spider crawling via CLI and Python.
shopify
Shopify Admin & Storefront GraphQL APIs via curl. Products, orders, customers, inventory, metafields.
shop
Shop catalog search, checkout, order tracking, returns.