Petdex
crafter-station/petdex
Browse, install, submit, and edit pixel-art pets with the Petdex CLI.
Guides shipping a web app to the Meta VR and Horizon OS Store as a PWA/TWA — both 2D windowed panels and immersive WebXR/VR.
$ npx skills add meta-quest/agentic-tools --skill hz-store-pwa -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install meta-quest/agentic-tools hz-store-pwa --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/meta-quest/agentic-tools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hz-store-pwa .claude/skills/hz-store-pwa && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "hz-store-pwa" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-store-pwa into .claude/skills/hz-store-pwa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-store-pwa", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-store-pwaType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add meta-quest/agentic-tools --skill hz-store-pwa -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install meta-quest/agentic-tools hz-store-pwa --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/meta-quest/agentic-tools.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/hz-store-pwa .agents/skills/hz-store-pwa && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "hz-store-pwa" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-store-pwa into .agents/skills/hz-store-pwa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-store-pwa", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add meta-quest/agentic-tools --skill hz-store-pwa -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install meta-quest/agentic-tools hz-store-pwa --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/meta-quest/agentic-tools.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/hz-store-pwa .cursor/skills/hz-store-pwa && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "hz-store-pwa" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-store-pwa into .cursor/skills/hz-store-pwa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-store-pwa", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/meta-quest/agentic-tools.git --path skills/hz-store-pwa--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add meta-quest/agentic-tools --skill hz-store-pwa -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install meta-quest/agentic-tools hz-store-pwa --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/meta-quest/agentic-tools.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/hz-store-pwa .gemini/skills/hz-store-pwa && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "hz-store-pwa" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-store-pwa into .gemini/skills/hz-store-pwa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-store-pwa", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install meta-quest/agentic-tools hz-store-pwaInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add meta-quest/agentic-tools --skill hz-store-pwa -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/meta-quest/agentic-tools.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/hz-store-pwa .github/skills/hz-store-pwa && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "hz-store-pwa" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-store-pwa into .github/skills/hz-store-pwa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-store-pwa", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add meta-quest/agentic-tools --skill hz-store-pwa -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install meta-quest/agentic-tools hz-store-pwa --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/meta-quest/agentic-tools.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/hz-store-pwa .opencode/skills/hz-store-pwa && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "hz-store-pwa" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-store-pwa into .opencode/skills/hz-store-pwa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-store-pwa", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
hz-store-pwaGuides shipping a web app to the Meta VR and Horizon OS Store as a PWA/TWA — both 2D windowed panels and immersive WebXR/VR.
Hz Store Pwa is an agent skill from meta-quest/agentic-tools. Guides shipping a web app to the Meta VR and Horizon OS Store as a PWA/TWA — both 2D windowed panels and immersive WebXR/VR. Covers building the web app (IWSDK for WebXR, any responsive PWA for 2D), Vercel deploy, web app manifest + icons, the WebXR-only auto-enter-session step, choosing 2D vs immersive mode in @meta-quest/bubblewrap-cli, keystore/Digital-Asset-Links, and ovr-platform-util Store upload. Use before any IWSDK/WebXR build, PWA packaging, bubblewrap, or Horizon Store upload work.
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/app-modes.md`, `references/bubblewrap-packaging.md` and `references/manifest-and-icons.md`).
It sits in Game Development. It works with Vercel. The repository describes itself as: Agent Skills for Meta Quest/Horizon OS VR Development. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3a8553d. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(npx:*)Bash(npm:*)Bash(curl:*)Bash(bubblewrap:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxcurlnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
developers.meta.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
BUBBLEWRAP_KEYSTORE_PASSWORDBUBBLEWRAP_KEY_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Hz Store Pwa loads about 3.6k tokens when it runs, and up to ~8.1k if it reads all its reference files. Until then it costs about 128 tokens; SKILL.md has 1,548 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from meta-quest/agentic-tools at commit 3a8553d, republished under its Apache-2.0 licence (© meta-quest). 1,548 words, ~3,612 tokens.
.claude/skills/hz-store-pwa/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Guide the end-to-end process of wrapping a web app as a Meta VR app and shipping
it to the Meta Horizon Store. This skill covers both delivery modes — a 2D
windowed panel and an immersive WebXR/VR experience — through the same
pipeline: build the web app, deploy to Vercel, add a PWA manifest + icons, package
as a signed Meta VR APK with @meta-quest/bubblewrap-cli, and upload with
ovr-platform-util.
Commands use <…> tokens (e.g. <DOMAIN>, <HORIZON_APP_ID>, <team-slug>,
<PW>) — substitute your own values before running.
Use this skill when you need to:
@meta-quest/bubblewrap-cliovr-platform-utilFor deeper IWSDK app-building guidance, see the hz-iwsdk-webxr skill. For the
broader Store submission process (VRC compliance, store assets, review tracking),
see the hz-store-submit skill.
The full pipeline follows this order. The two mode-specific deltas are flagged; all other steps are identical for 2D and immersive.
0. Pick app mode → 2D panel vs immersive WebXR (sets steps 1 + 4)
1. Build the web app → IWSDK WebXR app (immersive) OR any responsive PWA (2D)
2. Deploy to Vercel → public HTTPS origin = <DOMAIN>
3. Manifest + icons → installable web app manifest, PNG icons, live on <DOMAIN>
4. Package as APK → bubblewrap: keystore, twa-manifest, build, asset links
5. Upload to the Store → ovr-platform-util upload-quest-buildDependencies between steps matter — see Order of Operations at the end.
The app mode is the single most important decision, chosen once. It changes exactly two things downstream:
horizonOSAppMode value in twa-manifest.json ("immersive" vs "2D").| 2D PWA | Immersive WebXR PWA | |
|---|---|---|
| Runs as | windowed 2D panel on Horizon | enters a full VR/WebXR session |
| Web app | any responsive PWA (IWSDK optional) | WebXR app (IWSDK is the easy path) |
Auto-enter requestSession | NO — do not add it (Step 1) | YES — built into the app (Step 1) |
horizonOSAppMode | "2D" (Step 4) | "immersive" (Step 4) |
A wrong horizonOSAppMode value is the classic failure mode: a 2D app set to
immersive is stuck loading; an immersive app set to 2D shows a browser URL bar.
See references/app-modes.md for the full decision guide.
Scaffold with @iwsdk/create (the only supported scaffolder):
npx @iwsdk/create@latest <app-name> --yes --mode vr --no-metaspatial \
--no-physics --no-locomotion --grabbingToggle --physics (Havok gravity/collisions), --locomotion (roam a large space),
and --grabbing (hands/controllers pick objects up) to fit the app. For arcade-style
apps prefer deterministic manual motion over physics.
Don't reinvent IWSDK app code. The template's bundled CLAUDE.md,
.claude/skills/iwsdk-* skills, and the iwsdk-rag MCP are the source of truth for
imports, ECS, XR input, physics, UI, and debugging. Query those rather than guessing.
Build auto-enter into the immersive app from the start. An installed immersive
PWA opens with no 2D page, so the app itself must start the session on load (the
app-icon tap is the user activation). Gate it on getDigitalGoodsService so it runs
only in the installed PWA, never a browser tab:
const nav = navigator as Navigator & { xr?: { isSessionSupported?: (m:string)=>Promise<boolean> } };
if ("getDigitalGoodsService" in window && nav.xr?.isSessionSupported) {
nav.xr.isSessionSupported("immersive-vr")
.then(s => { if (s) world.launchXR(); }) // IWSDK launchXR == requestSession + setup
.catch(() => {});
}getDigitalGoodsService is device-only — validate this path on the headset.
Any responsive web app/PWA works — IWSDK is not required. It runs as a single- instance standalone panel with its own Library entry. Make sure it's a valid installable PWA (Step 3) and build/deploy it like any static/SPA site (Step 2). Do NOT add the auto-enter code above.
Full scaffolding flags, project layout, and the auto-enter rationale are in
references/app-modes.md.
The web app must be live on a public HTTPS origin before packaging — bubblewrap
fetches the manifest and icons from it. Set base: "./" in your Vite config, then:
npx -y vercel@latest whoami
npx -y vercel@latest teams ls
npx -y vercel@latest deploy --prod --yes --scope <team-slug>Two URLs result:
https://<project>.vercel.app → public (200). Use this as
<DOMAIN> everywhere downstream.…-<team>.vercel.app → 401 under deployment protection.
Not for sharing, not usable as <DOMAIN>.Verify the root and manifest both return 200, and that the manifest is served as
application/manifest+json:
curl -s -o /dev/null -w "%{http_code}\n" https://<DOMAIN>/manifest.webmanifestSee references/vercel-deploy.md for details and the
redeploy-vs-rebuild rule.
Both modes need a valid, installable manifest and PNG icons, live on <DOMAIN>
before bubblewrap update runs. Place public/manifest.webmanifest:
{ "name":"…","short_name":"…","description":"…","start_url":"/","scope":"/",
"display":"standalone","orientation":"landscape",
"background_color":"#06010f","theme_color":"#0a0418",
"icons":[
{"src":"/icons/icon-192.png","type":"image/png","sizes":"192x192","purpose":"any"},
{"src":"/icons/icon-512.png","type":"image/png","sizes":"512x512","purpose":"any"},
{"src":"/icons/icon-512-maskable.png","type":"image/png","sizes":"512x512","purpose":"maskable"}]}Link it in index.html <head> (<link rel="manifest"> + <meta name="theme-color">
<link rel="icon">). For multi-origin 2D apps, add additional_trusted_origins
and host asset links on each origin.There's no ImageMagick/PIL here — generate icons with sharp (npm i -D sharp) from
an SVG. The maskable icon must be full-bleed and opaque (no transparency or rounded
corners). Vite copies public/ into dist/.
See references/manifest-and-icons.md for the
icon script and the full manifest reference.
bubblewrap wraps the live PWA into a signed Android APK (a Trusted Web Activity).
npm i -g @meta-quest/bubblewrap-cli # bin: bubblewrapPrereqs are pre-provisioned in ~/.bubblewrap (its own JDK 17 + Android SDK). Find
the tools dynamically:
KT=$(find ~/.bubblewrap/jdk -path '*/bin/keytool' | head -1)
BT=$(ls -d ~/.bubblewrap/android_sdk/build-tools/* | sort -V | tail -1)bubblewrap init uses an interactive inquirer wizard that needs a real TTY. A
non-TTY caller (an agent driving Bash) can't answer it and there are no value flags
to bypass it — use the scripted path below.
Signing keystore — pause and ask the developer which key to use before building. The key is permanent: every future update must reuse it. Either reuse an existing keystore (ask for its path, alias, and passwords — required when updating a published app) or generate a new one outside the deployable web tree.
twa-manifest.json (scripted path) — author it from the authoritative
TwaManifest schema. The critical field:
"horizonOSAppMode": "immersive" // ← "immersive" for WebXR | "2D" for a 2D panel appA wrong value is the classic failure mode (Step 0). applicationId = numeric
Horizon App ID ("0" builds & sideloads without IAP; set the real id before Store
work).
Build — update regenerates gradle and bumps version; passwords go via env
vars (no password CLI flags exist):
cd <twa-dir>
export BUBBLEWRAP_KEYSTORE_PASSWORD=<PW> BUBBLEWRAP_KEY_PASSWORD=<PW>
bubblewrap update && bubblewrap build
# → app-release-signed.apk + app-release-bundle.aab
"$BT/apksigner" verify --print-certs app-release-signed.apk | grep -i SHA-256 # must == keystoreDigital Asset Links — a TWA "will not launch" if this fails. Host
public/.well-known/assetlinks.json on the same domain (and every trusted
origin), with the package name and the colon-hex cert SHA-256. Redeploy, then
curl https://<DOMAIN>/.well-known/assetlinks.json to confirm.
Security: the keystore and app secret NEVER go to the public host — verify with
curl -o /dev/null -w "%{http_code}" https://<DOMAIN>/android.keystore (expect 404).
Back up the keystore.
Full keystore handling, the complete twa-manifest.json template, build
verification, and asset-link details are in
references/bubblewrap-packaging.md.
hzdb / metavr are device-only and cannot upload. Use ovr-platform-util — the
same command works for 2D and WebXR builds. Before uploading, sanity-check the
signed APK on a real headset (metavr app install, launch it, skim metavr log) —
Store review is a slow place to discover a launch crash:
./ovr-platform-util upload-quest-build \
--app-id <HORIZON_APP_ID> --app-secret <SECRET> \
--apk app-release-signed.apk \
--channel ALPHA --age-group MIXED_AGES \
--notes "…" --disable-progress-barRequired: --app-id, --apk, --channel, --age-group
(TEENS_AND_ADULTS | MIXED_AGES | CHILDREN), and --app-secret or --token.
Channels: ALPHA/BETA/RC for testing, STORE for production. Auth is the app's
App Secret (Dashboard → app → API tab) or a user token — ask the user, never
invent it.
Likely first-time blocker: must first agree to our Developer Distribution Agreement — an org admin must sign it once at
https://developers.meta.com/horizon/manage/organizations/<ORG_ID>/legal-documents/. Pause,
ask the user, then retry the same command.
See references/store-upload.md for tool download, auth,
and the DDA blocker.
horizonOSAppMode value (Step 4).bubblewrap update — it fetches them from
<DOMAIN>.horizonOSAppMode mismatch is the #1 failure — "2D" set to immersive hangs
on a loading screen; "immersive" set to 2D shows a URL bar. Fix the value and
rebuild.packageId. A lost keystore means a new app entry. Back it up, and keep it
outside the deployable web tree.bubblewrap init needs a TTY — agents must use the scripted path (hand-written
twa-manifest.json + update + build).launchXR() snippet to a 2D app,
and always gate it on getDigitalGoodsService so it doesn't fire in a browser tab.getDigitalGoodsService is device-only — auto-enter can't be validated in a
desktop browser or emulator; test on the headset.<DOMAIN>./.well-known/assetlinks.json is live with a matching package name and cert SHA-256.sharp icon-generation script.twa-manifest.json template, build verification, asset links, and security.ovr-platform-util download, auth, the
upload command, and the Developer Distribution Agreement blocker.© meta-quest, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (references) in skills/hz-store-pwa of meta-quest/agentic-tools.
Open the folder on GitHubat commit 3a8553d
Hz Store Pwa next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Hz Store Pwa this skillmeta-quest/agentic-tools | 215 | — | ~3.6k | Automated safety check: Pass | Apache-2.0 | |
| Petdexcrafter-station/petdex | 4.2k | — | ~614 | Automated safety check: Pass | MIT | |
| Coss Particlescrafter-station/petdex | 4.2k | — | ~10k | Automated safety check: Pass | MIT | |
| Threejs Performancestaruhub/ClaudeSkills | 728 | — | ~904 | Automated safety check: Pass | MIT | |
| Vercel Composition Patternssupabase/supabase | 111k | 58 repos | ~726 | Automated safety check: Pass | MIT | |
| Agent Browser CLIvercel-labs/agent-browser | 44k | 24 repos | ~864 | Automated safety check: Pass | Apache-2.0 |
crafter-station/petdex
Browse, install, submit, and edit pixel-art pets with the Petdex CLI.
crafter-station/petdex
Index of all COSS UI particle examples. An agent skill from crafter-station/petdex.
staruhub/ClaudeSkills
Three.js 性能优化指南。当 Three.js/React Three Fiber 项目出现掉帧、内存增长、加载缓慢、绘制调用过多,或需要迁移 WebGPU、实现大规模粒子/实例化渲染、配置资源压缩管线时使用。触发关键词:"Three.js 优化"、"WebGPU"、"draw calls"、"内存泄漏"、"TSL"、"InstancedMesh"、"R3F 优化"等。不用于:通用…
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
bytedance/deer-flow
Deploys a project to Vercel with one script and no login, then returns a live preview URL and a claim link for moving the deployment into your own Vercel account.
meta-quest/agentic-tools
Guides porting existing Android 2D apps to Meta VR and Horizon OS — input adaptation, panel layout, and design requirements.
meta-quest/agentic-tools
Upgrades Meta VR apps to newer Horizon OS SDK versions — migration guides, deprecated API replacements, changelog.
meta-quest/agentic-tools
Builds WebXR experiences for Meta VR and Horizon OS using the Immersive Web SDK (IWSDK) — ECS architecture, Three.js integration, spatial UI.
meta-quest/agentic-tools
Build multi-window Meta Horizon OS experiences with the MetaVrx Layout SDK in Jetpack Compose or React Native.
meta-quest/agentic-tools
Scaffolds new Meta VR and Horizon OS projects after the build path is selected — Standard Android, Meta Spatial SDK, Unity, Unreal, or WebXR.
meta-quest/agentic-tools
Analyzes Meta VR and Horizon OS VR performance using Perfetto traces — frame timing, CPU/GPU bottlenecks, render pass analysis.
Works with
Categories
Guides shipping a web app to the Meta VR and Horizon OS Store as a PWA/TWA — both 2D windowed panels and immersive WebXR/VR. Hz Store Pwa is an agent skill from meta-quest/agentic-tools. Guides shipping a web app to the Meta VR and Horizon OS Store as a PWA/TWA — both 2D windowed panels and immersive WebXR/VR.
Hz Store Pwa fits situations like: game Development work in your project.
Run `npx skills add meta-quest/agentic-tools --skill hz-store-pwa -a claude-code`. Or copy the skill folder (skills/hz-store-pwa in meta-quest/agentic-tools) into .claude/skills/hz-store-pwa in your project. Claude Code loads it when a task matches its description.
Run `npx skills add meta-quest/agentic-tools --skill hz-store-pwa -a codex`. Or copy the skill folder (skills/hz-store-pwa in meta-quest/agentic-tools) into .agents/skills/hz-store-pwa in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add meta-quest/agentic-tools --skill hz-store-pwa -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hz-store-pwa, .gemini/skills/hz-store-pwa, .github/skills/hz-store-pwa and .opencode/skills/hz-store-pwa in your project.
Going by SKILL.md and its folder, Hz Store Pwa needs the command-line tools its instructions call (npx, curl and npm) and credentials named BUBBLEWRAP_KEYSTORE_PASSWORD and BUBBLEWRAP_KEY_PASSWORD. Our summary lists: Node.js. Its frontmatter pre-approves these tools: Bash(npx:*), Bash(npm:*), Bash(curl:*), Bash(bubblewrap:*).
SKILL.md names 1 domain. In commands or code: developers.meta.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Hz Store Pwa is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Hz Store Pwa: Petdex (crafter-station/petdex, 4.2k stars), Coss Particles (crafter-station/petdex, 4.2k stars), Threejs Performance (staruhub/ClaudeSkills, 728 stars) and Vercel Composition Patterns (supabase/supabase, 111k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
meta-quest (a GitHub organization) maintains it in meta-quest/agentic-tools, which has 215 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on September 24, 2026.
Source: meta-quest/agentic-tools on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.