ssheleg/xr-dev

quest-tooling

Use when setting up or driving the Meta Quest toolchain on a development machine: the metavr CLI and MCP server, Meta's agent skills, connecting a headset, managed tools, XR Simulator, no headset at all.

Ver código-fonte

Como usar

  1. Copie o comando e verifique o pacote antes de instalar no seu ambiente de agente.
  2. Consulte no original as ferramentas, credenciais e ambientes necessários.
  3. Descreva os dados de entrada e a entrega esperada; confira a saída com as fontes.
npx skills add https://github.com/ssheleg/xr-dev --skill quest-tooling

Antes de começar

  • A instalação não inclui assinatura de modelo, franquia API ou acesso aos seus arquivos.
  • Estrelas e instalações indicam atividade, não um teste independente de qualidade ou segurança.
Documento original do Skill

Renderizado do repositório de origem, preservando títulos, exemplos, código, tabelas, links e imagens.

The Quest toolchain: one CLI, two interfaces, one channel per agent

metavr (Meta VR CLI) is a single tool with two faces: a command line, and a stdio MCP server an agent drives on its own. Everything below is available through both — the CLI names are given because they are also the fallback when no MCP server is configured.

Read references/research-navigation.md when planning research, choosing a capture/automation path, handling conflicting sources or working without a tool. Resolve the executable and inspect that version's help before using this dated command map; generated companion instructions may describe a different version.

For a whole-product roadmap or stage audit, use quest-lifecycle; a single technical task stays with this owner. If absent, identify the current stage, its evidence and the next prerequisite inline.

Read references/source-research.md for current-source discovery, unavailable Markdown, conflicting requirements, versioned API indexes and existing CLI/MCP registrations.

Install it once, through one channel

ChannelCommandUpdates
Native installer (preferred)`curl -fsSL https://developers.meta.com/horizon/install-cli/ \sh → ~/.metavr/bin`metavr update, in place
npx, no installnpx -y metavr@latest <cmd>always current
npm globalnpm install -g metavrnever on its own — needs npm update -g metavr

Two of these installed at once is a version split waiting to be read as a bug: on this estate ~/.metavr/bin/metavr (1.3.2.2.2) and /opt/homebrew/bin/metavr (npm 1.3.2) both answered to metavr, and PATH order decided which. Check with which -a metavr and keep one.

Sign in — metavr auth login, verify with metavr auth status. It unlocks the Store commands; METAVR_TOKEN covers unattended automation.

metavr init is the trap, not the setup

init installs skills, configures MCP servers and installs agent plugins. With no target flag it means `--all-agents`, and "all agents" is its own fixed list, not the agents you have. Run inside a project directory it writes one skills/ tree per agent into that directory.

Measured 2026-09-20 in a game repository: 29 skills × 25 directories = 4129 files, 47 MB, untracked, uncovered by .gitignore — and the next git add -A committed the lot into the product.

On this estate, inspect the gateway/plugin registration before setup. A new standalone metavr stdio server belongs in the gateway; metavr mcp install examples configure agents directly and are not the default here. If a selected host installation is needed, inspect metavr init --help and the target paths first. Do not ignore project-owned .agents or other existing files broadly.

The command map

JobCommand
What is attachedmetavr device list / device info <id> / device battery
Pair over Wi-Fimetavr device connect (USB first), device wait, device health-check
Make a device test-stablemetavr device configure-testing (animations off, stay awake)
Install / launch / stop a buildmetavr app install <apk> / app launch <pkg> / app stop <pkg>
Logsmetavr log (logcat), metavr shell <cmd>
Screensmetavr capture screenshot
Files on devicemetavr files push / pull / ls / rm
UI automationmetavr ui dump / tap / type / swipe / wait
Performancemetavr perf capture / start / stop / analyze-trace / compare / simpleperf
Docs and API referencemetavr docs search / fetch / api-search
3D assetsmetavr asset search "<thing>"
Store distributionmetavr store dist apps / channels / upload / copy-build; store test-user
Emulatormetavr ssim (SpatialSim)
Managed toolsmetavr tools list / install <name>
Setup reportmetavr doctor

metavr doctor reports installed software only — it does not test device connectivity, sign-in or MCP wiring. A green doctor with no headset attached is still a machine that cannot run anything.

The MCP server, and how it ends up registered twice

metavr mcp server is the stdio server. Meta's plugin may own its registration; otherwise the operator's configured gateway can expose it. Do not register both. On this estate, new standalone stdio/static-token servers go through ~/.config/agentgateway/servers.yaml and the existing generator/migration flow; OAuth protected-resource servers stay at the agent. Plugin-managed MCP stays with the plugin. A direct .mcp.json is appropriate only where the selected deployment policy calls for it, not a universal project setup recipe.

metavr xroperator status shows whether the XR Operator proxy is installed and federated into metavr's own MCP server — when it is, a running XR app can be inspected through the same connection; no second server to register.

Meta's 29 skills, and what this pack adds

Meta publishes them at github.com/meta-quest/agentic-tools (plugin meta-vr@meta-quest, also on npx skills, gh skill, Cursor, Codex, Gemini). The split is worth knowing before wondering which one to reach for:

Meta's skillsCountOwner of the lane
hz-unity-*12Unity — this pack does not duplicate them
hz-quest-verify-first, metavr-cli, portal3doc verification and CLI reference
hz-perfetto-debug, hz-simpleperf-debug, hz-vr-debug3driving a specific profiler
hz-store-submit, hz-store-pwa2store mechanics
hz-spatial-sdk, hz-iwsdk-webxr, hz-android-2d-porting, hz-platform-sdk, hz-psdk-integration, others9other build paths

This pack answers the questions that sit above a tool: which lane a project is on, which number to read, what to measure, what the Store will reject. Where a Meta skill drives the tool, use it — and say which one did the work.

No headset on the desk

  • xrsim (Meta XR Simulator) and spatialsim (metavr ssim) run app logic on

the machine. They check supported simulated behavior and integration.

  • They cannot answer a performance question: no real GPU, no thermals, no

compositor. See quest-perf.

  • metavr device browser <url> and the Store test accounts

(metavr store test-user) need a real device and an organization.

Managed developer tools

metavr tools install <name> fetches and installs; metavr tools list shows versions and what is present. What each is for — including which need a headset — is in references/tool-matrix.md.

Hygiene, because the estate pays for it later

  1. One channel per agent. A plain copy under ~/.claude/skills/<name> beats

the plugin of the same name and serves its frozen version forever.

  1. Never vendor skills into a product repository. They are installed on the

machine; a repo copy is 47 MB of a third party's text your CI now lints.

  1. Skills and plugins load at session start — restart the agent after

changing either, or it keeps the old set.

  1. After any install or removal, the check that must print nothing:
bash
for d in ~/.claude/skills/*/; do n=$(basename "$d"); \
  [ -e ~/.claude/plugins/marketplaces/"$n" ] && echo "SHADOW: $n"; done

CLI surface read from `metavr --help` at 1.3.2.2.2 on 2026-09-20; the install and init behaviour was measured on this machine the same day.

Triggers

More phrases that route here: "adb to Quest" / "adb к шлему", "XR Simulator" / "симулятор", "no headset" / "нет шлема", "metavr init", "Meta VR CLI", "Quest MCP" / "MCP для Quest", "install the APK" / "поставить apk на шлем", "developer mode" / "режим разработчика", "which Quest tools are installed" / "что установлено для Quest", "hz- skills" / "скилы Meta".

do mesmo repositório

Mais Skills

Todos os Skills
ssheleg
Comunidade

quest-native

Use when building or reviewing a native Meta Quest app in C or C++ against OpenXR: manifest and Gradle, loader, frame loop, swapchains, Vulkan, passthrough, required SDK levels. NOT for Unity, Unreal, Spatial SDK (quest-spatial), WebXR (quest-webxr), profiling (quest-perf) or Store submission (quest-store). Opt out: no xr, без xr. Triggers - "OpenXR app" / "приложение на OpenXR", "native Quest app" / "нативное приложение для Quest", "xrCreateInstance".

instalações
3
GitHub Stars
1
Atualizado
24 de out.
ssheleg
Comunidade

quest-perf

Use when a Meta Quest app drops frames, judders, overheats or must be profiled: frame budget per refresh rate, Dynamic Resolution, foveation, SpaceWarp, OVR Metrics, Perfetto or RenderDoc captures. NOT for the render loop itself (quest-native), Store VRCs (quest-store) or phone and desktop profiling. Opt out: no xr, без xr. Triggers - "dropped frames" / "просадка кадров", "Quest performance" / "производительность на Quest", "шлем греется".

instalações
2
GitHub Stars
1
Atualizado
24 de out.
ssheleg
Comunidade

quest-webxr

Use when the XR experience runs in the Meta Quest Browser: WebXR with IWSDK, three.js or A-Frame, PWA packaging with Bubblewrap, Horizon Billing and remote debugging. NOT for native OpenXR (quest-native), an APK submission (quest-store) or three.js depth off the headset (web3d-dev). Opt out: no xr, без xr. Triggers - "WebXR", "immersive-vr session" / "иммерсивная сессия", "three.js on Quest" / "three.js на Quest", "PWA для Quest", "IWSDK".

instalações
2
GitHub Stars
1
Atualizado
24 de out.