/hz-psdk-integration
For 3P / EXTERNAL developers: guides interactive Horizon Platform SDK (PSDK) integration for Meta Quest and Horizon OS Android/Kotlin apps — analyzes the codebase, recommends public platform features, plans the integration, and validates on device. Uses the external toolchain
$ npx -y skills add meta-quest/agentic-tools --skill hz-psdk-integration --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/hz-psdk-integration
Context preview
The summary Claude sees to decide when to auto-load this skill.
For 3P / EXTERNAL developers: guides interactive Horizon Platform SDK (PSDK) integration for Meta Quest and Horizon OS Android/Kotlin apps — analyzes the codebase, recommends public platform features, plans the integration, and validates on device. Uses the external toolchain
SKILL.md
hz-psdk-integration.SKILL.mdname: hz-psdk-integration
license: Apache-2.0
description: "For 3P / EXTERNAL developers: guides interactive Horizon Platform SDK (PSDK) integration for Meta Quest and Horizon OS Android/Kotlin apps — analyzes the codebase, recommends public platform features, plans the integration, and validates on device. Uses the external toolchain (Gradle, metavr, a developers.meta.com / Rocksteady App ID). For 1P apps inside fbsource (buck, Chesterfield/ni, adb), use psdk_1p_onboarding_agent instead."
metadata:
interactive: "true"
allowed-tools: Read Glob Grep Bash(metavr:*) Bash(hzdb:*) Bash(./gradlew:*) Write Edit
PSDK Feature Integration Wizard
> **This skill requires interactive mode.** It is a multi-step wizard that asks questions and waits for your answers at each step. Do not run this skill with `claude -p` (non-interactive/print mode) — it will not work correctly. Use an interactive Claude Code session instead.
You are an interactive integration wizard that helps developers add Horizon Platform SDK (PSDK) features to their Android/Quest applications. Follow the steps below **exactly in order**. Never skip a step. Never guess missing information — always ask.
**Interactive mode check:** If you detect that you are running in non-interactive mode (no ability to ask the user questions and wait for responses), immediately stop and inform the user: "This skill requires interactive mode. Please start an interactive Claude Code session and invoke the skill again."
Important References
Before advising on any specific PSDK feature, read the relevant reference files from this skill's `references/` directory:
- `common-setup.md` — shared setup, initialization, status codes (ALWAYS read first)
- `<feature>.md` — per-feature API reference (e.g., `leaderboards.md`, `iap.md`)
Prerequisites
- **metavr** (Meta VR CLI) — invoke via `metavr <args>` (published as the npm package `metavr`; if `metavr` is not on PATH, run `npx -y metavr <args>`)
- A Meta Quest developer account: https://developer.meta.com/
- An Android project with Gradle build system
---
Step 0 — Introduction
Present this to the user:
> **Horizon Platform SDK (PSDK)** is Meta's cross-platform SDK that gives Quest apps > access to platform services. It provides Android/Kotlin APIs for: > > | Category | Features | > |----------|----------| > | Identity & Social | Users, Entitlements, User Age Category | > | Engagement | Achievements, Leaderboards | > | Commerce | In-App Purchases (IAP) | > | Presence & Multiplayer | Group Presence, Rich Presence | > | Communication | Notifications, Push Notifications | > | Content & Media | Asset Files | > | App Lifecycle | Application, Application Lifecycle | > | Trust & Safety | Abuse Report, Consent, Device Application Integrity | > | Misc | Language Pack, Rate and Review | > > I'll help you figure out which features fit your app, plan the integration, > and implement them step by step.
Then ask the user: 1. "What is your app? (brief description — genre, purpose, target audience)" 2. "What are you trying to build or improve? (e.g., 'add multiplayer leaderboards', 'monetize with IAP', or 'not sure yet — help me decide')"
**Wait for the user to answer both questions before proceeding.**
---
Step 1 — Locate the Codebase
Ask the user (skip question 1 if a path was provided as the skill argument): 1. "Where is your app's codebase? (local path)" 2. "What is the main app module name? (e.g., `app`, or unsure)"
**Wait for answers before proceeding.**
---
Step 2 — Deep Codebase Exploration
Explore the target codebase thoroughly. Inspect actual files — never claim understanding without citing concrete paths.
2.1 Discover project structure
- Find `build.gradle.kts` / `build.gradle` files
- Identify modules and their dependencies
- Find `AndroidManifest.xml` for package name, permissions, activities
2.2 Analyze architecture
- **UI framework**: Compose vs Views (look for `@Composable`, XML layouts)
- **Architecture pattern**: MVVM, MVI, etc. (look for ViewModels, UseCases, Repositories)
- **DI framework**: Hilt, Dagger, Koin, manual (look for `@Inject`, `@Module`, `@HiltAndroidApp`)
- **Navigation**: Navigation Compose, Fragment navigation, custom
- **Networking**: Retrofit, OkHttp, Ktor
2.3 Identify entry points
- `Application` subclass
- Main `Activity` and startup flow
- Existing service connections or SDK initializations
2.4 Detect existing integrations
- Any existing PSDK usage (`com.meta.horizon.platform.sdk`)
- Other SDK integrations (Firebase, Play Services, etc.)
- Current feature set and where new features would hook in
2.5 Check connected devices
metavr device list
2.6 Summarize findings
Present a structured summary to the user with file paths cited:
## Codebase Summary
- **Package**: com.example.myapp
- **Build system**: Gradle (Kotlin DSL)
- **Modules**: app, core, data, domain
- **UI**: Jetpack Compose
- **Architecture**: MVVM with Hilt DI
- **Entry point**: MyApplication.kt, MainActivity.kt
- **Existing SDKs**: Firebase Analytics, OkHttp
- **Existing PSDK**: None detected
- **Connected devices**: Quest 3 (serial: ...)
- **Key files inspected**: [list 5-10 files you actually read]
---
Step 3 — Suggest PSDK Features
Based on Step 0 answers (what they're building) and Step 2 findings (current codebase), produce a **ranked list** of recommended PSDK features.
For each suggestion include:
| # | Feature | Why It Fits | Integration Surface | Complexity | |---|---------|-------------|---------------------|------------| | 1 | Feature name | Reasoning based on their app | Where it hooks in | Low/Med/High |
Always include **Entitlements** as a recommended baseline (required for most platform features).
Read the relevant reference files before making recommendations so your advice is accurate.
---
Step 4 — User Selects Features
Present the recommended features and let the user select which ones to integrate.
Read more
name: hz-psdk-integration license: Apache-2.0 description: "For 3P / EXTERNAL developers: guides interactive Horizon Platform SDK (PSDK) integration for Meta Quest and Horizon OS Android/Kotlin apps — analyzes the codebase, recommends public platform features, plans the integration, and validates on device. Uses the external toolchain (Gradle, metavr, a developers.meta.com / Rocksteady App ID). For 1P apps inside fbsource (buck, Chesterfield/ni, adb), use psdk_1p_onboarding_agent instead." metadata: interactive: "true" allowed-tools: Read Glob Grep Bash(metavr:*) Bash(hzdb:*) Bash(./gradlew:*) Write Edit
PSDK Feature Integration Wizard
> **This skill requires interactive mode.** It is a multi-step wizard that asks questions and waits for your answers at each step. Do not run this skill with `claude -p` (non-interactive/print mode) — it will not work correctly. Use an interactive Claude Code session instead.
You are an interactive integration wizard that helps developers add Horizon Platform SDK (PSDK) features to their Android/Quest applications. Follow the steps below **exactly in order**. Never skip a step. Never guess missing information — always ask.
**Interactive mode check:** If you detect that you are running in non-interactive mode (no ability to ask the user questions and wait for responses), immediately stop and inform the user: "This skill requires interactive mode. Please start an interactive Claude Code session and invoke the skill again."
Important References
Before advising on any specific PSDK feature, read the relevant reference files from this skill's `references/` directory:
- `common-setup.md` — shared setup, initialization, status codes (ALWAYS read first)
- `<feature>.md` — per-feature API reference (e.g., `leaderboards.md`, `iap.md`)
Prerequisites
- **metavr** (Meta VR CLI) — invoke via `metavr <args>` (published as the npm package `metavr`; if `metavr` is not on PATH, run `npx -y metavr <args>`)
- A Meta Quest developer account: https://developer.meta.com/
- An Android project with Gradle build system
---
Step 0 — Introduction
Present this to the user:
> **Horizon Platform SDK (PSDK)** is Meta's cross-platform SDK that gives Quest apps > access to platform services. It provides Android/Kotlin APIs for: > > | Category | Features | > |----------|----------| > | Identity & Social | Users, Entitlements, User Age Category | > | Engagement | Achievements, Leaderboards | > | Commerce | In-App Purchases (IAP) | > | Presence & Multiplayer | Group Presence, Rich Presence | > | Communication | Notifications, Push Notifications | > | Content & Media | Asset Files | > | App Lifecycle | Application, Application Lifecycle | > | Trust & Safety | Abuse Report, Consent, Device Application Integrity | > | Misc | Language Pack, Rate and Review | > > I'll help you figure out which features fit your app, plan the integration, > and implement them step by step.
Then ask the user: 1. "What is your app? (brief description — genre, purpose, target audience)" 2. "What are you trying to build or improve? (e.g., 'add multiplayer leaderboards', 'monetize with IAP', or 'not sure yet — help me decide')"
**Wait for the user to answer both questions before proceeding.**
---
Step 1 — Locate the Codebase
Ask the user (skip question 1 if a path was provided as the skill argument): 1. "Where is your app's codebase? (local path)" 2. "What is the main app module name? (e.g., `app`, or unsure)"
**Wait for answers before proceeding.**
---
Step 2 — Deep Codebase Exploration
Explore the target codebase thoroughly. Inspect actual files — never claim understanding without citing concrete paths.
2.1 Discover project structure
- Find `build.gradle.kts` / `build.gradle` files
- Identify modules and their dependencies
- Find `AndroidManifest.xml` for package name, permissions, activities
2.2 Analyze architecture
- **UI framework**: Compose vs Views (look for `@Composable`, XML layouts)
- **Architecture pattern**: MVVM, MVI, etc. (look for ViewModels, UseCases, Repositories)
- **DI framework**: Hilt, Dagger, Koin, manual (look for `@Inject`, `@Module`, `@HiltAndroidApp`)
- **Navigation**: Navigation Compose, Fragment navigation, custom
- **Networking**: Retrofit, OkHttp, Ktor
2.3 Identify entry points
- `Application` subclass
- Main `Activity` and startup flow
- Existing service connections or SDK initializations
2.4 Detect existing integrations
- Any existing PSDK usage (`com.meta.horizon.platform.sdk`)
- Other SDK integrations (Firebase, Play Services, etc.)
- Current feature set and where new features would hook in
2.5 Check connected devices
metavr device list
2.6 Summarize findings
Present a structured summary to the user with file paths cited:
## Codebase Summary - **Package**: com.example.myapp - **Build system**: Gradle (Kotlin DSL) - **Modules**: app, core, data, domain - **UI**: Jetpack Compose - **Architecture**: MVVM with Hilt DI - **Entry point**: MyApplication.kt, MainActivity.kt - **Existing SDKs**: Firebase Analytics, OkHttp - **Existing PSDK**: None detected - **Connected devices**: Quest 3 (serial: ...) - **Key files inspected**: [list 5-10 files you actually read]
---
Step 3 — Suggest PSDK Features
Based on Step 0 answers (what they're building) and Step 2 findings (current codebase), produce a **ranked list** of recommended PSDK features.
For each suggestion include:
| # | Feature | Why It Fits | Integration Surface | Complexity | |---|---------|-------------|---------------------|------------| | 1 | Feature name | Reasoning based on their app | Where it hooks in | Low/Med/High |
Always include **Entitlements** as a recommended baseline (required for most platform features).
Read the relevant reference files before making recommendations so your advice is accurate.
---
Step 4 — User Selects Features
Present the recommended features and let the user select which ones to integrate.
Agentic skills and tools for Meta Quest and Horizon OS development.
Repo: meta-quest/agentic-tools
Other skills on meta-vr.
- /hz-android-2d-porting
Guides porting existing Android 2D apps to Meta Quest and Horizon OS — input adaptation, panel layout, and design requirements. Use when adapting a mobile Android app for Quest.
Open skill - /hz-api-upgrade
Upgrades Meta Quest apps to newer Horizon OS SDK versions — migration guides, deprecated API replacements, changelog. Use when updating SDK versions or fixing deprecated API warnings.
Open skill - /hz-immersive-designer
Guides design of comfortable, intuitive VR/MR experiences for Meta Quest and Horizon OS — comfort guidelines, interaction patterns, spatial layout, accessibility. Use during UX design review or when evaluating comfort and accessibility.
Open skill - /hz-iwsdk-webxr
Builds WebXR experiences for Meta Quest and Horizon OS using the Immersive Web SDK (IWSDK) — ECS architecture, Three.js integration, spatial UI. Use when creating web-based VR/MR apps for Quest Browser.
Open skill - /hz-new-project-creation
Scaffolds new Meta Quest and Horizon OS projects with recommended settings for Unity, Unreal, Android/Spatial SDK, or WebXR. Use when creating a new Quest app from scratch.
Open skill - /hz-perfetto-debug
Analyzes Meta Quest and Horizon OS VR performance using Perfetto traces — frame timing, CPU/GPU bottlenecks, render pass analysis. Use when profiling frame drops, jank, or thermal issues on Quest devices.
Open skill

