Android Native Dev
aiskillstore/marketplace
Android native application development and UI design guide. An agent skill from aiskillstore/marketplace.
Guides porting existing Android 2D apps to Meta VR and Horizon OS — input adaptation, panel layout, and design requirements.
$ npx skills add meta-quest/agentic-tools --skill hz-android-2d-porting -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install meta-quest/agentic-tools hz-android-2d-porting --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-android-2d-porting .claude/skills/hz-android-2d-porting && 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-android-2d-porting" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-android-2d-porting into .claude/skills/hz-android-2d-porting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-android-2d-porting", 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-android-2d-portingType 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-android-2d-porting -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install meta-quest/agentic-tools hz-android-2d-porting --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-android-2d-porting .agents/skills/hz-android-2d-porting && 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-android-2d-porting" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-android-2d-porting into .agents/skills/hz-android-2d-porting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-android-2d-porting", 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-android-2d-porting -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install meta-quest/agentic-tools hz-android-2d-porting --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-android-2d-porting .cursor/skills/hz-android-2d-porting && 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-android-2d-porting" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-android-2d-porting into .cursor/skills/hz-android-2d-porting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-android-2d-porting", 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-android-2d-porting--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-android-2d-porting -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install meta-quest/agentic-tools hz-android-2d-porting --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-android-2d-porting .gemini/skills/hz-android-2d-porting && 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-android-2d-porting" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-android-2d-porting into .gemini/skills/hz-android-2d-porting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-android-2d-porting", 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-android-2d-portingInstalls 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-android-2d-porting -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-android-2d-porting .github/skills/hz-android-2d-porting && 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-android-2d-porting" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-android-2d-porting into .github/skills/hz-android-2d-porting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-android-2d-porting", 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-android-2d-porting -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-android-2d-porting --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-android-2d-porting .opencode/skills/hz-android-2d-porting && 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-android-2d-porting" agent skill from https://github.com/meta-quest/agentic-tools/tree/main/skills/hz-android-2d-porting into .opencode/skills/hz-android-2d-porting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "hz-android-2d-porting", 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-android-2d-portingGuides 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. 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.
7 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(metavr:*)Bash(hzdb:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
adbFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
developers.meta.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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). 948 words, ~2,080 tokens.
.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.Use this skill when:
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:
The goal of porting is to make the app feel native to the Meta VR experience while preserving existing functionality.
Build and install the existing app with its normal Android workflow. Android Studio, Gradle, and adb all work with a connected Meta VR device:
./gradlew installDebug
adb shell am start -n com.example.yourapp/.MainActivityPrefer 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.
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.
The most common porting issue is input. Touch events are translated from the controller pointer, but:
See Input Adaptation Reference for detailed guidance.
Panels are resizable and can have various aspect ratios. Your app must handle:
Use responsive Android layouts and window-size breakpoints. See Panel Layout Reference.
Update your build configuration to target Horizon OS:
// 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.
Test with all supported input methods:
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.
Before submitting to the Horizon Store:
| Feature | Status | Notes |
|---|---|---|
| Standard Android Views | Supported | TextView, RecyclerView, etc. |
| Jetpack Compose | Supported | Full Compose UI toolkit |
| React Native | Supported | Uses the standard Android application path |
| WebView | Supported | Chromium-based |
| Media playback (ExoPlayer) | Supported | Video and audio |
| Networking (HTTP, WebSocket) | Supported | Wi-Fi connectivity |
| Room / SQLite | Supported | Local database |
| WorkManager | Supported | Background tasks |
| Notifications | Supported | Horizon OS notification panel |
| Bluetooth (peripherals) | Supported | Keyboard, mouse, gamepad |
| Android Accessibility APIs | Supported | TalkBack equivalent available |
| Feature | Status | Notes |
|---|---|---|
| Telephony / SMS | Not available | No cellular radio |
| NFC | Not available | No NFC hardware |
| GPS / Fine location | Limited | Wi-Fi-based location only |
| Fingerprint / BiometricPrompt | Not available | Use Meta account auth instead |
| Multiple app-owned panels | Limited | Use the current public multi-panel guidance when available |
| Google Play Services | Not available | Use Meta equivalents or alternatives |
| ARCore | Not available | Use Meta Spatial SDK for spatial features |
| Multi-touch gestures | Limited | Single pointer from controller |
| Issue | Cause | Fix |
|---|---|---|
| App crashes on launch | Missing Google Play Services dependency | Remove or make GMS optional |
| Buttons too small to tap | Touch targets under 48dp | Increase minimum tap target size |
| Keyboard doesn't appear | Custom input field not using InputConnection | Use standard EditText or TextField |
| Layout broken | Fixed-size layout assumptions | Use responsive Views or Compose layouts |
| App requests unavailable permissions | Telephony, NFC, or other absent hardware | Guard with hasSystemFeature() checks |
| APK rejected for prohibited permissions | Library or plugin silently added a prohibited permission | Run aapt dump permissions your-app.apk, then check prohibited list |
| APK rejected for invalid signature | Signed with v1-only scheme | v2 signing is default in AGP 7.0+; for older AGP, add v2SigningEnabled = true to your signing config |
Meta VR devices have mobile-class hardware with strict thermal limits:
© 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 4 other files (references) in skills/hz-android-2d-porting of meta-quest/agentic-tools.
Open the folder on GitHubat commit 3a8553d
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Hz Android 2D Porting this skillmeta-quest/agentic-tools | 215 | — | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Android Native Devaiskillstore/marketplace | 430 | 1 repos | ~7.1k | Automated safety check: Pass | MIT | |
| Mobile App Builderrevfactory/harness-100 | 1.3k | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Android Mobile UI DesignModinMobileSTS/SlayTheAmethystModded | 403 | — | ~1k | Automated safety check: Pass | Custom licence | |
| Material 3hamen/material-3-skill | 1.5k | 2 repos | ~7.8k | Automated safety check: Pass | MIT | |
| Compose Multiplatform Patternsmonta-app/ocpp-emulator | 180 | 5 repos | ~2k | Automated safety check: Pass | Apache-2.0 |
aiskillstore/marketplace
Android native application development and UI design guide. An agent skill from aiskillstore/marketplace.
revfactory/harness-100
Full mobile app development pipeline. An agent skill from revfactory/harness-100.
ModinMobileSTS/SlayTheAmethystModded
Designs and reviews Android screens with attention to touch ergonomics, adaptive layouts, accessibility, state handling and an implementation handoff.
hamen/material-3-skill
Implement Google's Material Design 3 (Material You) UI system.
monta-app/ocpp-emulator
Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
arindamxd/camerax-android
A skill your agent uses to integrate the Jetpack Compose Styles API into an Android project.
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.
meta-quest/agentic-tools
Build and iterate on React Native apps for Meta VR / Horizon OS with Expo.
Works with
Categories
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.
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.
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.
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.
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.
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:*).
SKILL.md names 1 domain. As links in the text: developers.meta.com. 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 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.
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.
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.
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.