Platform support

Install in an Expo SDK 54+ app or a React Native app with compatible Expo modules. The library minimum is iOS 15.1 and Android API 24; the llm and speech options require Android API 26. Every capability is opt-in at build time, so requirements apply only to the options you enable. Individual features may require a newer OS or specific hardware.

Use a native development or production build. Expo Go and web are not supported.

Requirements by feature

FeatureiOSAndroid
LLM: built-inEnable llm; iOS 26+, Apple Intelligence device with Apple Intelligence enabled and model readyEnable llm; ML Kit Prompt API on supported devices
LLM: downloadableEnable llm; LiteRT-LM with enough memory for the selected modelEnable llm; LiteRT-LM on arm64 with enough memory for the selected model
SpeechiOS 26+, SpeechAnalyzerAndroid 12+, ML Kit Speech Recognition; enable speech
Vision: background removaliOS 17+, physical deviceEnable vision; Google Play services model
Vision: image labelsPhysical deviceEnable vision; bundled model
Vision: OCRApple Vision; also works in SimulatorEnable vision; Google Play services script models
Vision: face detectionApple Vision on a physical device; no Apple Intelligence requirementEnable vision; bundled detector
EmbeddingsiOS 17+, NLContextualEmbeddingEnable androidEmbeddings; prepare EmbeddingGemma

All LLM functions—text, streaming, structured output, and tool calling—use the selected text model. Vision and speech do not require an available LLM.

Check at runtime

Use isAvailable() for built-in text, getSpeechRecognitionAvailability() for speech, getVisionAvailability() for images, and getEmbeddingModelStatus() for embeddings. A library-compatible OS alone does not guarantee model availability.

Android built-in text can be supported before its model is downloaded. Await prepareBuiltInModel() before generation. For other features, follow their preparation steps.

Testing and fallbacks

Test on physical devices. iOS Simulator cannot run background removal, image labeling, or face detection. Downloadable text models are disabled on Android x86/x86_64 because the LiteRT-LM backend can crash; use arm64.

When built-in text is unavailable, offer a downloadable model or a fallback in your UI. Native failures surface as typed errors.

See Android setup for build configuration and troubleshooting for failures.