Agent skill

Hz Android 2D Porting

by meta-quest in meta-quest/agentic-tools

Guides porting existing Android 2D apps to Meta VR and Horizon OS — input adaptation, panel layout, and design requirements.

Apache-2.0Auto-check passedMobile

Install Hz Android 2D Porting

skills CLI
$ npx skills add meta-quest/agentic-tools --skill hz-android-2d-porting -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install meta-quest/agentic-tools hz-android-2d-porting --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/meta-quest/agentic-tools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/hz-android-2d-porting .claude/skills/hz-android-2d-porting && rm -rf skills-src

Use ~/.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/

Facts

Skill name
hz-android-2d-porting
GitHub stars
215
Token cost
~2.1k tokens
SKILL.md length
948 words
Files
5 (incl. references)
Skills in repo
34
Repo updated
First seen
Licence
Apache-2.0

At a glance

Guides porting existing Android 2D apps to Meta VR and Horizon OS — input adaptation, panel layout, and design requirements.

  • Works in 7 steps: Initial Testing → Compatibility Audit → Input Adaptation → …
  • Adapting a mobile Android app for Meta VR
  • SKILL.md covers When to Use, Overview, Porting Workflow and Quick Compatibility Check, plus 3 more sections
  • Calls adb

What it does

Hz Android 2D Porting is an agent skill from meta-quest/agentic-tools. Guides porting existing Android 2D apps to Meta VR and Horizon OS — input adaptation, panel layout, and design requirements. Use when adapting a mobile Android app for Meta VR. For UI design decisions, use hz-panel-designer if available. Build path: Standard Android; use hz-quest-verify-first if the build path is unclear.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/compatibility-requirements.md`, `references/gradle-setup.md` and `references/input-adaptation.md`).

It sits in Mobile, covering Android development and UI design. It works with Android. The repository describes itself as: Agent Skills for Meta Quest/Horizon OS VR Development. The licence is Apache-2.0.

When your agent uses it

  • Adapting a mobile Android app for Meta VR
  • Tasks that involve Android development
  • Tasks that involve UI design

Example prompts

  • “Use the hz-android-2d-porting skill to guide porting existing Android 2D apps to Meta VR and Horizon OS — input adaptation, panel layout, and design…”
  • “/hz-android-2d-porting”

Requirements

  • Pre-approved tools (allowed-tools): Bash(metavr:*), Bash(hzdb:*)

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Initial Testing
  2. Compatibility Audit
  3. Input Adaptation
  4. Layout Adjustment
  5. Gradle and Manifest Updates
  6. Input Testing
  7. Store Submission

What it can do on your machine

Read from SKILL.md and the folder at commit 3a8553d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(metavr:*)
    • Bash(hzdb:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • adb

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • developers.meta.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Hz Android 2D Porting loads about 2.1k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 86 tokens; SKILL.md has 948 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~86
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from meta-quest/agentic-tools at commit 3a8553d, republished under its Apache-2.0 licence (© meta-quest). 948 words, ~2,080 tokens.

Download SKILL.mdSave it as .claude/skills/hz-android-2d-porting/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
hz-android-2d-porting
description
Guides porting existing Android 2D apps to Meta VR and Horizon OS — input adaptation, panel layout, and design requirements. Use when adapting a mobile Android app for Meta VR. For UI design decisions, use hz-panel-designer if available. Build path: Standard Android; use hz-quest-verify-first if the build path is unclear.
allowed-tools
Bash(metavr:*), Bash(hzdb:*)
license
Apache-2.0

Android 2D App Porting to Horizon OS

When to Use

Use this skill when:

  • Porting an existing Android 2D app to run on Meta VR headsets
  • Adapting a mobile Android app for Horizon OS panels
  • Troubleshooting input, layout, or compatibility issues with a 2D app on Meta VR devices
  • Preparing an Android app for Horizon Store submission
  • Evaluating whether an existing Android app is compatible with Horizon OS

Overview

Horizon OS is built on Android (AOSP) and can run standard Android applications inside panels -- floating 2D windows positioned in 3D space. Most well-built Android apps work on Meta VR devices with minimal changes, but several areas require attention:

  1. Input: There is no touchscreen. Users interact via controller pointer (ray-casting), hand tracking, or connected peripherals.
  2. Layout: Apps run in resizable panels, not full-screen on a fixed display.
  3. Compatibility: Dependencies and permissions must work without Google Play Services or unavailable hardware.
  4. Design and performance: Apps must meet Horizon Store requirements on mobile hardware.

The goal of porting is to make the app feel native to the Meta VR experience while preserving existing functionality.

Porting Workflow

Step 1: Initial Testing

Build and install the existing app with its normal Android workflow. Android Studio, Gradle, and adb all work with a connected Meta VR device:

bash
./gradlew installDebug
adb shell am start -n com.example.yourapp/.MainActivity

Prefer metavr app install <apk> and metavr app launch <package> over raw adb here, then stream metavr adb logcat --follow during this first run. Note any immediate crashes, black screens, input problems, or layout breakage.

Step 2: Compatibility Audit

Check whether the app depends on Google Play Services, unsupported hardware, or prohibited permissions before changing its UI. Make unsupported features optional or replace them with Horizon OS alternatives. See Compatibility Requirements.

Step 3: Input Adaptation

The most common porting issue is input. Touch events are translated from the controller pointer, but:

  • Hover states are now visible (users point before clicking)
  • Scrolling uses the thumbstick, not swipe gestures
  • Multi-touch gestures (pinch-to-zoom) do not translate directly
  • Tap targets must be large enough for pointer accuracy (48dp minimum)

See Input Adaptation Reference for detailed guidance.

Step 4: Layout Adjustment

Panels are resizable and can have various aspect ratios. Your app must handle:

  • Dynamic width and height changes
  • Landscape and portrait orientations
  • Different effective DPI values

Use responsive Android layouts and window-size breakpoints. See Panel Layout Reference.

Step 5: Gradle and Manifest Updates

Update your build configuration to target Horizon OS:

kotlin
// build.gradle.kts
android {
    defaultConfig {
        minSdk = 29       // Android 10 minimum
        targetSdk = 34    // API 34 or higher required for all new 2D panel apps
    }
}

Add required manifest entries for device targeting. See Gradle Setup Reference.

Step 6: Input Testing

Test with all supported input methods:

  • Controller: point-and-click, thumbstick scroll, trigger tap
  • Hand tracking: pinch-to-select, hand scroll
  • Keyboard/mouse: Bluetooth peripherals, system keyboard for text fields

Use the Meta Spatial Simulator for rapid desktop iteration, then validate on-device with the Meta Horizon OS Android Studio plugin or normal ADB tooling. Keep metavr adb logcat --follow running during each input pass — it catches input errors that don't visibly crash.

Step 7: Store Submission

Before submitting to the Horizon Store:

  • Verify all Compatibility Requirements
  • Test on at least Quest 3, Quest 3S, and Quest 2 (if targeting them), plus Meta VR Glasses
  • Confirm the app works in both passthrough and immersive home environments
  • Review Meta's content policies and technical requirements

Quick Compatibility Check

Show full SKILL.md (411 more words)Show less
Works on Horizon OS
FeatureStatusNotes
Standard Android ViewsSupportedTextView, RecyclerView, etc.
Jetpack ComposeSupportedFull Compose UI toolkit
React NativeSupportedUses the standard Android application path
WebViewSupportedChromium-based
Media playback (ExoPlayer)SupportedVideo and audio
Networking (HTTP, WebSocket)SupportedWi-Fi connectivity
Room / SQLiteSupportedLocal database
WorkManagerSupportedBackground tasks
NotificationsSupportedHorizon OS notification panel
Bluetooth (peripherals)SupportedKeyboard, mouse, gamepad
Android Accessibility APIsSupportedTalkBack equivalent available
Restricted or Unavailable
FeatureStatusNotes
Telephony / SMSNot availableNo cellular radio
NFCNot availableNo NFC hardware
GPS / Fine locationLimitedWi-Fi-based location only
Fingerprint / BiometricPromptNot availableUse Meta account auth instead
Multiple app-owned panelsLimitedUse the current public multi-panel guidance when available
Google Play ServicesNot availableUse Meta equivalents or alternatives
ARCoreNot availableUse Meta Spatial SDK for spatial features
Multi-touch gesturesLimitedSingle pointer from controller
Common Issues and Fixes
IssueCauseFix
App crashes on launchMissing Google Play Services dependencyRemove or make GMS optional
Buttons too small to tapTouch targets under 48dpIncrease minimum tap target size
Keyboard doesn't appearCustom input field not using InputConnectionUse standard EditText or TextField
Layout brokenFixed-size layout assumptionsUse responsive Views or Compose layouts
App requests unavailable permissionsTelephony, NFC, or other absent hardwareGuard with hasSystemFeature() checks
APK rejected for prohibited permissionsLibrary or plugin silently added a prohibited permissionRun aapt dump permissions your-app.apk, then check prohibited list
APK rejected for invalid signatureSigned with v1-only schemev2 signing is default in AGP 7.0+; for older AGP, add v2SigningEnabled = true to your signing config

Testing Tools

  • Meta Horizon OS Android Studio plugin: Device connection, deployment, and Horizon OS development support
  • Meta Spatial Simulator: Desktop simulation for 2D Android apps on Horizon OS
  • Android Studio, Gradle, and ADB: Standard Android build, install, launch, and logcat workflows
  • metavr: Optional command-line convenience for device and app operations

Performance Considerations

Meta VR devices have mobile-class hardware with strict thermal limits:

  • GPU: Qualcomm Adreno (varies by model)
  • RAM: 6-12 GB shared between system and apps
  • Thermal: Sustained workloads may trigger thermal throttling
  • Avoid heavy overdraw and complex shader effects in 2D UI
  • Minimize background work to reduce power consumption
  • Test with representative data loads (large lists, images, etc.)

References

© 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

Files

SKILL.md and 4 other files (references) in skills/hz-android-2d-porting of meta-quest/agentic-tools.

  • SKILL.md
  • references/compatibility-requirements.md
  • references/gradle-setup.md
  • references/input-adaptation.md
  • references/panel-layout.md

Open the folder on GitHubat commit 3a8553d

Compare with similar skills

Hz Android 2D Porting 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.

Hz Android 2D Porting compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Hz Android 2D Porting this skillmeta-quest/agentic-tools215—~2.1kAutomated safety check: PassApache-2.0
Android Native Devaiskillstore/marketplace4301 repos~7.1kAutomated safety check: PassMIT
Mobile App Builderrevfactory/harness-1001.3k—~1.8kAutomated safety check: PassApache-2.0
Android Mobile UI DesignModinMobileSTS/SlayTheAmethystModded403—~1kAutomated safety check: PassCustom licence
Material 3hamen/material-3-skill1.5k2 repos~7.8kAutomated safety check: PassMIT
Compose Multiplatform Patternsmonta-app/ocpp-emulator1805 repos~2kAutomated safety check: PassApache-2.0

Similar skills

  • Android Native Dev

    aiskillstore/marketplace

    Android native application development and UI design guide. An agent skill from aiskillstore/marketplace.

    430 GitHub starsUsed in 1 repo~7.1k tokens
    Frontend & DesignAuto-check passed
  • Mobile App Builder

    revfactory/harness-100

    Full mobile app development pipeline. An agent skill from revfactory/harness-100.

    1.3k GitHub stars~1.8k tokensUpdated 6 mo ago
    MobileAuto-check passed
  • Android Mobile UI Design

    ModinMobileSTS/SlayTheAmethystModded

    Designs and reviews Android screens with attention to touch ergonomics, adaptive layouts, accessibility, state handling and an implementation handoff.

    403 GitHub stars~1k tokensUpdated yesterday
    MobileAuto-check passed
  • Material 3

    hamen/material-3-skill

    Implement Google's Material Design 3 (Material You) UI system.

    1.5k GitHub starsUsed in 2 repos~7.8k tokens
    Frontend & DesignAuto-check passed
  • Compose Multiplatform Patterns

    monta-app/ocpp-emulator

    Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.

    180 GitHub starsUsed in 5 repos~2k tokens
    MobileAuto-check passed
  • Styles

    arindamxd/camerax-android

    A skill your agent uses to integrate the Jetpack Compose Styles API into an Android project.

    132 GitHub starsUsed in 4 repos~2.3k tokens
    MobileAuto-check passed

More from meta-quest/agentic-tools

All 34 skills in this repo
  • Hz API Upgrade

    meta-quest/agentic-tools

    Upgrades Meta VR apps to newer Horizon OS SDK versions — migration guides, deprecated API replacements, changelog.

    215 GitHub stars~1.8k tokensUpdated 14 days ago
    Auto-check passed
  • Hz Iwsdk Webxr

    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.

    215 GitHub stars~3k tokensUpdated 14 days ago
    Auto-check passed
  • Hz Metavrx Layout SDK

    meta-quest/agentic-tools

    Build multi-window Meta Horizon OS experiences with the MetaVrx Layout SDK in Jetpack Compose or React Native.

    215 GitHub stars~855 tokensUpdated 14 days ago
    Auto-check passed
  • Hz New Project Creation

    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.

    215 GitHub stars~2.3k tokensUpdated 14 days ago
    Auto-check passed
  • Hz Perfetto Debug

    meta-quest/agentic-tools

    Analyzes Meta VR and Horizon OS VR performance using Perfetto traces — frame timing, CPU/GPU bottlenecks, render pass analysis.

    215 GitHub stars~2.8k tokensUpdated 14 days ago
    Auto-check passed
  • Hz React Native Expo

    meta-quest/agentic-tools

    Build and iterate on React Native apps for Meta VR / Horizon OS with Expo.

    215 GitHub stars~2.8k tokensUpdated 14 days ago
    Auto-check passed

Works with

Questions about Hz Android 2D Porting

What does Hz Android 2D Porting do?

Guides porting existing Android 2D apps to Meta VR and Horizon OS — input adaptation, panel layout, and design requirements. Hz Android 2D Porting is an agent skill from meta-quest/agentic-tools. Guides porting existing Android 2D apps to Meta VR and Horizon OS — input adaptation, panel layout, and design requirements.

When should I use Hz Android 2D Porting?

Hz Android 2D Porting fits situations like: adapting a mobile Android app for Meta VR; tasks that involve Android development; tasks that involve UI design.

How do I install Hz Android 2D Porting in Claude Code?

Run `npx skills add meta-quest/agentic-tools --skill hz-android-2d-porting -a claude-code`. Or copy the skill folder (skills/hz-android-2d-porting in meta-quest/agentic-tools) into .claude/skills/hz-android-2d-porting in your project. Claude Code loads it when a task matches its description.

How do I install Hz Android 2D Porting in Codex?

Run `npx skills add meta-quest/agentic-tools --skill hz-android-2d-porting -a codex`. Or copy the skill folder (skills/hz-android-2d-porting in meta-quest/agentic-tools) into .agents/skills/hz-android-2d-porting in your project. Codex loads it when a task matches its description.

Can I use Hz Android 2D Porting in Cursor, Gemini CLI or GitHub Copilot?

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-android-2d-porting -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-android-2d-porting, .gemini/skills/hz-android-2d-porting, .github/skills/hz-android-2d-porting and .opencode/skills/hz-android-2d-porting in your project.

What does Hz Android 2D Porting need to run?

Going by SKILL.md and its folder, Hz Android 2D Porting needs the command-line tools its instructions call (adb). Its frontmatter pre-approves these tools: Bash(metavr:*), Bash(hzdb:*).

Does Hz Android 2D Porting access the network?

SKILL.md names 1 domain. As links in the text: developers.meta.com. This is read from the text; nothing was executed.

Is Hz Android 2D Porting safe to install?

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.

What licence does Hz Android 2D Porting use?

Hz Android 2D Porting 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.

How many tokens does Hz Android 2D Porting use?

About 2.1k tokens (SKILL.md is roughly 8.3k 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 8.9k tokens, read only when the agent opens those files.

What are the alternatives to Hz Android 2D Porting?

Skills that share tags, products or a category with Hz Android 2D Porting: Android Native Dev (aiskillstore/marketplace, 430 stars), Mobile App Builder (revfactory/harness-100, 1.3k stars), Android Mobile UI Design (ModinMobileSTS/SlayTheAmethystModded, 403 stars) and Material 3 (hamen/material-3-skill, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Hz Android 2D Porting?

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.