Skip to main content
skill CX Codex

expo-horizon — Claude Code skill: taking Expo apps to Meta Quest

A skill that walks the agent through adding Meta Quest support to an Expo app, including the package swaps it should never do without asking.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add software-mansion-labs/skills --skill expo-horizon -a claude-code
Open on GitHub

What expo-horizon does

The skill hands the agent a fixed order for Quest work: install expo-horizon-core, set up its config plugin, add quest and mobile build scripts, then detect the device at runtime with isHorizonDevice and isHorizonBuild. It ships no copy of the docs. Whenever detail is needed, the agent is told to fetch the README of the matching expo-horizon package.

Location and notifications are gated behind a question. The agent reads package.json, spots expo-location or expo-notifications, and waits for your answer before replacing anything. Quest hardware has no GPS, geocoding or geofencing, so those calls have to be guarded with ExpoHorizon.isHorizonDevice. Push requires a horizonAppId and goes through Meta's own service; Expo push tokens and badge counts are out.

Config values arrive as one list with defaults in brackets, so you can accept or override in a single reply. supportedDevices is required to submit to the Meta Horizon Store. A wide panel means your Expo orientation needs to be "landscape". Any config change only lands after npx expo prebuild --clean, and skipping that step leaves the native project untouched.

What it helps with

  • add Meta Quest support to an existing Expo app
  • produce separate questDebug and questRelease builds
  • configure the expo-horizon-core plugin for the devices you target
  • swap expo-location while handling what Quest lacks
  • route push notifications through Meta device tokens

Example prompts for the agent

  • Add Meta Quest support to this Expo app and list the config plugin values I need to decide on
  • Look through package.json for expo-location and expo-notifications and propose moving to the expo-horizon packages
  • Set up push notifications on Quest and explain why getExpoPushTokenAsync does not apply here

How to install expo-horizon

1Skills CLI (Vercel)

npx skills add software-mansion-labs/skills --skill expo-horizon -a claude-code

2Manually: put the files in place

~/.claude/skills/expo-horizon/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/expo-horizon/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about expo-horizon

How do I install expo-horizon in Claude Code?

Run npx skills add software-mansion-labs/skills --skill expo-horizon -a claude-code. The skill lands in ~/.claude/skills/expo-horizon/SKILL.md and the agent picks it up from there.

What does expo-horizon do?

It guides the agent through bringing Meta Quest and Horizon OS support into an Expo or React Native project: packages, config plugin, build scripts, runtime device checks.

Which expo-horizon packages might I end up swapping?

Depending on your answer, expo-location becomes expo-horizon-location and expo-notifications becomes expo-horizon-notifications. The skill detects both in package.json and asks first.

Similar skills

Everything for Mobile →

From the same set8

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor